diff --git a/DEPS b/DEPS
index 21cd753..a64f0839 100644
--- a/DEPS
+++ b/DEPS
@@ -138,11 +138,11 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling Skia
   # and whatever else without interference from each other.
-  'skia_revision': '4c4945a25248ac1687fcb564d31de73dac480b75',
+  'skia_revision': 'c3252a04b377ee1aef62d67a893a0b5628481616',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
-  'v8_revision': '9cea40ceb9312ce3e94c2b38c79bb25b7e94626d',
+  'v8_revision': '84cadff444fc7279a72a47c15a9c1774a8fd876b',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling swarming_client
   # and whatever else without interference from each other.
@@ -150,7 +150,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling ANGLE
   # and whatever else without interference from each other.
-  'angle_revision': '88596beab31734b07cc3a2fbd3f8b2c82bfe588c',
+  'angle_revision': '9520a2464c6556901313dbd4bf85c1c52468fe3a',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling SwiftShader
   # and whatever else without interference from each other.
@@ -257,11 +257,11 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
-  'spv_tools_revision': '9c0830133b07203a47ddc101fa4b298bab4438d8',
+  'spv_tools_revision': '42830e5a68c38b4bf7a8ad39ee83cc7ab60eb972',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
-  'spv_headers_revision': 'de99d4d834aeb51dd9f099baa285bd44fd04bb3d',
+  'spv_headers_revision': '8b911bd2ba37677037b38c9bd286c7c05701bcda',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
@@ -273,7 +273,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
-  'dawn_revision': 'df69f2482462a870adeb89fb2dd91f5acd992c1e',
+  'dawn_revision': '55ab6aacacb1d615e50e880697afc5771d99596c',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
@@ -807,7 +807,7 @@
 
   # Build tools for Chrome OS. Note: This depends on third_party/pyelftools.
   'src/third_party/chromite': {
-      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '38c7d9e30addca4bef2710d231b5458050679713',
+      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '17937cb2333ca78145b02b48cba9d02ba78de06c',
       'condition': 'checkout_linux',
   },
 
@@ -1396,7 +1396,7 @@
     Var('chromium_git') + '/v8/v8.git' + '@' +  Var('v8_revision'),
 
   'src-internal': {
-    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@c8c1ab9dcdb1354bbd5833fe91b5c21849518185',
+    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@152de7c37fc5a5999fb5b6cb59c63df410dd5817',
     'condition': 'checkout_src_internal',
   },
 
diff --git a/WATCHLISTS b/WATCHLISTS
index a914257..ace0367 100644
--- a/WATCHLISTS
+++ b/WATCHLISTS
@@ -2026,7 +2026,6 @@
     'blink_devtools': ['apavlov+blink@chromium.org',
                        'caseq+blink@chromium.org',
                        'devtools-reviews@chromium.org',
-                       'kozyatinskiy+blink@chromium.org',
                        'lushnikov+blink@chromium.org',
                        'pfeldman+blink@chromium.org'],
     'blink_dom': ['blink-reviews-dom@chromium.org',
diff --git a/ash/ash_strings.grd b/ash/ash_strings.grd
index 6f7b8fb3..14f06257 100644
--- a/ash/ash_strings.grd
+++ b/ash/ash_strings.grd
@@ -341,6 +341,12 @@
       <message name="IDS_ASH_STATUS_TRAY_BLUETOOTH_DEVICE_CONNECTED_LABEL" desc="The sub-header label to notify that one bluetooth device is connected.">
         Connected
       </message>
+      <message name="IDS_ASH_STATUS_TRAY_BLUETOOTH_DEVICE_CONNECTED_WITH_BATTERY_LABEL" desc="The label used when a bluetooth device is connected and the battery percentage is available.">
+        Connected, <ph name="BATTERY_PERCENTAGE">$1<ex>100</ex></ph>% battery
+      </message>
+      <message name="IDS_ASH_STATUS_TRAY_BLUETOOTH_DEVICE_BATTERY_PERCENTAGE_LABEL" desc="The label used to show the battery percentage when a bluetooth device is connected.">
+        <ph name="BATTERY_PERCENTAGE">$1<ex>100</ex></ph>% battery
+      </message>
       <message name="IDS_ASH_STATUS_TRAY_BLUETOOTH_MULTIPLE_DEVICES_CONNECTED_LABEL" desc="The header label to notify that multiple bluetooth devices are connected.">
         Devices
       </message>
diff --git a/ash/system/bluetooth/bluetooth_detailed_view.cc b/ash/system/bluetooth/bluetooth_detailed_view.cc
index 1f7a66ab..64a6733d 100644
--- a/ash/system/bluetooth/bluetooth_detailed_view.cc
+++ b/ash/system/bluetooth/bluetooth_detailed_view.cc
@@ -244,7 +244,11 @@
         SetupConnectingScrollListItem(container);
         break;
       case BluetoothDeviceInfo::ConnectionState::kConnected:
-        SetupConnectedScrollListItem(container);
+        SetupConnectedScrollListItem(
+            container, device->battery_info
+                           ? base::make_optional<uint8_t>(
+                                 device->battery_info->battery_percentage)
+                           : base::nullopt);
         break;
     }
     device_map_[container] = device->address;
diff --git a/ash/system/bluetooth/bluetooth_feature_pod_controller.cc b/ash/system/bluetooth/bluetooth_feature_pod_controller.cc
index ef5f642..4124945 100644
--- a/ash/system/bluetooth/bluetooth_feature_pod_controller.cc
+++ b/ash/system/bluetooth/bluetooth_feature_pod_controller.cc
@@ -14,6 +14,7 @@
 #include "ash/system/unified/feature_pod_button.h"
 #include "ash/system/unified/unified_system_tray_controller.h"
 #include "base/i18n/number_formatting.h"
+#include "base/strings/string_number_conversions.h"
 #include "services/device/public/cpp/bluetooth/bluetooth_utils.h"
 #include "ui/base/l10n/l10n_util.h"
 
@@ -114,12 +115,21 @@
         IDS_ASH_STATUS_TRAY_BLUETOOTH_MULTIPLE_DEVICES_CONNECTED_TOOLTIP,
         device_count));
   } else if (connected_devices.size() == 1) {
+    const device::mojom::BluetoothDeviceInfoPtr& device =
+        connected_devices.back();
     const base::string16 device_name =
-        device::GetBluetoothDeviceNameForDisplay(connected_devices.back());
+        device::GetBluetoothDeviceNameForDisplay(device);
     button_->SetVectorIcon(kUnifiedMenuBluetoothConnectedIcon);
     button_->SetLabel(device_name);
-    button_->SetSubLabel(l10n_util::GetStringUTF16(
-        IDS_ASH_STATUS_TRAY_BLUETOOTH_DEVICE_CONNECTED_LABEL));
+
+    if (device->battery_info) {
+      button_->SetSubLabel(l10n_util::GetStringFUTF16(
+          IDS_ASH_STATUS_TRAY_BLUETOOTH_DEVICE_BATTERY_PERCENTAGE_LABEL,
+          base::NumberToString16(device->battery_info->battery_percentage)));
+    } else {
+      button_->SetSubLabel(l10n_util::GetStringUTF16(
+          IDS_ASH_STATUS_TRAY_BLUETOOTH_DEVICE_CONNECTED_LABEL));
+    }
     SetTooltipState(l10n_util::GetStringFUTF16(
         IDS_ASH_STATUS_TRAY_BLUETOOTH_DEVICE_CONNECTED_TOOLTIP, device_name));
   } else {
diff --git a/ash/system/tray/tray_detailed_view.cc b/ash/system/tray/tray_detailed_view.cc
index 6ebfcca..acce889 100644
--- a/ash/system/tray/tray_detailed_view.cc
+++ b/ash/system/tray/tray_detailed_view.cc
@@ -16,6 +16,7 @@
 #include "ash/system/tray/tray_popup_utils.h"
 #include "ash/system/tray/tri_view.h"
 #include "base/containers/adapters.h"
+#include "base/strings/string_number_conversions.h"
 #include "third_party/skia/include/core/SkDrawLooper.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/base/resource/resource_bundle.h"
@@ -346,10 +347,23 @@
 }
 
 void TrayDetailedView::SetupConnectedScrollListItem(HoverHighlightView* view) {
+  SetupConnectedScrollListItem(view, base::nullopt /* battery_percentage */);
+}
+
+void TrayDetailedView::SetupConnectedScrollListItem(
+    HoverHighlightView* view,
+    base::Optional<uint8_t> battery_percentage) {
   DCHECK(view->is_populated());
 
-  view->SetSubText(
-      l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_NETWORK_STATUS_CONNECTED));
+  if (battery_percentage) {
+    view->SetSubText(l10n_util::GetStringFUTF16(
+        IDS_ASH_STATUS_TRAY_BLUETOOTH_DEVICE_CONNECTED_WITH_BATTERY_LABEL,
+        base::NumberToString16(battery_percentage.value())));
+  } else {
+    view->SetSubText(l10n_util::GetStringUTF16(
+        IDS_ASH_STATUS_TRAY_NETWORK_STATUS_CONNECTED));
+  }
+
   TrayPopupItemStyle style(TrayPopupItemStyle::FontStyle::CAPTION);
   style.set_color_style(TrayPopupItemStyle::ColorStyle::CONNECTED);
   style.SetupLabel(view->sub_text_label());
diff --git a/ash/system/tray/tray_detailed_view.h b/ash/system/tray/tray_detailed_view.h
index 523581d1..6a72656 100644
--- a/ash/system/tray/tray_detailed_view.h
+++ b/ash/system/tray/tray_detailed_view.h
@@ -84,6 +84,11 @@
   // Adds connected sub label to the |view| with appropriate style.
   void SetupConnectedScrollListItem(HoverHighlightView* view);
 
+  // Adds connected sub label with the device's battery percentage to the |view|
+  // with appropriate style.
+  void SetupConnectedScrollListItem(HoverHighlightView* view,
+                                    base::Optional<uint8_t> battery_percentage);
+
   // Adds connecting sub label to the |view| with appropriate style.
   void SetupConnectingScrollListItem(HoverHighlightView* view);
 
diff --git a/ash/wm/tablet_mode/tablet_mode_controller.cc b/ash/wm/tablet_mode/tablet_mode_controller.cc
index 4c863ff..5c9ef9c8 100644
--- a/ash/wm/tablet_mode/tablet_mode_controller.cc
+++ b/ash/wm/tablet_mode/tablet_mode_controller.cc
@@ -967,6 +967,7 @@
       viz::CopyOutputRequest::ResultFormat::RGBA_TEXTURE,
       screenshot_taken_callback_.callback());
   screenshot_request->set_area(request_bounds);
+  screenshot_request->set_result_selection(request_bounds);
   screenshot_window->layer()->RequestCopyOfOutput(
       std::move(screenshot_request));
 
diff --git a/ash/wm/tablet_mode/tablet_mode_window_manager.cc b/ash/wm/tablet_mode/tablet_mode_window_manager.cc
index 3d05a3f9..d01d989 100644
--- a/ash/wm/tablet_mode/tablet_mode_window_manager.cc
+++ b/ash/wm/tablet_mode/tablet_mode_window_manager.cc
@@ -82,8 +82,11 @@
 class ScopedObserveWindowAnimation {
  public:
   ScopedObserveWindowAnimation(aura::Window* window,
-                               TabletModeWindowManager* manager)
-      : window_(window), manager_(manager) {
+                               TabletModeWindowManager* manager,
+                               bool exiting_tablet_mode)
+      : window_(window),
+        manager_(manager),
+        exiting_tablet_mode_(exiting_tablet_mode) {
     if (Shell::Get()->tablet_mode_controller() && window_) {
       Shell::Get()->tablet_mode_controller()->MaybeObserveBoundsAnimation(
           window_);
@@ -98,12 +101,12 @@
       return;
 
     // Stops observing if |window_| is not animating, or if it is not tracked by
-    // TabletModeWindowManager.
-    if (window_->layer()->GetAnimator()->is_animating())
+    // TabletModeWindowManager. When this object is destroyed while exiting
+    // tablet mode, |window_| is no longer tracked, so skip that check.
+    if (window_->layer()->GetAnimator()->is_animating() &&
+        (exiting_tablet_mode_ || manager_->IsTrackingWindow(window_))) {
       return;
-
-    if (manager_->IsTrackingWindow(window_))
-      return;
+    }
 
     Shell::Get()->tablet_mode_controller()->StopObservingAnimation(
         /*record_stats=*/false, /*delete_screenshot=*/true);
@@ -112,6 +115,7 @@
  private:
   aura::Window* window_;
   TabletModeWindowManager* manager_;
+  bool exiting_tablet_mode_;
   DISALLOW_COPY_AND_ASSIGN(ScopedObserveWindowAnimation);
 };
 
@@ -133,7 +137,8 @@
   CancelOverview();
 
   {
-    ScopedObserveWindowAnimation scoped_observe(GetTopWindow(), this);
+    ScopedObserveWindowAnimation scoped_observe(GetTopWindow(), this,
+                                                /*exiting_tablet_mode=*/false);
     ArrangeWindowsForTabletMode();
   }
   AddWindowCreationObservers();
@@ -162,7 +167,8 @@
   EnableBackdropBehindTopWindowOnEachDisplay(false);
   RemoveWindowCreationObservers();
 
-  ScopedObserveWindowAnimation scoped_observe(GetTopWindow(), this);
+  ScopedObserveWindowAnimation scoped_observe(GetTopWindow(), this,
+                                              /*exiting_tablet_mode=*/true);
   ArrangeWindowsForDesktopMode(was_in_overview);
 }
 
diff --git a/base/immediate_crash_unittest.cc b/base/immediate_crash_unittest.cc
index 8507bbc..7e43fb0b 100644
--- a/base/immediate_crash_unittest.cc
+++ b/base/immediate_crash_unittest.cc
@@ -169,6 +169,11 @@
     } else {
       EXPECT_NE(*nonce, (*it >> 5) & 0xFFFF);
     }
+#if defined(OS_WIN)
+    // On Windows ARM64 __builtin_unreachable() produces an extra 'brk #1'
+    // instruction with clang-cl. https://crbug.com/973794.
+    EXPECT_EQ(0XD4200020, *++it);
+#endif
   }
 
 #endif  // defined(ARCH_CPU_X86_FAMILY)
diff --git a/base/task/thread_pool/task_tracker.cc b/base/task/thread_pool/task_tracker.cc
index 3efdd82..daa8f42a 100644
--- a/base/task/thread_pool/task_tracker.cc
+++ b/base/task/thread_pool/task_tracker.cc
@@ -327,14 +327,16 @@
   }
 }
 
-void TaskTracker::CompleteShutdown() {
-  DCHECK(shutdown_event_);
+// TODO(gab): Figure out why TS_UNCHECKED_READ is insufficient to make thread
+// analysis of |shutdown_event_| happy on POSIX.
+void TaskTracker::CompleteShutdown() NO_THREAD_SAFETY_ANALYSIS {
   // It is safe to access |shutdown_event_| without holding |lock_| because the
   // pointer never changes after being set by StartShutdown(), which must be
   // called before this.
+  DCHECK(TS_UNCHECKED_READ(shutdown_event_));
   {
     base::ScopedAllowBaseSyncPrimitives allow_wait;
-    shutdown_event_->Wait();
+    TS_UNCHECKED_READ(shutdown_event_)->Wait();
   }
 
   // Unblock FlushForTesting() and perform the FlushAsyncForTesting callback
@@ -389,6 +391,7 @@
 
     // A BLOCK_SHUTDOWN task posted after shutdown has completed is an
     // ordering bug. This aims to catch those early.
+    CheckedAutoLock auto_lock(shutdown_lock_);
     DCHECK(shutdown_event_);
     // TODO(http://crbug.com/698140): Atomically shutdown the service thread
     // to prevent racily posting BLOCK_SHUTDOWN tasks in response to a
@@ -615,10 +618,10 @@
     const bool shutdown_started = state_->IncrementNumItemsBlockingShutdown();
 
     if (shutdown_started) {
-      CheckedAutoLock auto_lock(shutdown_lock_);
 
       // A BLOCK_SHUTDOWN task posted after shutdown has completed is an
       // ordering bug. This aims to catch those early.
+      CheckedAutoLock auto_lock(shutdown_lock_);
       DCHECK(shutdown_event_);
       // TODO(http://crbug.com/698140): Atomically shutdown the service thread
       // to prevent racily posting BLOCK_SHUTDOWN tasks in response to a
@@ -705,11 +708,7 @@
     return;
 
   CheckedAutoLock auto_lock(shutdown_lock_);
-
-  // This method can only be called after shutdown has started.
-  DCHECK(state_->HasShutdownStarted());
   DCHECK(shutdown_event_);
-
   shutdown_event_->Signal();
 }
 
diff --git a/base/task/thread_pool/task_tracker.h b/base/task/thread_pool/task_tracker.h
index 7317f5e..8857ba5 100644
--- a/base/task/thread_pool/task_tracker.h
+++ b/base/task/thread_pool/task_tracker.h
@@ -259,7 +259,7 @@
 
   // Event instantiated when shutdown starts and signaled when shutdown
   // completes.
-  std::unique_ptr<WaitableEvent> shutdown_event_;
+  std::unique_ptr<WaitableEvent> shutdown_event_ GUARDED_BY(shutdown_lock_);
 
   // Counter for number of tasks run so far, used to record tasks run while
   // a task queued to histogram.
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1
index 95ebc514..8bddc35 100644
--- a/build/fuchsia/linux.sdk.sha1
+++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@
-8910745020780655600
\ No newline at end of file
+8910715237090861408
\ No newline at end of file
diff --git a/build/fuchsia/mac.sdk.sha1 b/build/fuchsia/mac.sdk.sha1
index e76f37f..a6a04bb 100644
--- a/build/fuchsia/mac.sdk.sha1
+++ b/build/fuchsia/mac.sdk.sha1
@@ -1 +1 @@
-8910747325580667856
\ No newline at end of file
+8910717122314502752
\ No newline at end of file
diff --git a/build/fuchsia/target.py b/build/fuchsia/target.py
index a5a5d11..af375a5e 100644
--- a/build/fuchsia/target.py
+++ b/build/fuchsia/target.py
@@ -11,6 +11,7 @@
 import shutil
 import subprocess
 import sys
+import urllib2
 import tempfile
 import time
 
@@ -26,6 +27,9 @@
 # mitigation against hangs due to amber/network-related failures.
 _INSTALL_TIMEOUT_SECS = 5 * 60
 
+# Maximum amount of time to block while waitin for "pm serve" to come up.
+_PM_SERVE_LIVENESS_TIMEOUT_SECS = 10
+
 
 def _GetPackageInfo(package_path):
   """Returns a tuple with the name and version of a package."""
@@ -57,6 +61,22 @@
       return self.data_path + path[5:]
     return path
 
+def _WaitForPmServeToBeReady(port):
+  """Blocks until "pm serve" starts serving HTTP traffic at |port|."""
+
+  timeout = time.time() + _PM_SERVE_LIVENESS_TIMEOUT_SECS
+  while True:
+    try:
+      urllib2.urlopen('http://localhost:%d' % port, timeout=1).read()
+      break
+    except urllib2.URLError:
+      logging.info('Waiting until \'pm serve\' is up...')
+
+    if time.time() >= timeout:
+      raise Exception('Timed out while waiting for \'pm serve\'.')
+
+    time.sleep(1)
+
 
 class FuchsiaTargetException(Exception):
   def __init__(self, message):
@@ -240,7 +260,6 @@
       return 'x86_64'
     raise Exception('Unknown target_cpu %s:' % self._target_cpu)
 
-
   def InstallPackage(self, package_path, package_name, package_deps):
     """Installs a package and it's dependencies on the device. If the package is
     already installed then it will be updated to the new version.
@@ -254,11 +273,7 @@
       tuf_root = tempfile.mkdtemp()
       pm_serve_task = None
 
-      # Publish all packages to the serving TUF repository under |tuf_root|.
       subprocess.check_call([_PM, 'newrepo', '-repo', tuf_root])
-      all_packages = [package_path] + package_deps
-      for next_package_path in all_packages:
-        _PublishPackage(tuf_root, next_package_path)
 
       # Serve the |tuf_root| using 'pm serve' and configure the target to pull
       # from it.
@@ -266,6 +281,14 @@
       pm_serve_task = subprocess.Popen(
           [_PM, 'serve', '-d', os.path.join(tuf_root, 'repository'), '-l',
            ':%d' % serve_port, '-q'])
+
+      # Publish all packages to the serving TUF repository under |tuf_root|.
+      all_packages = [package_path] + package_deps
+      for next_package_path in all_packages:
+        _PublishPackage(tuf_root, next_package_path)
+
+      _WaitForPmServeToBeReady(serve_port)
+
       remote_port = common.ConnectPortForwardingTask(self, serve_port, 0)
       self._RegisterAmberRepository(tuf_root, remote_port)
 
diff --git a/cc/scheduler/scheduler.cc b/cc/scheduler/scheduler.cc
index f9fed94..27a2503d6e 100644
--- a/cc/scheduler/scheduler.cc
+++ b/cc/scheduler/scheduler.cc
@@ -115,6 +115,11 @@
   ProcessScheduledActions();
 }
 
+void Scheduler::NotifyPaintWorkletStateChange(PaintWorkletState state) {
+  state_machine_.NotifyPaintWorkletStateChange(state);
+  ProcessScheduledActions();
+}
+
 void Scheduler::SetNeedsBeginMainFrame() {
   state_machine_.SetNeedsBeginMainFrame();
   ProcessScheduledActions();
diff --git a/cc/scheduler/scheduler.h b/cc/scheduler/scheduler.h
index a84943e..4f2c05fa 100644
--- a/cc/scheduler/scheduler.h
+++ b/cc/scheduler/scheduler.h
@@ -108,6 +108,7 @@
   void SetBeginFrameSource(viz::BeginFrameSource* source);
 
   using AnimationWorkletState = SchedulerStateMachine::AnimationWorkletState;
+  using PaintWorkletState = SchedulerStateMachine::PaintWorkletState;
   using TreeType = SchedulerStateMachine::TreeType;
 
   // Sets whether asynchronous animation worklet mutations are running.
@@ -116,6 +117,11 @@
   void NotifyAnimationWorkletStateChange(AnimationWorkletState state,
                                          TreeType tree);
 
+  // Sets whether asynchronous paint worklets are running. Paint worklets
+  // running should block activation of the pending tree, as it isn't fully
+  // painted until they are done.
+  void NotifyPaintWorkletStateChange(PaintWorkletState state);
+
   // Set |needs_begin_main_frame_| to true, which will cause the BeginFrame
   // source to be told to send BeginFrames to this client so that this client
   // can send a CompositorFrame to the display compositor with appropriate
diff --git a/cc/scheduler/scheduler_state_machine.cc b/cc/scheduler/scheduler_state_machine.cc
index 29479c7d..a3b2e0ef 100644
--- a/cc/scheduler/scheduler_state_machine.cc
+++ b/cc/scheduler/scheduler_state_machine.cc
@@ -241,6 +241,8 @@
                     processing_animation_worklets_for_active_tree_);
   state->SetBoolean("processing_animation_worklets_for_pending_tree",
                     processing_animation_worklets_for_pending_tree_);
+  state->SetBoolean("processing_paint_worklets_for_pending_tree",
+                    processing_paint_worklets_for_pending_tree_);
   state->EndDictionary();
 }
 
@@ -379,6 +381,15 @@
   if (active_tree_needs_first_draw_)
     return false;
 
+  // Delay pending tree activation until paint worklets have completed painting
+  // the pending tree. This must occur before the |ShouldAbortCurrentFrame|
+  // check as we cannot have an unpainted active tree.
+  //
+  // Note that paint worklets continue to paint when the page is not visible, so
+  // any abort will eventually happen when they complete.
+  if (processing_paint_worklets_for_pending_tree_)
+    return false;
+
   if (ShouldAbortCurrentFrame())
     return true;
 
@@ -847,6 +858,11 @@
 }
 
 void SchedulerStateMachine::WillActivate() {
+  // We cannot activate the pending tree while paint worklets are still being
+  // processed; the pending tree *must* be fully painted before it can ever be
+  // activated because we cannot paint the active tree.
+  DCHECK(!processing_paint_worklets_for_pending_tree_);
+
   if (layer_tree_frame_sink_state_ ==
       LayerTreeFrameSinkState::WAITING_FOR_FIRST_ACTIVATION)
     layer_tree_frame_sink_state_ = LayerTreeFrameSinkState::ACTIVE;
@@ -1415,6 +1431,12 @@
 }
 
 bool SchedulerStateMachine::NotifyReadyToActivate() {
+  // It is not valid for clients to try and activate the pending tree whilst
+  // paint worklets are still being processed; the pending tree *must* be fully
+  // painted before it can ever be activated (even if e.g. it is not visible),
+  // because we cannot paint the active tree.
+  DCHECK(!processing_paint_worklets_for_pending_tree_);
+
   if (!has_pending_tree_ || pending_tree_is_ready_for_activation_)
     return false;
 
@@ -1448,6 +1470,16 @@
   }
 }
 
+void SchedulerStateMachine::NotifyPaintWorkletStateChange(
+    PaintWorkletState state) {
+  bool processing_paint_worklets_for_pending_tree =
+      (state == PaintWorkletState::PROCESSING);
+  DCHECK_NE(processing_paint_worklets_for_pending_tree,
+            processing_paint_worklets_for_pending_tree_);
+  processing_paint_worklets_for_pending_tree_ =
+      processing_paint_worklets_for_pending_tree;
+}
+
 void SchedulerStateMachine::DidCreateAndInitializeLayerTreeFrameSink() {
   DCHECK_EQ(layer_tree_frame_sink_state_, LayerTreeFrameSinkState::CREATING);
   layer_tree_frame_sink_state_ =
diff --git a/cc/scheduler/scheduler_state_machine.h b/cc/scheduler/scheduler_state_machine.h
index 091f1af3..a4a6b4f 100644
--- a/cc/scheduler/scheduler_state_machine.h
+++ b/cc/scheduler/scheduler_state_machine.h
@@ -283,6 +283,7 @@
   void NotifyReadyToDraw();
 
   enum class AnimationWorkletState { PROCESSING, IDLE };
+  enum class PaintWorkletState { PROCESSING, IDLE };
   enum class TreeType { ACTIVE, PENDING };
 
   // Indicates if currently processing animation worklets for the active or
@@ -291,6 +292,11 @@
   void NotifyAnimationWorkletStateChange(AnimationWorkletState state,
                                          TreeType tree);
 
+  // Sets whether asynchronous paint worklets are running. Paint worklets
+  // running should block activation of the pending tree, as it isn't fully
+  // painted until they are done.
+  void NotifyPaintWorkletStateChange(PaintWorkletState state);
+
   void SetNeedsImplSideInvalidation(bool needs_first_draw_on_activation);
 
   bool has_pending_tree() const { return has_pending_tree_; }
@@ -451,6 +457,9 @@
   // Indicates if an aysnc mutation cycle is in-flight or queued for the pending
   // tree.  Only one can be running or queued at any time.
   bool processing_animation_worklets_for_pending_tree_ = false;
+  // Indicates if asychronous paint worklet painting is ongoing for the pending
+  // tree. During this time we should not activate the pending tree.
+  bool processing_paint_worklets_for_pending_tree_ = false;
 
   // Set to true if the main thread fails to respond with a commit or abort the
   // main frame before the draw deadline on the previous impl frame.
diff --git a/cc/scheduler/scheduler_state_machine_unittest.cc b/cc/scheduler/scheduler_state_machine_unittest.cc
index 676b83e..0fa5f3047 100644
--- a/cc/scheduler/scheduler_state_machine_unittest.cc
+++ b/cc/scheduler/scheduler_state_machine_unittest.cc
@@ -6,6 +6,7 @@
 
 #include <stddef.h>
 
+#include "base/test/gtest_util.h"
 #include "base/trace_event/trace_event.h"
 #include "cc/scheduler/scheduler.h"
 #include "components/viz/common/frame_sinks/begin_frame_args.h"
@@ -2815,5 +2816,58 @@
   EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::Action::ACTIVATE_SYNC_TREE);
 }
 
+TEST(SchedulerStateMachineTest, BlockActivationIfPaintWorkletsPending) {
+  SchedulerSettings settings;
+  StateMachine state(settings);
+  SET_UP_STATE(state);
+
+  state.SetNeedsBeginMainFrame();
+  state.OnBeginImplFrame(0, 10, kAnimateOnly);
+  EXPECT_ACTION_UPDATE_STATE(
+      SchedulerStateMachine::Action::SEND_BEGIN_MAIN_FRAME);
+  state.NotifyBeginMainFrameStarted();
+  state.NotifyReadyToCommit();
+  EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::Action::COMMIT);
+  EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::Action::NONE);
+
+  // Post-commit, we start working on PaintWorklets. It is not valid to activate
+  // until they are done.
+  state.NotifyPaintWorkletStateChange(
+      SchedulerStateMachine::PaintWorkletState::PROCESSING);
+  EXPECT_DCHECK_DEATH(state.NotifyReadyToActivate());
+  EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::Action::NONE);
+  state.NotifyPaintWorkletStateChange(
+      SchedulerStateMachine::PaintWorkletState::IDLE);
+  state.NotifyReadyToActivate();
+  EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::Action::ACTIVATE_SYNC_TREE);
+}
+
+TEST(SchedulerStateMachineTest,
+     BlockActivationIfPaintWorkletsPendingEvenWhenAbortingFrame) {
+  SchedulerSettings settings;
+  StateMachine state(settings);
+  SET_UP_STATE(state);
+
+  state.SetNeedsBeginMainFrame();
+  state.OnBeginImplFrame(0, 10, kAnimateOnly);
+  EXPECT_ACTION_UPDATE_STATE(
+      SchedulerStateMachine::Action::SEND_BEGIN_MAIN_FRAME);
+  state.NotifyBeginMainFrameStarted();
+  state.NotifyReadyToCommit();
+  EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::Action::COMMIT);
+  EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::Action::NONE);
+
+  // Even if we are aborting the frame, we must paint the pending tree before we
+  // activate it (because we cannot have an unpainted active tree).
+  state.NotifyPaintWorkletStateChange(
+      SchedulerStateMachine::PaintWorkletState::PROCESSING);
+  state.SetVisible(false);
+  ASSERT_TRUE(state.ShouldAbortCurrentFrame());
+  EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::Action::NONE);
+  state.NotifyPaintWorkletStateChange(
+      SchedulerStateMachine::PaintWorkletState::IDLE);
+  EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::Action::ACTIVATE_SYNC_TREE);
+}
+
 }  // namespace
 }  // namespace cc
diff --git a/cc/test/fake_layer_tree_host_impl_client.h b/cc/test/fake_layer_tree_host_impl_client.h
index 461d4f8..8f32d2f 100644
--- a/cc/test/fake_layer_tree_host_impl_client.h
+++ b/cc/test/fake_layer_tree_host_impl_client.h
@@ -46,6 +46,8 @@
 
   void NotifyAnimationWorkletStateChange(AnimationWorkletMutationState state,
                                          ElementListType tree_type) override {}
+  void NotifyPaintWorkletStateChange(
+      Scheduler::PaintWorkletState state) override {}
 
   void reset_did_request_impl_side_invalidation() {
     did_request_impl_side_invalidation_ = false;
diff --git a/cc/trees/layer_tree_host_impl.h b/cc/trees/layer_tree_host_impl.h
index 71f27166..7a955787 100644
--- a/cc/trees/layer_tree_host_impl.h
+++ b/cc/trees/layer_tree_host_impl.h
@@ -31,6 +31,7 @@
 #include "cc/scheduler/begin_frame_tracker.h"
 #include "cc/scheduler/commit_earlyout_reason.h"
 #include "cc/scheduler/draw_result.h"
+#include "cc/scheduler/scheduler.h"
 #include "cc/scheduler/video_frame_controller.h"
 #include "cc/tiles/decoded_image_tracker.h"
 #include "cc/tiles/image_decode_cache.h"
@@ -160,6 +161,9 @@
       AnimationWorkletMutationState state,
       ElementListType tree_type) = 0;
 
+  virtual void NotifyPaintWorkletStateChange(
+      Scheduler::PaintWorkletState state) = 0;
+
  protected:
   virtual ~LayerTreeHostImplClient() {}
 };
diff --git a/cc/trees/layer_tree_host_impl_unittest.cc b/cc/trees/layer_tree_host_impl_unittest.cc
index 3138584..d69b0f7a3 100644
--- a/cc/trees/layer_tree_host_impl_unittest.cc
+++ b/cc/trees/layer_tree_host_impl_unittest.cc
@@ -229,6 +229,8 @@
       const gfx::PresentationFeedback& feedback) override {}
   void NotifyAnimationWorkletStateChange(AnimationWorkletMutationState state,
                                          ElementListType tree_type) override {}
+  void NotifyPaintWorkletStateChange(
+      Scheduler::PaintWorkletState state) override {}
 
   void set_reduce_memory_result(bool reduce_memory_result) {
     reduce_memory_result_ = reduce_memory_result;
diff --git a/cc/trees/proxy_impl.cc b/cc/trees/proxy_impl.cc
index cdfd8d3a..2abac08 100644
--- a/cc/trees/proxy_impl.cc
+++ b/cc/trees/proxy_impl.cc
@@ -512,6 +512,12 @@
                                                 tree_type);
 }
 
+void ProxyImpl::NotifyPaintWorkletStateChange(
+    Scheduler::PaintWorkletState state) {
+  DCHECK(IsImplThread());
+  scheduler_->NotifyPaintWorkletStateChange(state);
+}
+
 bool ProxyImpl::WillBeginImplFrame(const viz::BeginFrameArgs& args) {
   DCHECK(IsImplThread());
   return host_impl_->WillBeginImplFrame(args);
diff --git a/cc/trees/proxy_impl.h b/cc/trees/proxy_impl.h
index 62636b8..030fbeb 100644
--- a/cc/trees/proxy_impl.h
+++ b/cc/trees/proxy_impl.h
@@ -112,6 +112,8 @@
   void NotifyAnimationWorkletStateChange(
       AnimationWorkletMutationState state,
       ElementListType element_list_type) override;
+  void NotifyPaintWorkletStateChange(
+      Scheduler::PaintWorkletState state) override;
 
   // SchedulerClient implementation
   bool WillBeginImplFrame(const viz::BeginFrameArgs& args) override;
diff --git a/cc/trees/single_thread_proxy.cc b/cc/trees/single_thread_proxy.cc
index d74fe26..d3a4b098 100644
--- a/cc/trees/single_thread_proxy.cc
+++ b/cc/trees/single_thread_proxy.cc
@@ -533,6 +533,12 @@
   layer_tree_host_->NotifyAnimationWorkletStateChange(state, element_list_type);
 }
 
+void SingleThreadProxy::NotifyPaintWorkletStateChange(
+    Scheduler::PaintWorkletState state) {
+  // Off-Thread PaintWorklet is only supported on the threaded compositor.
+  NOTREACHED();
+}
+
 void SingleThreadProxy::RequestBeginMainFrameNotExpected(bool new_state) {
   if (scheduler_on_impl_thread_) {
     scheduler_on_impl_thread_->SetMainThreadWantsBeginMainFrameNotExpected(
diff --git a/cc/trees/single_thread_proxy.h b/cc/trees/single_thread_proxy.h
index 97a449b..407ef6ac 100644
--- a/cc/trees/single_thread_proxy.h
+++ b/cc/trees/single_thread_proxy.h
@@ -134,6 +134,8 @@
   void NotifyAnimationWorkletStateChange(
       AnimationWorkletMutationState state,
       ElementListType element_list_type) override;
+  void NotifyPaintWorkletStateChange(
+      Scheduler::PaintWorkletState state) override;
 
   void RequestNewLayerTreeFrameSink();
 
diff --git a/chrome/VERSION b/chrome/VERSION
index cc6cebc..cb59aa2e 100644
--- a/chrome/VERSION
+++ b/chrome/VERSION
@@ -1,4 +1,4 @@
 MAJOR=77
 MINOR=0
-BUILD=3825
+BUILD=3826
 PATCH=0
diff --git a/chrome/android/features/autofill_assistant/java/res/layout/autofill_assistant_onboarding.xml b/chrome/android/features/autofill_assistant/java/res/layout/autofill_assistant_onboarding.xml
index 00404bc..95df51e 100644
--- a/chrome/android/features/autofill_assistant/java/res/layout/autofill_assistant_onboarding.xml
+++ b/chrome/android/features/autofill_assistant/java/res/layout/autofill_assistant_onboarding.xml
@@ -103,7 +103,6 @@
         android:id="@+id/button_init_not_ok"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:minWidth="120dp"
         android:singleLine="true"
         android:gravity="center"
         android:text="@string/cancel"
@@ -119,10 +118,9 @@
         android:id="@+id/button_init_ok"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:minWidth="120dp"
         android:singleLine="true"
         android:gravity="center"
         android:text="@string/init_ok"
-        style="FilledButton" />
+        style="@style/FilledButton.Flat" />
     </LinearLayout>
 </LinearLayout>
\ No newline at end of file
diff --git a/chrome/app/chromeos_strings.grdp b/chrome/app/chromeos_strings.grdp
index ced3ad1..97d857a 100644
--- a/chrome/app/chromeos_strings.grdp
+++ b/chrome/app/chromeos_strings.grdp
@@ -3713,6 +3713,9 @@
   <message name="IDS_CROSTINI_IMPORT_NOTIFICATION_MESSAGE_FAILED_ARCHITECTURE" desc="Message displayed in the notification when import (restore) of the Linux container fails due to architecture mismatch.">
     Cannot import container architecture type <ph name="ARCHITECTURE_CONTAINER">$1<ex>arm64</ex></ph> with this device which is <ph name="ARCHITECTURE_DEVICE">$2<ex>x86_64</ex></ph>. You can try restoring this container into a different device, or you can access the files inside this container image by opening in Files app.
   </message>
+  <message name="IDS_CROSTINI_IMPORT_NOTIFICATION_MESSAGE_FAILED_SPACE" desc="Message displayed in the notification when import (restore) of the Linux container fails due to insufficient space.">
+    Cannot restore due to lack of storage space. Free up <ph name="SPACE_REQUIRED">$1<ex>10Gb</ex></ph> from the device and try again.
+  </message>
 
   <!-- Time limit notification -->
   <message name="IDS_SCREEN_TIME_NOTIFICATION_TITLE" desc="The title of the notification when screen usage limit reaches before locking the device.">
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
index 1b0852f..17787a0 100644
--- a/chrome/app/settings_strings.grdp
+++ b/chrome/app/settings_strings.grdp
@@ -1062,6 +1062,9 @@
     <message name="IDS_SETTINGS_BLUETOOTH_CONNECTED" desc="In Bluetooth device list, this label is shown below a device which is already connected.">
       Connected
     </message>
+    <message name="IDS_SETTINGS_BLUETOOTH_CONNECTED_WITH_BATTERY" desc="In Bluetooth device list, this label is shown below a device which is already connected and has a known battery percentage.">
+      Connected, <ph name="BATTERY_PERCENTAGE">$1<ex>100</ex></ph>% battery
+    </message>
     <message name="IDS_SETTINGS_BLUETOOTH_NOT_CONNECTED" desc="In Bluetooth device list, this label is shown below a device which is not connected.">
       Not connected
     </message>
diff --git a/chrome/browser/apps/app_shim/app_shim_interactive_uitest_mac.mm b/chrome/browser/apps/app_shim/app_shim_interactive_uitest_mac.mm
index 1b8d8a3..5a22b34 100644
--- a/chrome/browser/apps/app_shim/app_shim_interactive_uitest_mac.mm
+++ b/chrome/browser/apps/app_shim/app_shim_interactive_uitest_mac.mm
@@ -301,21 +301,12 @@
 
 namespace apps {
 
-// Shims require static libraries http://crbug.com/386024.
-#if defined(COMPONENT_BUILD)
-#define MAYBE_Launch DISABLED_Launch
-#define MAYBE_HostedAppLaunch DISABLED_HostedAppLaunch
-#define MAYBE_ShowWindow DISABLED_ShowWindow
-#define MAYBE_RebuildShim DISABLED_RebuildShim
-#else
 #define MAYBE_Launch DISABLED_Launch  // http://crbug.com/913490
 #define MAYBE_HostedAppLaunch DISABLED_HostedAppLaunch
-#define MAYBE_ShowWindow ShowWindow
 // http://crbug.com/517744 HostedAppLaunch fails with open as tab for apps
 // http://crbug.com/509774 this test is flaky so is disabled even in the
 // static build.
 #define MAYBE_RebuildShim DISABLED_RebuildShim
-#endif
 
 IN_PROC_BROWSER_TEST_F(AppShimInteractiveTest, MAYBE_HostedAppLaunch) {
   const extensions::Extension* app = InstallAppWithShim(APP_TYPE_HOSTED, "");
@@ -466,7 +457,7 @@
 
 // Test that the shim's lifetime depends on the visibility of windows. I.e. the
 // shim is only active when there are visible windows.
-IN_PROC_BROWSER_TEST_F(AppShimInteractiveTest, MAYBE_ShowWindow) {
+IN_PROC_BROWSER_TEST_F(AppShimInteractiveTest, ShowWindow) {
   const extensions::Extension* app =
       InstallAppWithShim(APP_TYPE_PACKAGED, "hidden");
   NSString* bundle_id = GetBundleID(shim_path_);
diff --git a/chrome/browser/apps/app_shim/extension_app_shim_handler_mac.cc b/chrome/browser/apps/app_shim/extension_app_shim_handler_mac.cc
index ccf9324..56f5522 100644
--- a/chrome/browser/apps/app_shim/extension_app_shim_handler_mac.cc
+++ b/chrome/browser/apps/app_shim/extension_app_shim_handler_mac.cc
@@ -227,6 +227,10 @@
   DISALLOW_COPY_AND_ASSIGN(EnableViaPrompt);
 };
 
+bool UsesRemoteViews(const extensions::Extension* extension) {
+  return extension->is_hosted_app() && extension->from_bookmark();
+}
+
 }  // namespace
 
 namespace apps {
@@ -299,7 +303,7 @@
     Profile* profile,
     const extensions::Extension* extension) {
   return new AppShimHost(extension->id(), profile->GetPath(),
-                         extension->is_hosted_app());
+                         UsesRemoteViews(extension));
 }
 
 void ExtensionAppShimHandler::Delegate::EnableExtension(
@@ -338,7 +342,10 @@
     bool recreate_shims,
     apps::ShimLaunchedCallback launched_callback,
     apps::ShimTerminatedCallback terminated_callback) {
-  if (recreate_shims) {
+  // Only force recreation of shims when RemoteViews is in use (that is, for
+  // PWAs). Otherwise, shims may be created unexpectedly.
+  // https://crbug.com/941160
+  if (recreate_shims && UsesRemoteViews(extension)) {
     // Load the resources needed to build the app shim (icons, etc), and then
     // recreate the shim and launch it.
     web_app::GetShortcutInfoForApp(
diff --git a/chrome/browser/chromeos/crostini/crostini_export_import.cc b/chrome/browser/chromeos/crostini/crostini_export_import.cc
index b557a9f..d17d8700 100644
--- a/chrome/browser/chromeos/crostini/crostini_export_import.cc
+++ b/chrome/browser/chromeos/crostini/crostini_export_import.cc
@@ -24,6 +24,7 @@
 #include "components/prefs/pref_service.h"
 #include "content/public/browser/web_contents.h"
 #include "ui/base/l10n/l10n_util.h"
+#include "ui/base/text/bytes_formatting.h"
 
 namespace crostini {
 
@@ -324,6 +325,9 @@
           CONTAINER_EXPORT_IMPORT_FAILED_ARCHITECTURE:
         enum_hist_result = ImportContainerResult::kFailedArchitecture;
         break;
+      case crostini::CrostiniResult::CONTAINER_EXPORT_IMPORT_FAILED_SPACE:
+        enum_hist_result = ImportContainerResult::kFailedSpace;
+        break;
       default:
         enum_hist_result = ImportContainerResult::kFailed;
     }
@@ -345,7 +349,9 @@
     int progress_percent,
     uint64_t progress_speed,
     const std::string& architecture_device,
-    const std::string& architecture_container) {
+    const std::string& architecture_container,
+    uint64_t available_space,
+    uint64_t minimum_required_space) {
   ContainerId container_id(vm_name, container_name);
   auto it = notifications_.find(container_id);
   DCHECK(it != notifications_.end())
@@ -371,6 +377,12 @@
           base::ASCIIToUTF16(architecture_container),
           base::ASCIIToUTF16(architecture_device)));
       break;
+    case ImportContainerProgressStatus::FAILURE_SPACE:
+      DCHECK_GE(minimum_required_space, available_space);
+      it->second->set_message_failed(l10n_util::GetStringFUTF16(
+          IDS_CROSTINI_IMPORT_NOTIFICATION_MESSAGE_FAILED_SPACE,
+          ui::FormatBytes(minimum_required_space - available_space)));
+      break;
     default:
       LOG(WARNING) << "Unknown Export progress status " << int(status);
   }
diff --git a/chrome/browser/chromeos/crostini/crostini_export_import.h b/chrome/browser/chromeos/crostini/crostini_export_import.h
index d537d3e..aa36f69 100644
--- a/chrome/browser/chromeos/crostini/crostini_export_import.h
+++ b/chrome/browser/chromeos/crostini/crostini_export_import.h
@@ -45,7 +45,8 @@
   kFailedVmStopped = 2,
   kFailedVmStarted = 3,
   kFailedArchitecture = 4,
-  kMaxValue = kFailedArchitecture,
+  kFailedSpace = 5,
+  kMaxValue = kFailedSpace,
 };
 
 // CrostiniExportImport is a keyed profile service to manage exporting and
@@ -94,6 +95,7 @@
   FRIEND_TEST_ALL_PREFIXES(CrostiniExportImportTest, TestImportFail);
   FRIEND_TEST_ALL_PREFIXES(CrostiniExportImportTest,
                            TestImportFailArchitecture);
+  FRIEND_TEST_ALL_PREFIXES(CrostiniExportImportTest, TestImportFailSpace);
 
   // ui::SelectFileDialog::Listener implementation.
   void FileSelected(const base::FilePath& path,
@@ -113,14 +115,15 @@
                                  uint64_t progress_speed) override;
 
   // crostini::ImportContainerProgressObserver implementation.
-  void OnImportContainerProgress(
-      const std::string& vm_name,
-      const std::string& container_name,
-      crostini::ImportContainerProgressStatus status,
-      int progress_percent,
-      uint64_t progress_speed,
-      const std::string& architecture_device,
-      const std::string& architecture_container) override;
+  void OnImportContainerProgress(const std::string& vm_name,
+                                 const std::string& container_name,
+                                 crostini::ImportContainerProgressStatus status,
+                                 int progress_percent,
+                                 uint64_t progress_speed,
+                                 const std::string& architecture_device,
+                                 const std::string& architecture_container,
+                                 uint64_t available_space,
+                                 uint64_t minimum_required_space) override;
 
   void ExportAfterSharing(const ContainerId& container_id,
                           const base::FilePath& filename,
diff --git a/chrome/browser/chromeos/crostini/crostini_export_import_unittest.cc b/chrome/browser/chromeos/crostini/crostini_export_import_unittest.cc
index e4e523c..9c3f7c8 100644
--- a/chrome/browser/chromeos/crostini/crostini_export_import_unittest.cc
+++ b/chrome/browser/chromeos/crostini/crostini_export_import_unittest.cc
@@ -21,6 +21,12 @@
 
 namespace crostini {
 
+struct ImportProgressOptionalArguments {
+  int progress_percent{};
+  uint64_t available_space{};
+  uint64_t min_required_space{};
+};
+
 class CrostiniExportImportTest : public testing::Test {
  public:
   void SendExportProgress(
@@ -37,16 +43,17 @@
 
   void SendImportProgress(
       vm_tools::cicerone::ImportLxdContainerProgressSignal_Status status,
-      int progress_percent) {
+      const ImportProgressOptionalArguments& arguments = {}) {
     vm_tools::cicerone::ImportLxdContainerProgressSignal signal;
     signal.set_owner_id(CryptohomeIdForProfile(profile()));
     signal.set_vm_name(kCrostiniDefaultVmName);
     signal.set_container_name(kCrostiniDefaultContainerName);
     signal.set_status(status);
-    signal.set_progress_percent(progress_percent);
-    signal.set_progress_percent(progress_percent);
+    signal.set_progress_percent(arguments.progress_percent);
     signal.set_architecture_device("arch_dev");
     signal.set_architecture_container("arch_con");
+    signal.set_available_space(arguments.available_space);
+    signal.set_min_required_space(arguments.min_required_space);
     fake_cicerone_client_->NotifyImportLxdContainerProgress(signal);
   }
 
@@ -184,7 +191,7 @@
   SendImportProgress(
       vm_tools::cicerone::
           ImportLxdContainerProgressSignal_Status_IMPORTING_UPLOAD,
-      20);
+      {.progress_percent = 20});
   EXPECT_EQ(notification->get_status(),
             CrostiniExportImportNotification::Status::RUNNING);
   EXPECT_EQ(notification->get_notification()->progress(), 10);
@@ -193,7 +200,7 @@
   SendImportProgress(
       vm_tools::cicerone::
           ImportLxdContainerProgressSignal_Status_IMPORTING_UNPACK,
-      20);
+      {.progress_percent = 20});
   EXPECT_EQ(notification->get_status(),
             CrostiniExportImportNotification::Status::RUNNING);
   EXPECT_EQ(notification->get_notification()->progress(), 60);
@@ -203,14 +210,14 @@
   SendImportProgress(
       vm_tools::cicerone::
           ImportLxdContainerProgressSignal_Status_IMPORTING_UNPACK,
-      40);
+      {.progress_percent = 40});
   EXPECT_EQ(notification->get_status(),
             CrostiniExportImportNotification::Status::RUNNING);
   EXPECT_EQ(notification->get_notification()->progress(), 60);
 
   // Done.
   SendImportProgress(
-      vm_tools::cicerone::ImportLxdContainerProgressSignal_Status_DONE, 0);
+      vm_tools::cicerone::ImportLxdContainerProgressSignal_Status_DONE);
   EXPECT_EQ(notification->get_status(),
             CrostiniExportImportNotification::Status::DONE);
 }
@@ -224,7 +231,7 @@
 
   // Failed.
   SendImportProgress(
-      vm_tools::cicerone::ImportLxdContainerProgressSignal_Status_FAILED, 0);
+      vm_tools::cicerone::ImportLxdContainerProgressSignal_Status_FAILED);
   EXPECT_EQ(notification->get_status(),
             CrostiniExportImportNotification::Status::FAILED);
   std::string msg("Restoring couldn't be completed due to an error");
@@ -242,8 +249,7 @@
   // Failed Architecture.
   SendImportProgress(
       vm_tools::cicerone::
-          ImportLxdContainerProgressSignal_Status_FAILED_ARCHITECTURE,
-      0);
+          ImportLxdContainerProgressSignal_Status_FAILED_ARCHITECTURE);
   EXPECT_EQ(notification->get_status(),
             CrostiniExportImportNotification::Status::FAILED);
   std::string msg(
@@ -254,4 +260,28 @@
   EXPECT_EQ(notification->get_notification()->message(),
             base::UTF8ToUTF16(msg));
 }
+
+TEST_F(CrostiniExportImportTest, TestImportFailSpace) {
+  crostini_export_import()->FileSelected(
+      tarball_, 0, reinterpret_cast<void*>(ExportImportType::IMPORT));
+  run_loop_->RunUntilIdle();
+  CrostiniExportImportNotification* notification =
+      crostini_export_import()->GetNotificationForTesting(container_id_);
+
+  // Failed Space.
+  SendImportProgress(
+      vm_tools::cicerone::ImportLxdContainerProgressSignal_Status_FAILED_SPACE,
+      {
+          .available_space = 20ul * 1'024 * 1'024 * 1'024,    // 20Gb
+          .min_required_space = 35ul * 1'024 * 1'024 * 1'024  // 35Gb
+      });
+  EXPECT_EQ(notification->get_status(),
+            CrostiniExportImportNotification::Status::FAILED);
+  std::string msg =
+      "Cannot restore due to lack of storage space. Free up 15.0 GB from the "
+      "device and try again.";
+  EXPECT_EQ(notification->get_notification()->message(),
+            base::UTF8ToUTF16(msg));
+}
+
 }  // namespace crostini
diff --git a/chrome/browser/chromeos/crostini/crostini_manager.cc b/chrome/browser/chromeos/crostini/crostini_manager.cc
index 0bcaabd7..b9d7cb3 100644
--- a/chrome/browser/chromeos/crostini/crostini_manager.cc
+++ b/chrome/browser/chromeos/crostini/crostini_manager.cc
@@ -1719,6 +1719,13 @@
   import_container_progress_observers_.RemoveObserver(observer);
 }
 
+void CrostiniManager::AddVmShutdownObserver(VmShutdownObserver* observer) {
+  vm_shutdown_observers_.AddObserver(observer);
+}
+void CrostiniManager::RemoveVmShutdownObserver(VmShutdownObserver* observer) {
+  vm_shutdown_observers_.RemoveObserver(observer);
+}
+
 void CrostiniManager::OnCreateDiskImage(
     CreateDiskImageCallback callback,
     base::Optional<vm_tools::concierge::CreateDiskImageResponse> reply) {
@@ -1883,6 +1890,11 @@
       return;
     }
   }
+  // Notify observers
+  for (auto& observer : vm_shutdown_observers_) {
+    observer.OnVmShutdown(vm_name);
+  }
+
   // Remove from running_vms_, and other vm-keyed state.
   running_vms_.erase(vm_name);
   running_containers_.erase(vm_name);
@@ -2615,6 +2627,12 @@
       call_original_callback = true;
       result = CrostiniResult::CONTAINER_EXPORT_IMPORT_FAILED_ARCHITECTURE;
       break;
+    case vm_tools::cicerone::ImportLxdContainerProgressSignal::FAILED_SPACE:
+      call_observers = true;
+      status = ImportContainerProgressStatus::FAILURE_SPACE;
+      call_original_callback = true;
+      result = CrostiniResult::CONTAINER_EXPORT_IMPORT_FAILED_SPACE;
+      break;
     default:
       call_original_callback = true;
       result = CrostiniResult::CONTAINER_EXPORT_IMPORT_FAILED;
@@ -2628,7 +2646,8 @@
       observer.OnImportContainerProgress(
           signal.vm_name(), signal.container_name(), status,
           signal.progress_percent(), signal.progress_speed(),
-          signal.architecture_device(), signal.architecture_container());
+          signal.architecture_device(), signal.architecture_container(),
+          signal.available_space(), signal.min_required_space());
     }
   }
 
diff --git a/chrome/browser/chromeos/crostini/crostini_manager.h b/chrome/browser/chromeos/crostini/crostini_manager.h
index 79a7dda..f66e6f9b 100644
--- a/chrome/browser/chromeos/crostini/crostini_manager.h
+++ b/chrome/browser/chromeos/crostini/crostini_manager.h
@@ -72,6 +72,7 @@
   CONTAINER_EXPORT_IMPORT_FAILED_VM_STARTED,
   CONTAINER_EXPORT_IMPORT_FAILED_ARCHITECTURE,
   NOT_ALLOWED,
+  CONTAINER_EXPORT_IMPORT_FAILED_SPACE,
 };
 
 enum class InstallLinuxPackageProgressStatus {
@@ -102,6 +103,7 @@
   UPLOAD,
   UNPACK,
   FAILURE_ARCHITECTURE,
+  FAILURE_SPACE,
 };
 
 struct VmInfo {
@@ -199,7 +201,9 @@
       int progress_percent,
       uint64_t progress_speed,
       const std::string& architecture_device,
-      const std::string& architecture_container) = 0;
+      const std::string& architecture_container,
+      uint64_t available_space,
+      uint64_t minimum_required_space) = 0;
 };
 
 class InstallerViewStatusObserver : public base::CheckedObserver {
@@ -208,6 +212,12 @@
   virtual void OnCrostiniInstallerViewStatusChanged(bool open) = 0;
 };
 
+class VmShutdownObserver : public base::CheckedObserver {
+ public:
+  // Called when the given VM has shutdown.
+  virtual void OnVmShutdown(const std::string& vm_name) = 0;
+};
+
 // CrostiniManager is a singleton which is used to check arguments for
 // ConciergeClient and CiceroneClient. ConciergeClient is dedicated to
 // communication with the Concierge service, CiceroneClient is dedicated to
@@ -590,6 +600,10 @@
   void RemoveImportContainerProgressObserver(
       ImportContainerProgressObserver* observer);
 
+  // Add/remove vm shutdown observers.
+  void AddVmShutdownObserver(VmShutdownObserver* observer);
+  void RemoveVmShutdownObserver(VmShutdownObserver* observer);
+
   // ConciergeClient::Observer:
   void OnContainerStartupFailed(
       const vm_tools::concierge::ContainerStartedSignal& signal) override;
@@ -913,6 +927,8 @@
   base::ObserverList<ImportContainerProgressObserver>::Unchecked
       import_container_progress_observers_;
 
+  base::ObserverList<VmShutdownObserver> vm_shutdown_observers_;
+
   // Restarts by <vm_name, container_name>. Only one restarter flow is actually
   // running for a given container, other restarters will just have their
   // callback called when the running restarter completes.
diff --git a/chrome/browser/chromeos/crostini/crostini_package_service.cc b/chrome/browser/chromeos/crostini/crostini_package_service.cc
index 30da593fb..3d1ade5 100644
--- a/chrome/browser/chromeos/crostini/crostini_package_service.cc
+++ b/chrome/browser/chromeos/crostini/crostini_package_service.cc
@@ -109,6 +109,7 @@
 
   manager->AddLinuxPackageOperationProgressObserver(this);
   manager->AddPendingAppListUpdatesObserver(this);
+  manager->AddVmShutdownObserver(this);
 }
 
 CrostiniPackageService::~CrostiniPackageService() = default;
@@ -117,6 +118,7 @@
   CrostiniManager* manager = CrostiniManager::GetForProfile(profile_);
   manager->RemoveLinuxPackageOperationProgressObserver(this);
   manager->RemovePendingAppListUpdatesObserver(this);
+  manager->RemoveVmShutdownObserver(this);
 }
 
 void CrostiniPackageService::SetNotificationStateChangeCallbackForTesting(
@@ -203,6 +205,26 @@
                                progress_percent);
 }
 
+void CrostiniPackageService::OnVmShutdown(const std::string& vm_name) {
+  // Making a notification as failed removes it from |running_notifications_|,
+  // which invalidates the iterators. To avoid this, we record all the
+  // containers that just shut down before removing any notifications.
+  std::vector<ContainerId> to_remove;
+  for (auto iter = running_notifications_.begin();
+       iter != running_notifications_.end(); iter++) {
+    if (iter->first.first == vm_name) {
+      to_remove.push_back(iter->first);
+    }
+  }
+  for (auto iter : to_remove) {
+    // Use a loop because removing a notification from the running set can cause
+    // a queued operation to start, which will also need to be removed.
+    while (ContainerHasRunningOperation(iter)) {
+      UpdatePackageOperationStatus(iter, PackageOperationStatus::FAILED, 0);
+    }
+  }
+}
+
 void CrostiniPackageService::QueueUninstallApplication(
     const std::string& app_id) {
   auto registration =
diff --git a/chrome/browser/chromeos/crostini/crostini_package_service.h b/chrome/browser/chromeos/crostini/crostini_package_service.h
index 9e047e9..ad13ee9 100644
--- a/chrome/browser/chromeos/crostini/crostini_package_service.h
+++ b/chrome/browser/chromeos/crostini/crostini_package_service.h
@@ -26,7 +26,8 @@
 
 class CrostiniPackageService : public KeyedService,
                                public LinuxPackageOperationProgressObserver,
-                               public PendingAppListUpdatesObserver {
+                               public PendingAppListUpdatesObserver,
+                               public VmShutdownObserver {
  public:
   using StateChangeCallback =
       base::RepeatingCallback<void(PackageOperationStatus)>;
@@ -87,6 +88,9 @@
                                const std::string& container_name,
                                int count) override;
 
+  // VmShutdownObserver
+  void OnVmShutdown(const std::string& vm_name) override;
+
   // (Eventually) uninstall the package identified by |app_id|. If successfully
   // started, a system notification will be used to display further updates.
   void QueueUninstallApplication(const std::string& app_id);
diff --git a/chrome/browser/chromeos/crostini/crostini_package_service_unittest.cc b/chrome/browser/chromeos/crostini/crostini_package_service_unittest.cc
index b620a4f0..2b60f63 100644
--- a/chrome/browser/chromeos/crostini/crostini_package_service_unittest.cc
+++ b/chrome/browser/chromeos/crostini/crostini_package_service_unittest.cc
@@ -23,6 +23,7 @@
 #include "chromeos/dbus/cros_disks_client.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/fake_cicerone_client.h"
+#include "chromeos/dbus/fake_concierge_client.h"
 #include "chromeos/dbus/vm_applications/apps.pb.h"
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
@@ -1037,6 +1038,28 @@
       UnorderedElementsAre(IsUninstallSuccessNotification(DEFAULT_APP)));
 }
 
+TEST_F(CrostiniPackageServiceTest, UninstallNotificationFailsOnVmShutdown) {
+  // Use two apps to ensure one is queued up.
+  service_->QueueUninstallApplication(kDefaultAppId);
+  service_->QueueUninstallApplication(kSecondAppId);
+
+  base::RunLoop run_loop;
+  CrostiniManager::GetForProfile(profile_.get())
+      ->StopVm(kCrostiniDefaultVmName,
+               base::BindOnce(
+                   [](base::OnceClosure quit, crostini::CrostiniResult) {
+                     std::move(quit).Run();
+                   },
+                   run_loop.QuitClosure()));
+  run_loop.Run();
+
+  EXPECT_THAT(
+      Printable(notification_display_service_->GetDisplayedNotificationsForType(
+          NotificationHandler::Type::TRANSIENT)),
+      UnorderedElementsAre(IsUninstallFailedNotification(DEFAULT_APP),
+                           IsUninstallFailedNotification(SECOND_APP)));
+}
+
 TEST_F(CrostiniPackageServiceTest, ClosingSuccessNotificationWorks) {
   service_->QueueUninstallApplication(kDefaultAppId);
   StartAndSignalUninstall(UninstallPackageProgressSignal::SUCCEEDED);
@@ -1821,6 +1844,31 @@
       UnorderedElementsAre(IsInstallSuccessNotification()));
 }
 
+TEST_F(CrostiniPackageServiceTest, InstallNotificationFailsOnVmShutdown) {
+  service_->InstallLinuxPackage(kCrostiniDefaultVmName,
+                                kCrostiniDefaultContainerName, kPackageFilePath,
+                                base::DoNothing());
+
+  base::RunLoop().RunUntilIdle();
+
+  StartAndSignalInstall(InstallLinuxPackageProgressSignal::INSTALLING);
+
+  base::RunLoop run_loop;
+  CrostiniManager::GetForProfile(profile_.get())
+      ->StopVm(kCrostiniDefaultVmName,
+               base::BindOnce(
+                   [](base::OnceClosure quit, crostini::CrostiniResult) {
+                     std::move(quit).Run();
+                   },
+                   run_loop.QuitClosure()));
+  run_loop.Run();
+
+  EXPECT_THAT(
+      Printable(notification_display_service_->GetDisplayedNotificationsForType(
+          NotificationHandler::Type::TRANSIENT)),
+      UnorderedElementsAre(IsInstallFailedNotification()));
+}
+
 TEST_F(CrostiniPackageServiceTest, UninstallsQueuesBehindStartingUpInstall) {
   CrostiniResult result = CrostiniResult::UNKNOWN_ERROR;
   service_->InstallLinuxPackage(
diff --git a/chrome/browser/chromeos/crostini/crostini_reporting_util.cc b/chrome/browser/chromeos/crostini/crostini_reporting_util.cc
index ba501b33..0d9b8bb6 100644
--- a/chrome/browser/chromeos/crostini/crostini_reporting_util.cc
+++ b/chrome/browser/chromeos/crostini/crostini_reporting_util.cc
@@ -23,7 +23,7 @@
     const component_updater::ComponentUpdateService* update_service,
     const base::Clock* clock) {
   const base::Time last_launch_time_window_start =
-      GetThreeDayWindowStart(clock);
+      GetThreeDayWindowStart(clock->Now());
   const std::string crostini_version = GetTerminaVersion(update_service);
   if (crostini_version.empty()) {
     LOG(ERROR) << "Could not determine Termina version for usage reporting";
@@ -45,11 +45,11 @@
   }
 }
 
-base::Time GetThreeDayWindowStart(const base::Clock* clock) {
-  const base::Time now_normalized = clock->Now().UTCMidnight();
+base::Time GetThreeDayWindowStart(const base::Time& actual_time) {
+  const base::Time actual_time_midnight = actual_time.UTCMidnight();
   const base::TimeDelta delta = base::TimeDelta::FromDays(
-      (now_normalized - base::Time::UnixEpoch()).InDays() % 3);
-  return now_normalized - delta;
+      (actual_time_midnight - base::Time::UnixEpoch()).InDays() % 3);
+  return actual_time_midnight - delta;
 }
 
 std::string GetTerminaVersion(
diff --git a/chrome/browser/chromeos/crostini/crostini_reporting_util.h b/chrome/browser/chromeos/crostini/crostini_reporting_util.h
index f4d8028..80b0498 100644
--- a/chrome/browser/chromeos/crostini/crostini_reporting_util.h
+++ b/chrome/browser/chromeos/crostini/crostini_reporting_util.h
@@ -27,8 +27,9 @@
     const component_updater::ComponentUpdateService* update_service,
     const base::Clock* clock);
 
-// Return the current time with a three-day granularity.
-base::Time GetThreeDayWindowStart(const base::Clock* clock);
+// "Coarsens" the given time to the start of a three-day time window.
+// Used for privacy reasons.
+base::Time GetThreeDayWindowStart(const base::Time& actual_time);
 
 // Retrieve the cros-termina version from the browser's component list.
 std::string GetTerminaVersion(
diff --git a/chrome/browser/chromeos/crostini/crostini_reporting_util_unittest.cc b/chrome/browser/chromeos/crostini/crostini_reporting_util_unittest.cc
index 912860a..ac232136 100644
--- a/chrome/browser/chromeos/crostini/crostini_reporting_util_unittest.cc
+++ b/chrome/browser/chromeos/crostini/crostini_reporting_util_unittest.cc
@@ -119,7 +119,7 @@
   base::Time window_start;
   EXPECT_TRUE(
       base::Time::FromString("Wed, 29 Aug 2018 00:00:00 GMT", &window_start));
-  EXPECT_EQ(window_start, GetThreeDayWindowStart(&test_clock_));
+  EXPECT_EQ(window_start, GetThreeDayWindowStart(test_clock_.Now()));
 
   // Since a three-day period has been crossed, another time is returned
   // for three consecutive days:
@@ -127,13 +127,13 @@
   EXPECT_TRUE(base::Time::FromString("Sat, 1 Sep 2018 00:00:00 GMT",
                                      &next_window_start));
   test_clock_.Advance(base::TimeDelta::FromDays(1));
-  EXPECT_EQ(next_window_start, GetThreeDayWindowStart(&test_clock_));
+  EXPECT_EQ(next_window_start, GetThreeDayWindowStart(test_clock_.Now()));
 
   test_clock_.Advance(base::TimeDelta::FromDays(1));
-  EXPECT_EQ(next_window_start, GetThreeDayWindowStart(&test_clock_));
+  EXPECT_EQ(next_window_start, GetThreeDayWindowStart(test_clock_.Now()));
 
   test_clock_.Advance(base::TimeDelta::FromDays(1));
-  EXPECT_EQ(next_window_start, GetThreeDayWindowStart(&test_clock_));
+  EXPECT_EQ(next_window_start, GetThreeDayWindowStart(test_clock_.Now()));
 
   // After three consecutive days logged with the same value, we now expect
   // a three day change again:
@@ -141,7 +141,7 @@
   EXPECT_TRUE(base::Time::FromString("Tue, 4 Sep 2018 00:00:00 GMT",
                                      &three_days_later));
   test_clock_.Advance(base::TimeDelta::FromDays(1));
-  EXPECT_EQ(three_days_later, GetThreeDayWindowStart(&test_clock_));
+  EXPECT_EQ(three_days_later, GetThreeDayWindowStart(test_clock_.Now()));
 }
 
 TEST_F(CrostiniReportingUtilTest, GetTerminaVersion) {
diff --git a/chrome/browser/chromeos/policy/signin_profile_extensions_policy_browsertest.cc b/chrome/browser/chromeos/policy/signin_profile_extensions_policy_browsertest.cc
index a6009c7..affb188 100644
--- a/chrome/browser/chromeos/policy/signin_profile_extensions_policy_browsertest.cc
+++ b/chrome/browser/chromeos/policy/signin_profile_extensions_policy_browsertest.cc
@@ -5,45 +5,23 @@
 #include <string>
 
 #include "base/bind.h"
-#include "base/command_line.h"
-#include "base/files/file_path.h"
-#include "base/location.h"
-#include "base/logging.h"
 #include "base/macros.h"
-#include "base/path_service.h"
-#include "base/strings/string_util.h"
-#include "base/task/post_task.h"
-#include "chrome/browser/browser_process.h"
-#include "chrome/browser/chromeos/policy/device_policy_builder.h"
-#include "chrome/browser/chromeos/policy/device_policy_cros_browser_test.h"
+#include "chrome/browser/chromeos/policy/signin_profile_extensions_policy_test_base.h"
 #include "chrome/browser/chromeos/profiles/profile_helper.h"
 #include "chrome/browser/extensions/crx_installer.h"
 #include "chrome/browser/extensions/extension_service.h"
 #include "chrome/browser/profiles/profile_manager.h"
-#include "chrome/common/chrome_paths.h"
-#include "chrome/common/chrome_switches.h"
-#include "chrome/test/base/in_process_browser_test.h"
-#include "chromeos/constants/chromeos_switches.h"
-#include "chromeos/dbus/session_manager/fake_session_manager_client.h"
-#include "components/policy/proto/chrome_device_policy.pb.h"
-#include "components/version_info/channel.h"
 #include "components/version_info/version_info.h"
-#include "content/public/browser/browser_task_traits.h"
-#include "content/public/browser/browser_thread.h"
+#include "content/public/browser/notification_details.h"
 #include "content/public/browser/notification_source.h"
-#include "content/public/test/browser_test.h"
 #include "content/public/test/test_utils.h"
 #include "extensions/browser/extension_registry.h"
 #include "extensions/browser/extension_system.h"
 #include "extensions/browser/notification_types.h"
 #include "extensions/browser/test_extension_registry_observer.h"
 #include "extensions/common/extension.h"
-#include "extensions/common/extension_set.h"
 #include "extensions/common/features/feature_channel.h"
-#include "net/test/embedded_test_server/http_request.h"
-#include "net/test/embedded_test_server/http_response.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "url/gurl.h"
 
 namespace policy {
 
@@ -141,126 +119,39 @@
   DISALLOW_COPY_AND_ASSIGN(ExtensionBackgroundPageReadyObserver);
 };
 
-// Returns the initial profile, which is the original profile of the sign-in
-// profile. The apps/extensions specified in the policy will be installed into
-// the initial profile, and then become available in both.
-Profile* GetProfile() {
-  // Intentionally not using the |chromeos::ProfileHelper::GetSigninProfile|
-  // method here, as it performs the lazy construction of the profile, while for
-  // the testing purposes it's better to assert that it has been created before.
-  Profile* const profile =
-      g_browser_process->profile_manager()->GetProfileByPath(
-          chromeos::ProfileHelper::GetSigninProfileDir());
-  DCHECK(profile);
-  return profile;
-}
-
-}  // namespace
-
-namespace {
-
-// Base class for testing sign-in profile apps/extensions that are installed via
-// the device policy.
-class SigninProfileExtensionsPolicyTestBase
-    : public DevicePolicyCrosBrowserTest {
- protected:
-  explicit SigninProfileExtensionsPolicyTestBase(version_info::Channel channel)
-      : channel_(channel), scoped_current_channel_(channel) {}
-
-  void SetUpCommandLine(base::CommandLine* command_line) override {
-    DevicePolicyCrosBrowserTest::SetUpCommandLine(command_line);
-    command_line->AppendSwitch(chromeos::switches::kLoginManager);
-    command_line->AppendSwitch(chromeos::switches::kForceLoginManagerInTests);
-  }
-
-  void SetUpOnMainThread() override {
-    DevicePolicyCrosBrowserTest::SetUpOnMainThread();
-
-    embedded_test_server()->RegisterRequestHandler(base::BindRepeating(
-        &SigninProfileExtensionsPolicyTestBase::InterceptMockHttp,
-        base::Unretained(this)));
-    ASSERT_TRUE(embedded_test_server()->Start());
-  }
-
-  void AddExtensionForForceInstallation(
-      const std::string& extension_id,
-      const std::string& update_manifest_relative_path) {
-    const GURL update_manifest_url =
-        embedded_test_server()->GetURL(update_manifest_relative_path);
-    const std::string policy_item_value = base::ReplaceStringPlaceholders(
-        "$1;$2", {extension_id, update_manifest_url.spec()}, nullptr);
-    device_policy()
-        ->payload()
-        .mutable_device_login_screen_extensions()
-        ->add_device_login_screen_extensions(policy_item_value);
-    RefreshDevicePolicy();
-  }
-
-  const version_info::Channel channel_;
-
- private:
-  // Replace "mock.http" with "127.0.0.1:<port>" on "update_manifest.xml" files.
-  // Host resolver doesn't work here because the test file doesn't know the
-  // correct port number.
-  std::unique_ptr<net::test_server::HttpResponse> InterceptMockHttp(
-      const net::test_server::HttpRequest& request) {
-    const std::string kFileNameToIntercept = "update_manifest.xml";
-    if (request.GetURL().ExtractFileName() != kFileNameToIntercept)
-      return nullptr;
-
-    base::FilePath test_data_dir;
-    base::PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir);
-    // Remove the leading '/'.
-    std::string relative_manifest_path = request.GetURL().path().substr(1);
-    std::string manifest_response;
-    CHECK(base::ReadFileToString(test_data_dir.Append(relative_manifest_path),
-                                 &manifest_response));
-
-    base::ReplaceSubstringsAfterOffset(
-        &manifest_response, 0, "mock.http",
-        embedded_test_server()->host_port_pair().ToString());
-
-    std::unique_ptr<net::test_server::BasicHttpResponse> response(
-        new net::test_server::BasicHttpResponse());
-    response->set_content_type("text/xml");
-    response->set_content(manifest_response);
-    return response;
-  }
-
-  const extensions::ScopedCurrentChannel scoped_current_channel_;
-
-  DISALLOW_COPY_AND_ASSIGN(SigninProfileExtensionsPolicyTestBase);
-};
-
-// Class for testing sign-in profile apps/extensions under different browser
-// channels.
+// Class for testing sign-in profile apps/extensions that are installed via the
+// device policy under different browser channels.
 class SigninProfileExtensionsPolicyPerChannelTest
     : public SigninProfileExtensionsPolicyTestBase,
       public testing::WithParamInterface<version_info::Channel> {
  protected:
-  SigninProfileExtensionsPolicyPerChannelTest()
-      : SigninProfileExtensionsPolicyTestBase(GetParam()) {}
+  SigninProfileExtensionsPolicyPerChannelTest();
 
  private:
   DISALLOW_COPY_AND_ASSIGN(SigninProfileExtensionsPolicyPerChannelTest);
 };
 
+SigninProfileExtensionsPolicyPerChannelTest::
+    SigninProfileExtensionsPolicyPerChannelTest()
+    : SigninProfileExtensionsPolicyTestBase(GetParam()) {}
+
 }  // namespace
 
 // Tests that a whitelisted app gets installed on any browser channel.
 IN_PROC_BROWSER_TEST_P(SigninProfileExtensionsPolicyPerChannelTest,
                        WhitelistedAppInstallation) {
+  Profile* profile = GetInitialProfile();
+
   extensions::TestExtensionRegistryObserver registry_observer(
-      extensions::ExtensionRegistry::Get(GetProfile()), kWhitelistedAppId);
+      extensions::ExtensionRegistry::Get(profile), kWhitelistedAppId);
 
   AddExtensionForForceInstallation(kWhitelistedAppId,
                                    kWhitelistedAppUpdateManifestPath);
 
   registry_observer.WaitForExtensionLoaded();
   const extensions::Extension* extension =
-      extensions::ExtensionRegistry::Get(GetProfile())
-          ->enabled_extensions()
-          .GetByID(kWhitelistedAppId);
+      extensions::ExtensionRegistry::Get(profile)->enabled_extensions().GetByID(
+          kWhitelistedAppId);
   ASSERT_TRUE(extension);
   EXPECT_TRUE(extension->is_platform_app());
 }
@@ -269,9 +160,11 @@
 // "unknown" (trunk) channels, but not on Beta or Stable channels.
 IN_PROC_BROWSER_TEST_P(SigninProfileExtensionsPolicyPerChannelTest,
                        NotWhitelistedAppInstallation) {
+  Profile* profile = GetInitialProfile();
+
   extensions::TestExtensionRegistryObserver registry_observer(
-      extensions::ExtensionRegistry::Get(GetProfile()), kNotWhitelistedAppId);
-  ExtensionInstallErrorObserver install_error_observer(GetProfile(),
+      extensions::ExtensionRegistry::Get(profile), kNotWhitelistedAppId);
+  ExtensionInstallErrorObserver install_error_observer(profile,
                                                        kNotWhitelistedAppId);
 
   AddExtensionForForceInstallation(kNotWhitelistedAppId,
@@ -283,7 +176,7 @@
     case version_info::Channel::DEV: {
       registry_observer.WaitForExtensionLoaded();
       const extensions::Extension* extension =
-          extensions::ExtensionRegistry::Get(GetProfile())
+          extensions::ExtensionRegistry::Get(profile)
               ->enabled_extensions()
               .GetByID(kNotWhitelistedAppId);
       ASSERT_TRUE(extension);
@@ -293,8 +186,9 @@
     case version_info::Channel::BETA:
     case version_info::Channel::STABLE: {
       install_error_observer.Wait();
-      EXPECT_FALSE(extensions::ExtensionRegistry::Get(GetProfile())
-                       ->GetInstalledExtension(kNotWhitelistedAppId));
+      EXPECT_FALSE(
+          extensions::ExtensionRegistry::Get(profile)->GetInstalledExtension(
+              kNotWhitelistedAppId));
       break;
     }
   }
@@ -306,10 +200,11 @@
 // automatically have the |login_screen_extension| type.
 IN_PROC_BROWSER_TEST_P(SigninProfileExtensionsPolicyPerChannelTest,
                        WhitelistedExtensionInstallation) {
+  Profile* profile = GetInitialProfile();
+
   extensions::TestExtensionRegistryObserver registry_observer(
-      extensions::ExtensionRegistry::Get(GetProfile()),
-      kWhitelistedExtensionId);
-  ExtensionInstallErrorObserver install_error_observer(GetProfile(),
+      extensions::ExtensionRegistry::Get(profile), kWhitelistedExtensionId);
+  ExtensionInstallErrorObserver install_error_observer(profile,
                                                        kWhitelistedExtensionId);
 
   AddExtensionForForceInstallation(kWhitelistedExtensionId,
@@ -321,7 +216,7 @@
     case version_info::Channel::DEV: {
       registry_observer.WaitForExtensionLoaded();
       const extensions::Extension* extension =
-          extensions::ExtensionRegistry::Get(GetProfile())
+          extensions::ExtensionRegistry::Get(profile)
               ->enabled_extensions()
               .GetByID(kWhitelistedExtensionId);
       ASSERT_TRUE(extension);
@@ -331,8 +226,9 @@
     case version_info::Channel::BETA:
     case version_info::Channel::STABLE: {
       install_error_observer.Wait();
-      EXPECT_FALSE(extensions::ExtensionRegistry::Get(GetProfile())
-                       ->GetInstalledExtension(kWhitelistedExtensionId));
+      EXPECT_FALSE(
+          extensions::ExtensionRegistry::Get(profile)->GetInstalledExtension(
+              kWhitelistedExtensionId));
       break;
     }
   }
@@ -342,13 +238,16 @@
 // from installation regardless of the browser channel.
 IN_PROC_BROWSER_TEST_P(SigninProfileExtensionsPolicyPerChannelTest,
                        NotWhitelistedExtensionInstallation) {
+  Profile* profile = GetInitialProfile();
+
   ExtensionInstallErrorObserver install_error_observer(
-      GetProfile(), kNotWhitelistedExtensionId);
+      profile, kNotWhitelistedExtensionId);
   AddExtensionForForceInstallation(kNotWhitelistedExtensionId,
                                    kNotWhitelistedExtensionUpdateManifestPath);
   install_error_observer.Wait();
-  EXPECT_FALSE(extensions::ExtensionRegistry::Get(GetProfile())
-                   ->GetInstalledExtension(kNotWhitelistedExtensionId));
+  EXPECT_FALSE(
+      extensions::ExtensionRegistry::Get(profile)->GetInstalledExtension(
+          kNotWhitelistedExtensionId));
 }
 
 INSTANTIATE_TEST_SUITE_P(,
@@ -378,7 +277,7 @@
 // Tests that the extension system enables non-standard extensions in the
 // sign-in profile.
 IN_PROC_BROWSER_TEST_F(SigninProfileExtensionsPolicyTest, ExtensionsEnabled) {
-  EXPECT_TRUE(extensions::ExtensionSystem::Get(GetProfile())
+  EXPECT_TRUE(extensions::ExtensionSystem::Get(GetInitialProfile())
                   ->extension_service()
                   ->extensions_enabled());
 }
@@ -394,10 +293,12 @@
 
 // Tests installation of multiple sign-in profile apps.
 IN_PROC_BROWSER_TEST_F(SigninProfileExtensionsPolicyTest, MultipleApps) {
+  Profile* profile = GetInitialProfile();
+
   extensions::TestExtensionRegistryObserver registry_observer1(
-      extensions::ExtensionRegistry::Get(GetProfile()), kWhitelistedAppId);
+      extensions::ExtensionRegistry::Get(profile), kWhitelistedAppId);
   extensions::TestExtensionRegistryObserver registry_observer2(
-      extensions::ExtensionRegistry::Get(GetProfile()), kNotWhitelistedAppId);
+      extensions::ExtensionRegistry::Get(profile), kNotWhitelistedAppId);
 
   AddExtensionForForceInstallation(kWhitelistedAppId,
                                    kWhitelistedAppUpdateManifestPath);
diff --git a/chrome/browser/chromeos/policy/signin_profile_extensions_policy_test_base.cc b/chrome/browser/chromeos/policy/signin_profile_extensions_policy_test_base.cc
new file mode 100644
index 0000000..f4eded6
--- /dev/null
+++ b/chrome/browser/chromeos/policy/signin_profile_extensions_policy_test_base.cc
@@ -0,0 +1,96 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/chromeos/policy/signin_profile_extensions_policy_test_base.h"
+
+#include "base/bind.h"
+#include "base/files/file_path.h"
+#include "base/files/file_util.h"
+#include "base/logging.h"
+#include "base/path_service.h"
+#include "base/strings/string_util.h"
+#include "chrome/browser/browser_process.h"
+#include "chrome/browser/chromeos/profiles/profile_helper.h"
+#include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/common/chrome_paths.h"
+#include "chromeos/constants/chromeos_switches.h"
+#include "components/policy/proto/chrome_device_policy.pb.h"
+#include "net/test/embedded_test_server/embedded_test_server.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "url/gurl.h"
+
+namespace policy {
+
+SigninProfileExtensionsPolicyTestBase::SigninProfileExtensionsPolicyTestBase(
+    version_info::Channel channel)
+    : channel_(channel), scoped_current_channel_(channel) {}
+
+void SigninProfileExtensionsPolicyTestBase::SetUpCommandLine(
+    base::CommandLine* command_line) {
+  DevicePolicyCrosBrowserTest::SetUpCommandLine(command_line);
+  command_line->AppendSwitch(chromeos::switches::kLoginManager);
+  command_line->AppendSwitch(chromeos::switches::kForceLoginManagerInTests);
+}
+
+void SigninProfileExtensionsPolicyTestBase::SetUpOnMainThread() {
+  DevicePolicyCrosBrowserTest::SetUpOnMainThread();
+
+  embedded_test_server()->RegisterRequestHandler(base::BindRepeating(
+      &SigninProfileExtensionsPolicyTestBase::InterceptMockHttp,
+      base::Unretained(this)));
+  ASSERT_TRUE(embedded_test_server()->Start());
+}
+
+void SigninProfileExtensionsPolicyTestBase::AddExtensionForForceInstallation(
+    const std::string& extension_id,
+    const std::string& update_manifest_relative_path) {
+  const GURL update_manifest_url =
+      embedded_test_server()->GetURL(update_manifest_relative_path);
+  const std::string policy_item_value = base::ReplaceStringPlaceholders(
+      "$1;$2", {extension_id, update_manifest_url.spec()}, nullptr);
+  device_policy()
+      ->payload()
+      .mutable_device_login_screen_extensions()
+      ->add_device_login_screen_extensions(policy_item_value);
+  RefreshDevicePolicy();
+}
+
+std::unique_ptr<net::test_server::HttpResponse>
+SigninProfileExtensionsPolicyTestBase::InterceptMockHttp(
+    const net::test_server::HttpRequest& request) {
+  const std::string kFileNameToIntercept = "update_manifest.xml";
+  if (request.GetURL().ExtractFileName() != kFileNameToIntercept)
+    return nullptr;
+
+  base::FilePath test_data_dir;
+  base::PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir);
+  // Remove the leading '/'.
+  std::string relative_manifest_path = request.GetURL().path().substr(1);
+  std::string manifest_response;
+  CHECK(base::ReadFileToString(test_data_dir.Append(relative_manifest_path),
+                               &manifest_response));
+
+  base::ReplaceSubstringsAfterOffset(
+      &manifest_response, 0, "mock.http",
+      embedded_test_server()->host_port_pair().ToString());
+
+  auto response = std::make_unique<net::test_server::BasicHttpResponse>();
+  response->set_content_type("text/xml");
+  response->set_content(manifest_response);
+  return response;
+}
+
+Profile* SigninProfileExtensionsPolicyTestBase::GetInitialProfile() {
+  // Intentionally not using the |chromeos::ProfileHelper::GetSigninProfile|
+  // method here, as it performs the lazy construction of the profile, while for
+  // the testing purposes it's better to assert that it has been created before.
+  Profile* const profile =
+      g_browser_process->profile_manager()->GetProfileByPath(
+          chromeos::ProfileHelper::GetSigninProfileDir());
+  DCHECK(profile);
+
+  return profile;
+}
+
+}  // namespace policy
diff --git a/chrome/browser/chromeos/policy/signin_profile_extensions_policy_test_base.h b/chrome/browser/chromeos/policy/signin_profile_extensions_policy_test_base.h
new file mode 100644
index 0000000..10936796
--- /dev/null
+++ b/chrome/browser/chromeos/policy/signin_profile_extensions_policy_test_base.h
@@ -0,0 +1,58 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_CHROMEOS_POLICY_SIGNIN_PROFILE_EXTENSIONS_POLICY_TEST_BASE_H_
+#define CHROME_BROWSER_CHROMEOS_POLICY_SIGNIN_PROFILE_EXTENSIONS_POLICY_TEST_BASE_H_
+
+#include <memory>
+#include <string>
+
+#include "base/command_line.h"
+#include "base/macros.h"
+#include "chrome/browser/chromeos/policy/device_policy_cros_browser_test.h"
+#include "chrome/browser/profiles/profile.h"
+#include "components/version_info/channel.h"
+#include "extensions/common/features/feature_channel.h"
+#include "net/test/embedded_test_server/http_request.h"
+#include "net/test/embedded_test_server/http_response.h"
+
+namespace policy {
+
+// Base class for testing sign-in profile apps/extensions that are installed via
+// the device policy.
+class SigninProfileExtensionsPolicyTestBase
+    : public DevicePolicyCrosBrowserTest {
+ protected:
+  explicit SigninProfileExtensionsPolicyTestBase(version_info::Channel channel);
+
+  void SetUpCommandLine(base::CommandLine* command_line) override;
+
+  void SetUpOnMainThread() override;
+
+  void AddExtensionForForceInstallation(
+      const std::string& extension_id,
+      const std::string& update_manifest_relative_path);
+
+  // Returns the initial profile, which is the original profile of the sign-in
+  // profile. The apps/extensions specified in the policy will be installed into
+  // the initial profile, and then become available in both.
+  Profile* GetInitialProfile();
+
+  const version_info::Channel channel_;
+
+ private:
+  // Replace "mock.http" with "127.0.0.1:<port>" on "update_manifest.xml" files.
+  // Host resolver doesn't work here because the test file doesn't know the
+  // correct port number.
+  std::unique_ptr<net::test_server::HttpResponse> InterceptMockHttp(
+      const net::test_server::HttpRequest& request);
+
+  const extensions::ScopedCurrentChannel scoped_current_channel_;
+
+  DISALLOW_COPY_AND_ASSIGN(SigninProfileExtensionsPolicyTestBase);
+};
+
+}  // namespace policy
+
+#endif  // CHROME_BROWSER_CHROMEOS_POLICY_SIGNIN_PROFILE_EXTENSIONS_POLICY_TEST_BASE_H_
diff --git a/chrome/browser/chromeos/policy/status_collector/device_status_collector.cc b/chrome/browser/chromeos/policy/status_collector/device_status_collector.cc
index 2111cafb..d69c464 100644
--- a/chrome/browser/chromeos/policy/status_collector/device_status_collector.cc
+++ b/chrome/browser/chromeos/policy/status_collector/device_status_collector.cc
@@ -41,6 +41,9 @@
 #include "chrome/browser/chromeos/app_mode/arc/arc_kiosk_app_manager.h"
 #include "chrome/browser/chromeos/app_mode/kiosk_app_manager.h"
 #include "chrome/browser/chromeos/crostini/crostini_pref_names.h"
+#include "chrome/browser/chromeos/crostini/crostini_registry_service.h"
+#include "chrome/browser/chromeos/crostini/crostini_registry_service_factory.h"
+#include "chrome/browser/chromeos/crostini/crostini_reporting_util.h"
 #include "chrome/browser/chromeos/login/users/chrome_user_manager.h"
 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
 #include "chrome/browser/chromeos/policy/device_local_account.h"
@@ -417,6 +420,64 @@
   return fetcher.Run();
 }
 
+// Utility method to complete information for a reported Crostini App.
+// Returns whether all required App information could be retrieved or not.
+bool AddCrostiniAppInfo(
+    const crostini::CrostiniRegistryService::Registration& registration,
+    em::CrostiniApp* const app) {
+  app->set_app_name(registration.Name());
+  const base::Time last_launch_time = registration.LastLaunchTime();
+  if (!last_launch_time.is_null()) {
+    app->set_last_launch_time_window_start_timestamp(
+        crostini::GetThreeDayWindowStart(last_launch_time).ToJavaTime());
+  }
+
+  if (registration.is_terminal_app()) {
+    app->set_app_type(em::CROSTINI_APP_TYPE_TERMINAL);
+    // We do not log package information if the App is the terminal:
+    return true;
+  }
+  app->set_app_type(em::CROSTINI_APP_TYPE_INTERACTIVE);
+
+  const std::string& package_id = registration.PackageId();
+  if (package_id.empty())
+    return true;
+
+  const std::vector<std::string> package_info = base::SplitString(
+      package_id, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
+
+  // The package identifier is in the form of a semicolon delimited string of
+  // the format: name;version;arch;data (see cicerone_service.proto)
+  if (package_info.size() != 4) {
+    LOG(ERROR) << "Package id has the wrong format: " << package_id;
+    return false;
+  }
+
+  app->set_package_name(package_info[0]);
+  app->set_package_version(package_info[1]);
+
+  return true;
+}
+
+// Utility method to add a list of installed Crostini Apps to Crostini status
+void AddCrostiniAppListForProfile(Profile* const profile,
+                                  em::CrostiniStatus* const crostini_status) {
+  crostini::CrostiniRegistryService* registry_service =
+      crostini::CrostiniRegistryServiceFactory::GetForProfile(profile);
+  const std::vector<std::string> registered_app_ids =
+      registry_service->GetRegisteredAppIds();
+  for (auto registered_app_id : registered_app_ids) {
+    crostini::CrostiniRegistryService::Registration registration =
+        *registry_service->GetRegistration(registered_app_id);
+    em::CrostiniApp* const app = crostini_status->add_installed_apps();
+    if (!AddCrostiniAppInfo(registration, app)) {
+      LOG(ERROR) << "Could not retrieve all required information for "
+                    "registered app_id: "
+                 << registered_app_id;
+    }
+  }
+}
+
 }  // namespace
 
 namespace policy {
@@ -1880,6 +1941,12 @@
       last_launch_time_window_start);
   crostini_status->set_last_launch_vm_image_version(termina_version);
 
+  if (profile->GetPrefs()->GetBoolean(crostini::prefs::kCrostiniEnabled) &&
+      base::FeatureList::IsEnabled(
+          features::kCrostiniAdditionalEnterpriseReporting)) {
+    AddCrostiniAppListForProfile(profile, crostini_status);
+  }
+
   return true;
 }
 
diff --git a/chrome/browser/chromeos/policy/status_collector/device_status_collector_browsertest.cc b/chrome/browser/chromeos/policy/status_collector/device_status_collector_browsertest.cc
index e074467..d5a1b51 100644
--- a/chrome/browser/chromeos/policy/status_collector/device_status_collector_browsertest.cc
+++ b/chrome/browser/chromeos/policy/status_collector/device_status_collector_browsertest.cc
@@ -24,12 +24,16 @@
 #include "base/system/sys_info.h"
 #include "base/test/scoped_feature_list.h"
 #include "base/test/scoped_path_override.h"
+#include "base/test/simple_test_clock.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "chrome/browser/chrome_content_browser_client.h"
 #include "chrome/browser/chromeos/app_mode/arc/arc_kiosk_app_manager.h"
 #include "chrome/browser/chromeos/app_mode/kiosk_app_data.h"
 #include "chrome/browser/chromeos/app_mode/kiosk_app_manager.h"
 #include "chrome/browser/chromeos/crostini/crostini_pref_names.h"
+#include "chrome/browser/chromeos/crostini/crostini_registry_service.h"
+#include "chrome/browser/chromeos/crostini/crostini_registry_service_factory.h"
+#include "chrome/browser/chromeos/crostini/crostini_test_helper.h"
 #include "chrome/browser/chromeos/login/users/mock_user_manager.h"
 #include "chrome/browser/chromeos/ownership/fake_owner_settings_service.h"
 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
@@ -54,6 +58,7 @@
 #include "chromeos/dbus/shill/shill_ipconfig_client.h"
 #include "chromeos/dbus/shill/shill_profile_client.h"
 #include "chromeos/dbus/shill/shill_service_client.h"
+#include "chromeos/dbus/vm_applications/apps.pb.h"
 #include "chromeos/disks/disk_mount_manager.h"
 #include "chromeos/disks/mock_disk_mount_manager.h"
 #include "chromeos/login/login_state/login_state.h"
@@ -119,6 +124,14 @@
 const char kShillFakeProfilePath[] = "/profile/user1/shill";
 const char kShillFakeUserhash[] = "user1";
 
+// Constants for Crostini reporting test cases:
+const char kCrostiniUserEmail[] = "user0@managed.com";
+const char kTerminaVmVersion[] = "1.33.7";
+const char kActualLastLaunchTimeFormatted[] = "Sat, 1 Sep 2018 11:50:50 GMT";
+const char kLastLaunchTimeWindowStartFormatted[] =
+    "Sat, 1 Sep 2018 00:00:00 GMT";
+const long kLastLaunchTimeWindowStartInJavaTime = 1535760000000;
+
 class TestingDeviceStatusCollector : public policy::DeviceStatusCollector {
  public:
   TestingDeviceStatusCollector(
@@ -677,6 +690,8 @@
   base::ScopedPathOverride user_data_dir_override_;
   chromeos::FakeUpdateEngineClient* const update_engine_client_;
   std::unique_ptr<base::RunLoop> run_loop_;
+  base::test::ScopedFeatureList scoped_feature_list_;
+  base::SimpleTestClock test_clock_;
 
   // This property is required to instantiate the session manager, a singleton
   // which is used by the device status collector.
@@ -1531,20 +1546,22 @@
       base::BindRepeating(&GetEmptyTpmStatus),
       base::BindRepeating(&GetEmptyEMMCLifetimeEstimation));
 
-  const AccountId account_id(AccountId::FromUserEmail("user0@managed.com"));
+  const AccountId account_id(AccountId::FromUserEmail(kCrostiniUserEmail));
   MockRegularUserWithAffiliation(account_id, true);
   testing_profile_->GetPrefs()->SetBoolean(
       crostini::prefs::kReportCrostiniUsageEnabled, true);
   testing_profile_->GetPrefs()->SetString(
-      crostini::prefs::kCrostiniLastLaunchVersion, "1.33.7");
+      crostini::prefs::kCrostiniLastLaunchVersion, kTerminaVmVersion);
   testing_profile_->GetPrefs()->SetInt64(
-      crostini::prefs::kCrostiniLastLaunchTimeWindowStart, 1535760000000);
+      crostini::prefs::kCrostiniLastLaunchTimeWindowStart,
+      kLastLaunchTimeWindowStartInJavaTime);
 
   GetStatus();
   EXPECT_TRUE(got_session_status_);
-  EXPECT_EQ(1535760000000, session_status_.crostini_status()
-                               .last_launch_time_window_start_timestamp());
-  EXPECT_EQ("1.33.7",
+  EXPECT_EQ(kLastLaunchTimeWindowStartInJavaTime,
+            session_status_.crostini_status()
+                .last_launch_time_window_start_timestamp());
+  EXPECT_EQ(kTerminaVmVersion,
             session_status_.crostini_status().last_launch_vm_image_version());
   // In tests, GetUserDMToken returns the e-mail for easy verification.
   EXPECT_EQ(account_id.GetUserEmail(), session_status_.user_dm_token());
@@ -1559,7 +1576,7 @@
       base::BindRepeating(&GetEmptyTpmStatus),
       base::BindRepeating(&GetEmptyEMMCLifetimeEstimation));
 
-  const AccountId account_id(AccountId::FromUserEmail("user0@managed.com"));
+  const AccountId account_id(AccountId::FromUserEmail(kCrostiniUserEmail));
   MockRegularUserWithAffiliation(account_id, true);
   testing_profile_->GetPrefs()->SetBoolean(
       crostini::prefs::kReportCrostiniUsageEnabled, true);
@@ -1572,6 +1589,132 @@
   EXPECT_FALSE(got_session_status_);
 }
 
+TEST_F(DeviceStatusCollectorTest, CrostiniAppUsageReporting) {
+  RestartStatusCollector(
+      base::BindRepeating(&GetEmptyVolumeInfo),
+      base::BindRepeating(&GetEmptyCPUStatistics),
+      base::BindRepeating(&GetEmptyCPUTempInfo),
+      base::BindRepeating(&GetFakeAndroidStatus, kArcStatus, kDroidGuardInfo),
+      base::BindRepeating(&GetEmptyTpmStatus),
+      base::BindRepeating(&GetEmptyEMMCLifetimeEstimation));
+
+  const AccountId account_id(AccountId::FromUserEmail(kCrostiniUserEmail));
+  MockRegularUserWithAffiliation(account_id, true);
+  testing_profile_->GetPrefs()->SetBoolean(
+      crostini::prefs::kReportCrostiniUsageEnabled, true);
+  testing_profile_->GetPrefs()->SetString(
+      crostini::prefs::kCrostiniLastLaunchVersion, kTerminaVmVersion);
+  testing_profile_->GetPrefs()->SetInt64(
+      crostini::prefs::kCrostiniLastLaunchTimeWindowStart,
+      kLastLaunchTimeWindowStartInJavaTime);
+
+  testing_profile_->GetPrefs()->SetBoolean(crostini::prefs::kCrostiniEnabled,
+                                           true);
+  scoped_feature_list_.InitAndEnableFeature(
+      features::kCrostiniAdditionalEnterpriseReporting);
+
+  const std::string desktop_file_id = "vim";
+  const std::string package_id =
+      "vim;2:8.0.0197-4+deb9u1;amd64;installed:debian-stable";
+
+  vm_tools::apps::ApplicationList app_list =
+      crostini::CrostiniTestHelper::BasicAppList(
+          desktop_file_id, crostini::kCrostiniDefaultVmName,
+          crostini::kCrostiniDefaultContainerName);
+  app_list.mutable_apps(0)->set_package_id(package_id);
+
+  crostini::CrostiniRegistryService* const registry_service =
+      crostini::CrostiniRegistryServiceFactory::GetForProfile(
+          testing_profile_.get());
+  registry_service->UpdateApplicationList(app_list);
+  base::Time last_launch_time;
+  EXPECT_TRUE(base::Time::FromString(kActualLastLaunchTimeFormatted,
+                                     &last_launch_time));
+  test_clock_.SetNow(last_launch_time);
+  registry_service->SetClockForTesting(&test_clock_);
+  registry_service->AppLaunched(crostini::CrostiniTestHelper::GenerateAppId(
+      desktop_file_id, crostini::kCrostiniDefaultVmName,
+      crostini::kCrostiniDefaultContainerName));
+
+  GetStatus();
+  EXPECT_TRUE(got_session_status_);
+
+  EXPECT_EQ(2, session_status_.crostini_status().installed_apps_size());
+  EXPECT_EQ(desktop_file_id,
+            session_status_.crostini_status().installed_apps()[0].app_name());
+  EXPECT_EQ(em::CROSTINI_APP_TYPE_INTERACTIVE,
+            session_status_.crostini_status().installed_apps()[0].app_type());
+  base::Time last_launch_time_coarsed;
+  EXPECT_TRUE(base::Time::FromString(kLastLaunchTimeWindowStartFormatted,
+                                     &last_launch_time_coarsed));
+  EXPECT_EQ(kLastLaunchTimeWindowStartInJavaTime,
+            session_status_.crostini_status()
+                .installed_apps()[0]
+                .last_launch_time_window_start_timestamp());
+  EXPECT_EQ(
+      "vim",
+      session_status_.crostini_status().installed_apps()[0].package_name());
+  EXPECT_EQ(
+      "2:8.0.0197-4+deb9u1",
+      session_status_.crostini_status().installed_apps()[0].package_version());
+  EXPECT_EQ("Terminal",
+            session_status_.crostini_status().installed_apps()[1].app_name());
+  EXPECT_EQ(em::CROSTINI_APP_TYPE_TERMINAL,
+            session_status_.crostini_status().installed_apps()[1].app_type());
+  EXPECT_EQ(
+      std::string(),
+      session_status_.crostini_status().installed_apps()[1].package_name());
+  EXPECT_EQ(
+      std::string(),
+      session_status_.crostini_status().installed_apps()[1].package_version());
+  EXPECT_EQ(0, session_status_.crostini_status()
+                   .installed_apps()[1]
+                   .last_launch_time_window_start_timestamp());
+
+  // In tests, GetUserDMToken returns the e-mail for easy verification.
+  EXPECT_EQ(account_id.GetUserEmail(), session_status_.user_dm_token());
+}
+
+TEST_F(DeviceStatusCollectorTest,
+       TerminalAppIsNotReportedIfCrostiniHasBeenRemoved) {
+  RestartStatusCollector(
+      base::BindRepeating(&GetEmptyVolumeInfo),
+      base::BindRepeating(&GetEmptyCPUStatistics),
+      base::BindRepeating(&GetEmptyCPUTempInfo),
+      base::BindRepeating(&GetFakeAndroidStatus, kArcStatus, kDroidGuardInfo),
+      base::BindRepeating(&GetEmptyTpmStatus),
+      base::BindRepeating(&GetEmptyEMMCLifetimeEstimation));
+
+  const AccountId account_id(AccountId::FromUserEmail(kCrostiniUserEmail));
+  MockRegularUserWithAffiliation(account_id, true);
+  testing_profile_->GetPrefs()->SetBoolean(
+      crostini::prefs::kReportCrostiniUsageEnabled, true);
+  testing_profile_->GetPrefs()->SetString(
+      crostini::prefs::kCrostiniLastLaunchVersion, kTerminaVmVersion);
+  testing_profile_->GetPrefs()->SetInt64(
+      crostini::prefs::kCrostiniLastLaunchTimeWindowStart,
+      kLastLaunchTimeWindowStartInJavaTime);
+
+  testing_profile_->GetPrefs()->SetBoolean(crostini::prefs::kCrostiniEnabled,
+                                           false);
+  scoped_feature_list_.InitAndEnableFeature(
+      features::kCrostiniAdditionalEnterpriseReporting);
+
+  GetStatus();
+  EXPECT_TRUE(got_session_status_);
+
+  // crostini::prefs::kCrostiniEnabled is set to false, but there
+  // is general last launch information. This means Crostini has been
+  // disabled after it has been used. We still report general last launch
+  // information but do not want to jump into application reporting, because
+  // the registry always has the terminal, even if Crostini has been
+  // uninstalled.
+  EXPECT_EQ(kLastLaunchTimeWindowStartInJavaTime,
+            session_status_.crostini_status()
+                .last_launch_time_window_start_timestamp());
+  EXPECT_EQ(0, session_status_.crostini_status().installed_apps_size());
+}
+
 TEST_F(DeviceStatusCollectorTest, NoRegularUserReportingByDefault) {
   RestartStatusCollector(
       base::BindRepeating(&GetEmptyVolumeInfo),
diff --git a/chrome/browser/chromeos/smb_client/smb_service.cc b/chrome/browser/chromeos/smb_client/smb_service.cc
index 397932a..f0653d34 100644
--- a/chrome/browser/chromeos/smb_client/smb_service.cc
+++ b/chrome/browser/chromeos/smb_client/smb_service.cc
@@ -291,10 +291,13 @@
                               : share_finder_->GetResolvedUrl(parsed_url);
   const base::FilePath mount_path(url);
 
+  SmbProviderClient::MountOptions smb_mount_options;
+  smb_mount_options.username = username;
+  smb_mount_options.workgroup = workgroup;
+  smb_mount_options.ntlm_enabled = IsNTLMAuthenticationEnabled();
   GetSmbProviderClient()->Mount(
-      mount_path, IsNTLMAuthenticationEnabled(), workgroup, username,
+      mount_path, smb_mount_options,
       temp_file_manager_->WritePasswordToFile(password),
-      false /* skip_connect */,
       base::BindOnce(&SmbService::OnMountResponse, AsWeakPtr(),
                      base::Passed(&callback), options, share_path,
                      use_chromad_kerberos,
@@ -452,10 +455,14 @@
   // An empty password is passed to Mount to conform with the credentials API
   // which expects username & workgroup strings along with a password file
   // descriptor.
+  SmbProviderClient::MountOptions smb_mount_options;
+  smb_mount_options.username = username;
+  smb_mount_options.workgroup = workgroup;
+  smb_mount_options.ntlm_enabled = IsNTLMAuthenticationEnabled();
+  smb_mount_options.skip_connect = true;
   GetSmbProviderClient()->Mount(
-      mount_path, IsNTLMAuthenticationEnabled(), workgroup, username,
+      mount_path, smb_mount_options,
       temp_file_manager_->WritePasswordToFile("" /* password */),
-      true /* skip_connect */,
       base::BindOnce(&SmbService::OnRemountResponse, AsWeakPtr(),
                      file_system_info.file_system_id()));
 }
@@ -482,10 +489,12 @@
 void SmbService::Premount(const base::FilePath& share_path) {
   // Premounting is equivalent to remounting, but with an empty username and
   // password.
+  SmbProviderClient::MountOptions smb_mount_options;
+  smb_mount_options.ntlm_enabled = IsNTLMAuthenticationEnabled();
+  smb_mount_options.skip_connect = true;
   GetSmbProviderClient()->Mount(
-      share_path, IsNTLMAuthenticationEnabled(), "", "",
+      share_path, smb_mount_options,
       temp_file_manager_->WritePasswordToFile("" /* password */),
-      true /* skip_connect */,
       base::BindOnce(&SmbService::OnPremountResponse, AsWeakPtr(), share_path));
 }
 
@@ -583,6 +592,19 @@
                           base::Unretained(this))));
   RestoreMounts();
   net::NetworkChangeNotifier::AddNetworkChangeObserver(this);
+
+  if (setup_complete_callback_) {
+    std::move(setup_complete_callback_).Run();
+  }
+}
+
+void SmbService::OnSetupCompleteForTesting(base::OnceClosure callback) {
+  DCHECK(!setup_complete_callback_);
+  if (temp_file_manager_) {
+    std::move(callback).Run();
+    return;
+  }
+  setup_complete_callback_ = std::move(callback);
 }
 
 void SmbService::FireMountCallback(MountResponse callback,
diff --git a/chrome/browser/chromeos/smb_client/smb_service.h b/chrome/browser/chromeos/smb_client/smb_service.h
index 4771e63..7b2b7b1 100644
--- a/chrome/browser/chromeos/smb_client/smb_service.h
+++ b/chrome/browser/chromeos/smb_client/smb_service.h
@@ -116,6 +116,10 @@
     disable_share_discovery_for_testing_ = true;
   }
 
+  // Run |callback| when setup had completed. If setup has already completed,
+  // |callback| will be run inline.
+  void OnSetupCompleteForTesting(base::OnceClosure callback);
+
  private:
   friend class SmbServiceTest;
 
@@ -290,6 +294,8 @@
   // |file_system_id| -> |mount_id|
   std::unordered_map<std::string, int32_t> mount_id_map_;
 
+  base::OnceClosure setup_complete_callback_;
+
   DISALLOW_COPY_AND_ASSIGN(SmbService);
 };
 
diff --git a/chrome/browser/chromeos/smb_client/smb_service_unittest.cc b/chrome/browser/chromeos/smb_client/smb_service_unittest.cc
index 8b67d7d..d632dc6 100644
--- a/chrome/browser/chromeos/smb_client/smb_service_unittest.cc
+++ b/chrome/browser/chromeos/smb_client/smb_service_unittest.cc
@@ -10,9 +10,11 @@
 #include <utility>
 
 #include "base/bind.h"
+#include "base/bind_helpers.h"
 #include "base/json/json_reader.h"
 #include "base/run_loop.h"
 #include "base/strings/strcat.h"
+#include "base/test/bind_test_util.h"
 #include "base/test/simple_test_tick_clock.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "chrome/browser/chromeos/file_system_provider/fake_provided_file_system.h"
@@ -35,6 +37,8 @@
 #include "testing/gtest/include/gtest/gtest.h"
 
 using ::testing::_;
+using ::testing::AllOf;
+using ::testing::Field;
 using ::testing::Invoke;
 using ::testing::WithArg;
 
@@ -58,13 +62,10 @@
   MockSmbProviderClient()
       : FakeSmbProviderClient(true /* should_run_synchronously */) {}
 
-  MOCK_METHOD7(Mount,
+  MOCK_METHOD4(Mount,
                void(const base::FilePath& share_path,
-                    bool ntlm_enabled,
-                    const std::string& workgroup,
-                    const std::string& username,
+                    const MountOptions& options,
                     base::ScopedFD password_fd,
-                    bool skip_connect,
                     SmbProviderClient::MountCallback callback));
   MOCK_METHOD2(SetupKerberos,
                void(const std::string& account_id,
@@ -184,6 +185,58 @@
   ExpectInvalidSsoUrl("smb://[::1]/foo");
 }
 
+TEST_F(SmbServiceTest, Mount) {
+  CreateFspRegistry(profile_);
+  {
+    CreateService(profile_);
+    base::RunLoop run_loop;
+    smb_service_->OnSetupCompleteForTesting(run_loop.QuitClosure());
+    run_loop.Run();
+  }
+  {
+    // Share gathering needs to complete at least once before a share can be
+    // mounted.
+    base::RunLoop run_loop;
+    smb_service_->GatherSharesInNetwork(
+        base::DoNothing(),
+        base::BindLambdaForTesting(
+            [&run_loop](const std::vector<SmbUrl>& shares_gathered, bool done) {
+              if (done) {
+                run_loop.Quit();
+              }
+            }));
+    run_loop.Run();
+  }
+
+  base::RunLoop run_loop;
+  EXPECT_CALL(
+      *mock_client_,
+      Mount(base::FilePath(kMountPath),
+            AllOf(Field(&SmbProviderClient::MountOptions::username, kTestUser),
+                  Field(&SmbProviderClient::MountOptions::workgroup, ""),
+                  Field(&SmbProviderClient::MountOptions::ntlm_enabled, true),
+                  Field(&SmbProviderClient::MountOptions::skip_connect, false)),
+            _, _))
+      .WillOnce(
+          WithArg<3>(Invoke([](SmbProviderClient::MountCallback callback) {
+            std::move(callback).Run(smbprovider::ErrorType::ERROR_OK, 7);
+          })));
+
+  smb_service_->Mount(
+      {}, base::FilePath(kSharePath), kTestUser, "password",
+      false /* use_chromad_kerberos */,
+      false /* should_open_file_manager_after_mount */,
+      base::BindLambdaForTesting([&run_loop](SmbMountResult result) {
+        EXPECT_EQ(SmbMountResult::SUCCESS, result);
+        run_loop.Quit();
+      }));
+  run_loop.Run();
+
+  // Because the mock is potentially leaked, expectations needs to be manually
+  // verified.
+  EXPECT_TRUE(testing::Mock::VerifyAndClearExpectations(mock_client_));
+}
+
 TEST_F(SmbServiceTest, Remount) {
   file_system_provider::MountOptions mount_options(
       CreateFileSystemId(base::FilePath(kSharePath),
@@ -197,9 +250,11 @@
   registry_->RememberFileSystem(file_system_info, {});
 
   base::RunLoop run_loop;
-  EXPECT_CALL(*mock_client_, Mount(base::FilePath(kMountPath), _, "", "", _,
-                                   true /* skip_connect */, _))
-      .WillOnce(WithArg<6>(
+  EXPECT_CALL(
+      *mock_client_,
+      Mount(base::FilePath(kMountPath),
+            Field(&SmbProviderClient::MountOptions::skip_connect, true), _, _))
+      .WillOnce(WithArg<3>(
           Invoke([&run_loop](SmbProviderClient::MountCallback callback) {
             std::move(callback).Run(smbprovider::ErrorType::ERROR_OK, 7);
             run_loop.Quit();
@@ -233,10 +288,16 @@
             base::ThreadTaskRunnerHandle::Get()->PostTask(
                 FROM_HERE, base::BindOnce(std::move(callback), true));
           })));
-  EXPECT_CALL(*mock_client_,
-              Mount(base::FilePath(kMountPath), _, kTestDomain, "ad-test-user",
-                    _, true /* skip_connect */, _))
-      .WillOnce(WithArg<6>(
+  EXPECT_CALL(
+      *mock_client_,
+      Mount(
+          base::FilePath(kMountPath),
+          AllOf(
+              Field(&SmbProviderClient::MountOptions::username, "ad-test-user"),
+              Field(&SmbProviderClient::MountOptions::workgroup, kTestDomain),
+              Field(&SmbProviderClient::MountOptions::skip_connect, true)),
+          _, _))
+      .WillOnce(WithArg<3>(
           Invoke([&run_loop](SmbProviderClient::MountCallback callback) {
             std::move(callback).Run(smbprovider::ErrorType::ERROR_OK, 7);
             run_loop.Quit();
@@ -263,9 +324,15 @@
   registry_->RememberFileSystem(file_system_info, {});
 
   base::RunLoop run_loop;
-  EXPECT_CALL(*mock_client_, Mount(base::FilePath(kMountPath), _, kTestDomain,
-                                   kTestUser, _, true /* skip_connect */, _))
-      .WillOnce(WithArg<6>(
+  EXPECT_CALL(
+      *mock_client_,
+      Mount(
+          base::FilePath(kMountPath),
+          AllOf(Field(&SmbProviderClient::MountOptions::username, kTestUser),
+                Field(&SmbProviderClient::MountOptions::workgroup, kTestDomain),
+                Field(&SmbProviderClient::MountOptions::skip_connect, true)),
+          _, _))
+      .WillOnce(WithArg<3>(
           Invoke([&run_loop](SmbProviderClient::MountCallback callback) {
             std::move(callback).Run(smbprovider::ErrorType::ERROR_OK, 7);
             run_loop.Quit();
@@ -293,9 +360,14 @@
   registry_->RememberFileSystem(file_system_info, {});
 
   base::RunLoop run_loop;
-  EXPECT_CALL(*mock_client_, Mount(base::FilePath(kMountPath), _, "", "", _,
-                                   true /* skip_connect */, _))
-      .WillOnce(WithArg<6>(
+  EXPECT_CALL(
+      *mock_client_,
+      Mount(base::FilePath(kMountPath),
+            AllOf(Field(&SmbProviderClient::MountOptions::username, ""),
+                  Field(&SmbProviderClient::MountOptions::workgroup, ""),
+                  Field(&SmbProviderClient::MountOptions::skip_connect, true)),
+            _, _))
+      .WillOnce(WithArg<3>(
           Invoke([&run_loop](SmbProviderClient::MountCallback callback) {
             std::move(callback).Run(smbprovider::ErrorType::ERROR_OK, 7);
             run_loop.Quit();
@@ -319,9 +391,14 @@
                             *parsed_shares);
 
   base::RunLoop run_loop;
-  EXPECT_CALL(*mock_client_, Mount(base::FilePath(kPremountPath), _, "", "", _,
-                                   true /* skip_connect */, _))
-      .WillOnce(WithArg<6>(
+  EXPECT_CALL(
+      *mock_client_,
+      Mount(base::FilePath(kPremountPath),
+            AllOf(Field(&SmbProviderClient::MountOptions::username, ""),
+                  Field(&SmbProviderClient::MountOptions::workgroup, ""),
+                  Field(&SmbProviderClient::MountOptions::skip_connect, true)),
+            _, _))
+      .WillOnce(WithArg<3>(
           Invoke([&run_loop](SmbProviderClient::MountCallback callback) {
             std::move(callback).Run(smbprovider::ErrorType::ERROR_OK, 7);
             run_loop.Quit();
diff --git a/chrome/browser/chromeos/usb/cros_usb_detector.cc b/chrome/browser/chromeos/usb/cros_usb_detector.cc
index b21b932..6e6d071 100644
--- a/chrome/browser/chromeos/usb/cros_usb_detector.cc
+++ b/chrome/browser/chromeos/usb/cros_usb_detector.cc
@@ -99,6 +99,7 @@
     if (detector) {
       detector->AttachUsbDeviceToVm(crostini::kCrostiniDefaultVmName,
                                     device_info_->guid, base::DoNothing());
+      return;
     }
     Close(false);
   }
diff --git a/chrome/browser/chromeos/usb/cros_usb_detector_unittest.cc b/chrome/browser/chromeos/usb/cros_usb_detector_unittest.cc
index ac1b81c4..20337c8 100644
--- a/chrome/browser/chromeos/usb/cros_usb_detector_unittest.cc
+++ b/chrome/browser/chromeos/usb/cros_usb_detector_unittest.cc
@@ -149,6 +149,9 @@
     device_manager_.AddBinding(mojo::MakeRequest(&device_manager_ptr));
     chromeos::CrosUsbDetector::Get()->SetDeviceManagerForTesting(
         std::move(device_manager_ptr));
+    // Create a default VM instance which is running.
+    crostini::CrostiniManager::GetForProfile(profile())->AddRunningVmForTesting(
+        crostini::kCrostiniDefaultVmName);
   }
 
   void TearDown() override {
@@ -213,6 +216,30 @@
   EXPECT_FALSE(display_service_->GetNotification(notification_id));
 }
 
+TEST_F(CrosUsbDetectorTest, UsbNotificationClicked) {
+  ConnectToDeviceManager();
+  base::RunLoop().RunUntilIdle();
+
+  auto device = base::MakeRefCounted<device::FakeUsbDeviceInfo>(
+      0, 1, kManufacturerName, kProductName_1, "002");
+  device_manager_.AddDevice(device);
+  base::RunLoop().RunUntilIdle();
+
+  std::string notification_id =
+      chromeos::CrosUsbDetector::MakeNotificationId(device->guid());
+
+  base::Optional<message_center::Notification> notification =
+      display_service_->GetNotification(notification_id);
+  ASSERT_TRUE(notification);
+
+  notification->delegate()->Click(0, base::nullopt);
+  base::RunLoop().RunUntilIdle();
+
+  EXPECT_TRUE(fake_concierge_client_->attach_usb_device_called());
+  // Notification should close.
+  EXPECT_FALSE(display_service_->GetNotification(notification_id));
+}
+
 TEST_F(CrosUsbDetectorTest, UsbDeviceClassBlockedAdded) {
   ConnectToDeviceManager();
   base::RunLoop().RunUntilIdle();
diff --git a/chrome/browser/extensions/api/storage/settings_apitest.cc b/chrome/browser/extensions/api/storage/settings_apitest.cc
index 52fdd9b..c6b32bc 100644
--- a/chrome/browser/extensions/api/storage/settings_apitest.cc
+++ b/chrome/browser/extensions/api/storage/settings_apitest.cc
@@ -8,6 +8,7 @@
 #include "base/json/json_writer.h"
 #include "base/memory/ref_counted.h"
 #include "base/run_loop.h"
+#include "base/task/post_task.h"
 #include "base/values.h"
 #include "chrome/browser/extensions/api/storage/settings_sync_util.h"
 #include "chrome/browser/extensions/extension_apitest.h"
@@ -31,6 +32,7 @@
 #include "components/sync/model/sync_error_factory.h"
 #include "components/sync/model/sync_error_factory_mock.h"
 #include "components/sync/model/syncable_service.h"
+#include "extensions/browser/api/storage/backend_task_runner.h"
 #include "extensions/browser/api/storage/settings_namespace.h"
 #include "extensions/browser/api/storage/storage_frontend.h"
 #include "extensions/browser/extension_system.h"
@@ -111,19 +113,65 @@
         settings_namespace, normal_action, incognito_action, NULL, true);
   }
 
-  syncer::SyncableService* GetSyncableService() {
-    return settings_sync_util::GetSyncableService(browser()->profile(),
-                                                  kModelType);
+  static void InitSyncOnBackgroundSequence(
+      base::OnceCallback<base::WeakPtr<syncer::SyncableService>()>
+          syncable_service_provider,
+      syncer::SyncChangeProcessor* sync_processor) {
+    DCHECK(GetBackendTaskRunner()->RunsTasksInCurrentSequence());
+
+    base::WeakPtr<syncer::SyncableService> syncable_service =
+        std::move(syncable_service_provider).Run();
+    DCHECK(syncable_service.get());
+    EXPECT_FALSE(
+        syncable_service
+            ->MergeDataAndStartSyncing(
+                kModelType, syncer::SyncDataList(),
+                std::make_unique<syncer::SyncChangeProcessorWrapperForTest>(
+                    sync_processor),
+                std::make_unique<syncer::SyncErrorFactoryMock>())
+            .error()
+            .IsSet());
   }
 
   void InitSync(syncer::SyncChangeProcessor* sync_processor) {
     base::RunLoop().RunUntilIdle();
-    InitSyncWithSyncableService(sync_processor, GetSyncableService());
+
+    base::RunLoop loop;
+    GetBackendTaskRunner()->PostTaskAndReply(
+        FROM_HERE,
+        base::BindOnce(&InitSyncOnBackgroundSequence,
+                       settings_sync_util::GetSyncableServiceProvider(
+                           profile(), kModelType),
+                       sync_processor),
+        loop.QuitClosure());
+    loop.Run();
+  }
+
+  static void SendChangesOnBackgroundSequence(
+      base::OnceCallback<base::WeakPtr<syncer::SyncableService>()>
+          syncable_service_provider,
+      const syncer::SyncChangeList& change_list) {
+    DCHECK(GetBackendTaskRunner()->RunsTasksInCurrentSequence());
+
+    base::WeakPtr<syncer::SyncableService> syncable_service =
+        std::move(syncable_service_provider).Run();
+    DCHECK(syncable_service.get());
+    EXPECT_FALSE(
+        syncable_service->ProcessSyncChanges(FROM_HERE, change_list).IsSet());
   }
 
   void SendChanges(const syncer::SyncChangeList& change_list) {
     base::RunLoop().RunUntilIdle();
-    SendChangesToSyncableService(change_list, GetSyncableService());
+
+    base::RunLoop loop;
+    GetBackendTaskRunner()->PostTaskAndReply(
+        FROM_HERE,
+        base::BindOnce(&SendChangesOnBackgroundSequence,
+                       settings_sync_util::GetSyncableServiceProvider(
+                           profile(), kModelType),
+                       change_list),
+        loop.QuitClosure());
+    loop.Run();
   }
 
   void SetPolicies(const base::DictionaryValue& policies) {
@@ -178,26 +226,9 @@
     return message_json;
   }
 
-  void InitSyncWithSyncableService(
-      syncer::SyncChangeProcessor* sync_processor,
-      syncer::SyncableService* settings_service) {
-    EXPECT_FALSE(settings_service
-                     ->MergeDataAndStartSyncing(
-                         kModelType, syncer::SyncDataList(),
-                         std::unique_ptr<syncer::SyncChangeProcessor>(
-                             new syncer::SyncChangeProcessorWrapperForTest(
-                                 sync_processor)),
-                         std::unique_ptr<syncer::SyncErrorFactory>(
-                             new syncer::SyncErrorFactoryMock()))
-                     .error()
-                     .IsSet());
-  }
-
   void SendChangesToSyncableService(
       const syncer::SyncChangeList& change_list,
       syncer::SyncableService* settings_service) {
-    EXPECT_FALSE(
-        settings_service->ProcessSyncChanges(FROM_HERE, change_list).IsSet());
   }
 
  protected:
diff --git a/chrome/browser/extensions/api/storage/settings_sync_util.cc b/chrome/browser/extensions/api/storage/settings_sync_util.cc
index 04ae94c5..c8045c7 100644
--- a/chrome/browser/extensions/api/storage/settings_sync_util.cc
+++ b/chrome/browser/extensions/api/storage/settings_sync_util.cc
@@ -119,16 +119,6 @@
       CreateData(extension_id, key, no_value, type));
 }
 
-syncer::SyncableService* GetSyncableService(content::BrowserContext* context,
-                                            syncer::ModelType type) {
-  DCHECK(IsOnBackendSequence());
-  DCHECK(type == syncer::APP_SETTINGS || type == syncer::EXTENSION_SETTINGS);
-  StorageFrontend* frontend = StorageFrontend::Get(context);
-  SyncValueStoreCache* sync_cache = static_cast<SyncValueStoreCache*>(
-      frontend->GetValueStoreCache(settings_namespace::SYNC));
-  return sync_cache->GetSyncableService(type);
-}
-
 base::OnceCallback<base::WeakPtr<syncer::SyncableService>()>
 GetSyncableServiceProvider(content::BrowserContext* context,
                            syncer::ModelType type) {
diff --git a/chrome/browser/extensions/api/storage/settings_sync_util.h b/chrome/browser/extensions/api/storage/settings_sync_util.h
index 7aaf637..73d352e 100644
--- a/chrome/browser/extensions/api/storage/settings_sync_util.h
+++ b/chrome/browser/extensions/api/storage/settings_sync_util.h
@@ -55,12 +55,6 @@
     const std::string& key,
     syncer::ModelType type);
 
-// Returns the sync service for settings. Must be called on the backend
-// sequence. |type| must be either APP_SETTINGS or EXTENSION_SETTINGS.
-// TODO(crbug.com/933874): Remove once the old sync controller is removed.
-syncer::SyncableService* GetSyncableService(content::BrowserContext* context,
-                                            syncer::ModelType type);
-
 // Returns a callback that provides a SyncableService. The function must be
 // called on the UI thread and |type| must be either APP_SETTINGS or
 // EXTENSION_SETTINGS. The returned callback must be called on the backend
diff --git a/chrome/browser/extensions/bookmark_app_helper_browsertest.cc b/chrome/browser/extensions/bookmark_app_helper_browsertest.cc
index 4ee8bfe..7b001101 100644
--- a/chrome/browser/extensions/bookmark_app_helper_browsertest.cc
+++ b/chrome/browser/extensions/bookmark_app_helper_browsertest.cc
@@ -157,12 +157,18 @@
 };
 
 // Launches an installation confirmation dialog for a PWA.
+// Deprecated in favour of
+// InstallManagerBookmarkAppDialogTest.CreateWindowedPWA_FromNonInstallableSite.
+// TODO(crbug.com/915043): Erase it.
 IN_PROC_BROWSER_TEST_F(BookmarkAppHelperTest, CreateWindowedPWA) {
   ShowAndVerifyUi();
 }
 
 // Runs through a complete installation of a PWA and ensures the tab is
 // reparented into an app window.
+// Deprecated in favour of
+// InstallManagerBookmarkAppDialogTest.CreateWindowedPWA_FromInstallableSite.
+// TODO(crbug.com/915043): Erase it.
 IN_PROC_BROWSER_TEST_F(BookmarkAppHelperTest, CreateWindowedPWAIntoAppWindow) {
   // The PWA dialog will be launched because manifest_test_page.html passes
   // the PWA check.
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index a02ba4a..528296d 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -1059,8 +1059,8 @@
   },
   {
     "name": "enable-experimental-accessibility-switch-access",
-    "owners": [ "anastasi@google.com", "dmazzoni", "dtseng" ],
-    "expiry_milestone": 76
+    "owners": [ "anastasi@google.com", "//ui/accessibility/OWNERS" ],
+    "expiry_milestone": 78
   },
   {
     "name": "enable-experimental-accessibility-autoclick",
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index b541bda..cc7bfca 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -2753,18 +2753,6 @@
 const char kImmersiveFullscreenDescription[] =
     "Automatically hide and show the toolbar in fullscreen.";
 
-const char kHostedAppsInWindowsName[] =
-    "Allow hosted apps to be opened in windows";
-const char kHostedAppsInWindowsDescription[] =
-    "Allows hosted apps to be opened in windows instead of being limited to "
-    "tabs.";
-
-const char kCreateAppWindowsInAppShimProcessName[] =
-    "Create native windows in the app process";
-const char kCreateAppWindowsInAppShimProcessDescription[] =
-    "Create native windows the app shim process, instead of of the browser "
-    "process.";
-
 const char kEnableCustomMacPaperSizesName[] = "Enable custom paper sizes";
 const char kEnableCustomMacPaperSizesDescription[] =
     "Allow use of custom paper sizes in Print Preview.";
@@ -2776,10 +2764,6 @@
 const char kMacV2GPUSandboxDescription[] =
     "Controls whether the GPU process on macOS uses the V1 or V2 sandbox.";
 
-const char kMacViewsNativeAppWindowsName[] = "Toolkit-Views App Windows.";
-const char kMacViewsNativeAppWindowsDescription[] =
-    "Controls whether to use Toolkit-Views based Chrome App windows.";
-
 const char kMacViewsTaskManagerName[] = "Toolkit-Views Task Manager.";
 const char kMacViewsTaskManagerDescription[] =
     "Controls whether to use the Toolkit-Views based Task Manager.";
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index 068f8cca4..c9bd734 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -1629,12 +1629,6 @@
 extern const char kImmersiveFullscreenName[];
 extern const char kImmersiveFullscreenDescription[];
 
-extern const char kHostedAppsInWindowsName[];
-extern const char kHostedAppsInWindowsDescription[];
-
-extern const char kCreateAppWindowsInAppShimProcessName[];
-extern const char kCreateAppWindowsInAppShimProcessDescription[];
-
 extern const char kEnableCustomMacPaperSizesName[];
 extern const char kEnableCustomMacPaperSizesDescription[];
 
@@ -1644,9 +1638,6 @@
 extern const char kMacV2GPUSandboxName[];
 extern const char kMacV2GPUSandboxDescription[];
 
-extern const char kMacViewsNativeAppWindowsName[];
-extern const char kMacViewsNativeAppWindowsDescription[];
-
 extern const char kMacViewsTaskManagerName[];
 extern const char kMacViewsTaskManagerDescription[];
 
diff --git a/chrome/browser/previews/resource_loading_hints/resource_loading_hints_browsertest.cc b/chrome/browser/previews/resource_loading_hints/resource_loading_hints_browsertest.cc
index c10f34f..fa75b62b 100644
--- a/chrome/browser/previews/resource_loading_hints/resource_loading_hints_browsertest.cc
+++ b/chrome/browser/previews/resource_loading_hints/resource_loading_hints_browsertest.cc
@@ -36,10 +36,12 @@
 #include "components/previews/core/previews_constants.h"
 #include "components/previews/core/previews_features.h"
 #include "components/previews/core/previews_switches.h"
+#include "components/ukm/test_ukm_recorder.h"
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/test/browser_test_utils.h"
 #include "net/test/embedded_test_server/http_request.h"
 #include "net/test/embedded_test_server/http_response.h"
+#include "services/metrics/public/cpp/ukm_builders.h"
 #include "services/network/public/cpp/network_quality_tracker.h"
 
 namespace {
@@ -703,3 +705,44 @@
       "ResourceLoadingHints.CountBlockedSubresourcePatterns", 0);
   EXPECT_FALSE(resource_loading_hint_intervention_header_seen());
 }
+
+IN_PROC_BROWSER_TEST_F(
+    ResourceLoadingHintsBrowserTest,
+    DISABLE_ON_WIN_MAC_CHROMESOS(
+        ResourceLoadingHintsHttpsWhitelistedButShouldNotApplyBecauseCoinFlipHoldback)) {
+  // Holdback the page load from previews and also disable offline previews to
+  // ensure that only post-commit previews are enabled.
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitWithFeaturesAndParameters(
+      {{previews::features::kCoinFlipHoldback,
+        {{"force_coin_flip_always_holdback", "true"}}}},
+      {previews::features::kOfflinePreviews});
+
+  ukm::TestAutoSetUkmRecorder test_ukm_recorder;
+
+  GURL url = https_url();
+
+  // Whitelist resource loading hints for https_hint_setup_url()'s' host.
+  SetDefaultOnlyResourceLoadingHints(https_hint_setup_url());
+
+  SetExpectedFooJpgRequest(true);
+  SetExpectedBarJpgRequest(true);
+  ResetResourceLoadingHintInterventionHeaderSeen();
+
+  base::HistogramTester histogram_tester;
+
+  ui_test_utils::NavigateToURL(browser(), url);
+
+  histogram_tester.ExpectBucketCount(
+      "Previews.EligibilityReason.ResourceLoadingHints",
+      static_cast<int>(previews::PreviewsEligibilityReason::COMMITTED), 1);
+  histogram_tester.ExpectTotalCount(
+      "Previews.PreviewShown.ResourceLoadingHints", 0);
+  histogram_tester.ExpectTotalCount(
+      "ResourceLoadingHints.CountBlockedSubresourcePatterns", 0);
+  EXPECT_FALSE(resource_loading_hint_intervention_header_seen());
+  // Make sure we did not record a PreviewsResourceLoadingHints UKM for it.
+  auto rlh_ukm_entries = test_ukm_recorder.GetEntriesByName(
+      ukm::builders::PreviewsResourceLoadingHints::kEntryName);
+  ASSERT_EQ(0u, rlh_ukm_entries.size());
+}
diff --git a/chrome/browser/previews/resource_loading_hints/resource_loading_hints_web_contents_observer.cc b/chrome/browser/previews/resource_loading_hints/resource_loading_hints_web_contents_observer.cc
index d87b08d4..e4bfecb 100644
--- a/chrome/browser/previews/resource_loading_hints/resource_loading_hints_web_contents_observer.cc
+++ b/chrome/browser/previews/resource_loading_hints/resource_loading_hints_web_contents_observer.cc
@@ -57,6 +57,13 @@
           previews::PreviewsType::RESOURCE_LOADING_HINTS) {
     return;
   }
+  // The committed previews type can sometimes not be cleared out if there were
+  // no pre-commit previews allowed, so make sure we are not in the coin flip
+  // holdback before proceeding with sending resource loading hints.
+  if (previews_user_data->coin_flip_holdback_result() ==
+      previews::CoinFlipHoldbackResult::kHoldback) {
+    return;
+  }
 
   DCHECK(previews::params::IsResourceLoadingHintsEnabled());
   SendResourceLoadingHints(navigation_handle,
diff --git a/chrome/browser/resources/settings/bluetooth_page/bluetooth_device_list_item.js b/chrome/browser/resources/settings/bluetooth_page/bluetooth_device_list_item.js
index a3328e0..ead6fe1 100644
--- a/chrome/browser/resources/settings/bluetooth_page/bluetooth_device_list_item.js
+++ b/chrome/browser/resources/settings/bluetooth_page/bluetooth_device_list_item.js
@@ -91,8 +91,12 @@
     if (device.connecting) {
       return this.i18n('bluetoothConnecting');
     }
-    return this.i18n(
-        device.connected ? 'bluetoothConnected' : 'bluetoothNotConnected');
+    if (!device.connected) {
+      return this.i18n('bluetoothNotConnected');
+    }
+    return device.batteryPercentage !== undefined ?
+        this.i18n('bluetoothConnectedWithBattery', device.batteryPercentage) :
+        this.i18n('bluetoothConnected');
   },
 
   /**
diff --git a/chrome/browser/resources/settings/device_page/display.html b/chrome/browser/resources/settings/device_page/display.html
index d5f461a..c7ca073d 100644
--- a/chrome/browser/resources/settings/device_page/display.html
+++ b/chrome/browser/resources/settings/device_page/display.html
@@ -64,6 +64,10 @@
         flex-grow: 1;
         margin-top: 20px;
       }
+
+      iron-collapse {
+       width: 100%;
+      }
     </style>
     <div class="settings-box first layout vertical self-stretch">
       <h2 class="layout self-start">
@@ -273,16 +277,17 @@
         </settings-dropdown-menu>
       </div>
       <!-- Custom schedule slider -->
-      <div class="settings-box indented continuation">
-        <iron-collapse id="nightLightCustomScheduleCollapse"
-            class="start text-area layout vertical"
-            opened="[[shouldOpenCustomScheduleCollapse_]]">
-          <div class="settings-box continuation self-stretch">
-            <night-light-slider id="nightLightSlider" prefs="{{prefs}}">
-            </night-light-slider>
+      <iron-collapse id="nightLightCustomScheduleCollapse"
+           opened="[[shouldOpenCustomScheduleCollapse_]]">
+        <div class="settings-box indented continuation">
+          <div class="start text-area layout vertical">
+            <div class="settings-box continuation self-stretch">
+              <night-light-slider id="nightLightSlider" prefs="{{prefs}}">
+              </night-light-slider>
+            </div>
           </div>
-        </iron-collapse>
-      </div>
+        </div>
+      </iron-collapse>
     </div>
 
   </template>
diff --git a/chrome/browser/sync/chrome_sync_client.cc b/chrome/browser/sync/chrome_sync_client.cc
index d7732cc..69b6b96 100644
--- a/chrome/browser/sync/chrome_sync_client.cc
+++ b/chrome/browser/sync/chrome_sync_client.cc
@@ -437,12 +437,6 @@
     case syncer::APPS:
     case syncer::EXTENSIONS:
       return GetWeakPtrOrNull(ExtensionSyncService::Get(profile_));
-    // TODO(crbug.com/933874): Remove these two from here once the old
-    // controllers are deleted.
-    case syncer::APP_SETTINGS:
-    case syncer::EXTENSION_SETTINGS:
-      return extensions::settings_sync_util::GetSyncableService(profile_, type)
-          ->AsWeakPtr();
 #endif  // BUILDFLAG(ENABLE_EXTENSIONS)
 #if BUILDFLAG(ENABLE_APP_LIST)
     case syncer::APP_LIST:
diff --git a/chrome/browser/themes/theme_service.cc b/chrome/browser/themes/theme_service.cc
index d65388e2..3069497 100644
--- a/chrome/browser/themes/theme_service.cc
+++ b/chrome/browser/themes/theme_service.cc
@@ -546,12 +546,18 @@
 }
 
 void ThemeService::BuildFromColor(SkColor color) {
+  base::Optional<std::string> previous_theme_id;
+  if (UsingExtensionTheme())
+    previous_theme_id = GetThemeID();
+
   scoped_refptr<BrowserThemePack> pack(
       new BrowserThemePack(CustomThemeSupplier::ThemeType::AUTOGENERATED));
   BrowserThemePack::BuildFromColor(color, pack.get());
   SwapThemeSupplier(std::move(pack));
   if (theme_supplier_) {
     SetThemePrefsForColor(color);
+    if (previous_theme_id.has_value())
+      DisableExtension(previous_theme_id.value());
     NotifyThemeChanged();
   }
 }
@@ -997,31 +1003,24 @@
       FROM_HERE, base::BindOnce(&WritePackToDiskCallback,
                                 base::RetainedRef(pack), extension->path()));
   base::OnceClosure callback = ThemeService::GetRevertThemeCallback();
-  const std::string previous_theme_id = GetThemeID();
+  base::Optional<std::string> previous_theme_id;
+  if (UsingExtensionTheme())
+    previous_theme_id = GetThemeID();
+
   SwapThemeSupplier(std::move(pack));
   SetThemePrefsForExtension(extension);
   NotifyThemeChanged();
 
   // Same old theme, but the theme has changed (migrated) or auto-updated.
-  if (previous_theme_id == extension->id())
+  if (previous_theme_id.has_value() &&
+      previous_theme_id.value() == extension->id())
     return;
 
   base::RecordAction(UserMetricsAction("Themes_Installed"));
 
-  bool can_revert_theme = previous_theme_id == kDefaultThemeID;
-  if (previous_theme_id != kDefaultThemeID &&
-      service->GetInstalledExtension(previous_theme_id)) {
-    // Do not disable the previous theme if it is already uninstalled. Sending
-    // NOTIFICATION_BROWSER_THEME_CHANGED causes the previous theme to be
-    // uninstalled when the notification causes the remaining infobar to close
-    // and does not open any new infobars. See crbug.com/468280.
-
-    // Disable the old theme.
-    service->DisableExtension(previous_theme_id,
-                              extensions::disable_reason::DISABLE_USER_ACTION);
-
-    can_revert_theme = true;
-  }
+  bool can_revert_theme = true;
+  if (previous_theme_id.has_value())
+    can_revert_theme = DisableExtension(previous_theme_id.value());
 
   // Offer to revert to the old theme.
   if (can_revert_theme && !suppress_infobar && extension->is_theme()) {
@@ -1066,3 +1065,19 @@
   profile_->GetPrefs()->SetString(prefs::kCurrentThemeID,
                                   kAutogeneratedThemeID);
 }
+
+bool ThemeService::DisableExtension(const std::string& extension_id) {
+  extensions::ExtensionService* service =
+      extensions::ExtensionSystem::Get(profile_)->extension_service();
+
+  if (service && service->GetInstalledExtension(extension_id)) {
+    // Do not disable the previous theme if it is already uninstalled. Sending
+    // NOTIFICATION_BROWSER_THEME_CHANGED causes the previous theme to be
+    // uninstalled when the notification causes the remaining infobar to close
+    // and does not open any new infobars. See crbug.com/468280.
+    service->DisableExtension(extension_id,
+                              extensions::disable_reason::DISABLE_USER_ACTION);
+    return true;
+  }
+  return false;
+}
diff --git a/chrome/browser/themes/theme_service.h b/chrome/browser/themes/theme_service.h
index 6c79c72..13c0f863 100644
--- a/chrome/browser/themes/theme_service.h
+++ b/chrome/browser/themes/theme_service.h
@@ -303,6 +303,8 @@
   void SetThemePrefsForExtension(const extensions::Extension* extension);
   void SetThemePrefsForColor(SkColor color);
 
+  bool DisableExtension(const std::string& extension_id);
+
   ui::ResourceBundle& rb_;
   Profile* profile_;
 
diff --git a/chrome/browser/themes/theme_service_unittest.cc b/chrome/browser/themes/theme_service_unittest.cc
index 260a869..7e7a889b 100644
--- a/chrome/browser/themes/theme_service_unittest.cc
+++ b/chrome/browser/themes/theme_service_unittest.cc
@@ -508,4 +508,20 @@
   EXPECT_TRUE(path.empty());
 }
 
+TEST_F(ThemeServiceTest, BuildFromColor_DisableExtensionTest) {
+  ThemeService* theme_service =
+      ThemeServiceFactory::GetForProfile(profile_.get());
+  base::ScopedTempDir temp_dir1;
+  ASSERT_TRUE(temp_dir1.CreateUniqueTempDir());
+  const std::string& extension1_id =
+      LoadUnpackedMinimalThemeAt(temp_dir1.GetPath());
+  EXPECT_EQ(extension1_id, theme_service->GetThemeID());
+  EXPECT_TRUE(service_->IsExtensionEnabled(extension1_id));
+
+  // Setting autogenerated theme should disable previous theme.
+  theme_service->BuildFromColor(SkColorSetRGB(100, 100, 100));
+  EXPECT_TRUE(theme_service->UsingAutogenerated());
+  EXPECT_FALSE(service_->IsExtensionEnabled(extension1_id));
+}
+
 }  // namespace theme_service_internal
diff --git a/chrome/browser/ui/browser_live_tab_context.cc b/chrome/browser/ui/browser_live_tab_context.cc
index a19d07d..2734cb6 100644
--- a/chrome/browser/ui/browser_live_tab_context.cc
+++ b/chrome/browser/ui/browser_live_tab_context.cc
@@ -6,16 +6,19 @@
 
 #include <memory>
 
+#include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_commands.h"
 #include "chrome/browser/ui/browser_finder.h"
 #include "chrome/browser/ui/browser_tabrestore.h"
 #include "chrome/browser/ui/browser_window.h"
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
+#include "chrome/browser/web_applications/components/web_app_helpers.h"
 #include "components/sessions/content/content_live_tab.h"
 #include "components/sessions/content/content_platform_specific_tab_data.h"
 #include "content/public/browser/navigation_controller.h"
 #include "content/public/browser/session_storage_namespace.h"
+#include "extensions/browser/extension_registry.h"
 
 #if BUILDFLAG(ENABLE_SESSION_SERVICE)
 #include "chrome/browser/sessions/tab_loader.h"
@@ -25,6 +28,35 @@
 using content::SessionStorageNamespace;
 using content::WebContents;
 
+namespace {
+
+// |app_name| can could be for an app that has been uninstalled. In that
+// case we don't want to open an app window. Note that |app_name| is also used
+// for other types of windows like dev tools and we always want to open an
+// app window in those cases.
+bool ShouldCreateAppWindowForAppName(Profile* profile,
+                                     const std::string& app_name) {
+#if BUILDFLAG(ENABLE_EXTENSIONS)
+  if (app_name.empty())
+    return false;
+
+  // Only need to check that the app is installed if |app_name| is for an
+  // extension. (|app_name| could also be for a devtools windows.)
+  const std::string app_id = web_app::GetAppIdFromApplicationName(app_name);
+  if (app_id.empty())
+    return true;
+
+  const extensions::Extension* extension =
+      extensions::ExtensionRegistry::Get(profile)->GetInstalledExtension(
+          app_id);
+  return extension;
+#else
+  return !app_name.empty();
+#endif
+}
+
+}  // namespace
+
 void BrowserLiveTabContext::ShowBrowserWindow() {
   browser_->window()->Show();
 }
@@ -148,17 +180,18 @@
     ui::WindowShowState show_state,
     const std::string& workspace) {
   std::unique_ptr<Browser::CreateParams> create_params;
-  if (app_name.empty()) {
-    create_params = std::make_unique<Browser::CreateParams>(
-        Browser::CreateParams(profile, true));
-    create_params->initial_bounds = bounds;
-  } else {
+  if (ShouldCreateAppWindowForAppName(profile, app_name)) {
     // Only trusted app popup windows should ever be restored.
     create_params = std::make_unique<Browser::CreateParams>(
         Browser::CreateParams::CreateForApp(app_name, true /* trusted_source */,
                                             bounds, profile,
                                             true /* user_gesture */));
+  } else {
+    create_params = std::make_unique<Browser::CreateParams>(
+        Browser::CreateParams(profile, true));
+    create_params->initial_bounds = bounds;
   }
+
   create_params->initial_show_state = show_state;
   create_params->initial_workspace = workspace;
   Browser* browser = new Browser(*create_params.get());
diff --git a/chrome/browser/ui/extensions/hosted_app_browsertest.cc b/chrome/browser/ui/extensions/hosted_app_browsertest.cc
index 036c34c..1a8d194 100644
--- a/chrome/browser/ui/extensions/hosted_app_browsertest.cc
+++ b/chrome/browser/ui/extensions/hosted_app_browsertest.cc
@@ -1125,7 +1125,7 @@
   content::WebContentsAddedObserver new_contents_observer;
 
   sessions::TabRestoreService* service =
-      TabRestoreServiceFactory::GetForProfile(app_browser_->profile());
+      TabRestoreServiceFactory::GetForProfile(profile());
   service->RestoreMostRecentEntry(nullptr);
 
   content::WebContents* restored_web_contents =
@@ -1196,6 +1196,58 @@
   EXPECT_EQ(size, popup_browser->window()->GetContentsSize());
 }
 
+// Tests that app windows are correctly restored.
+IN_PROC_BROWSER_TEST_P(HostedAppPWAOnlyTest, RestoreAppWindow) {
+  ASSERT_TRUE(https_server()->Start());
+
+  InstallSecurePWA();
+  ASSERT_TRUE(app_browser_->is_app());
+  app_browser_->window()->Close();
+
+  content::WebContentsAddedObserver new_contents_observer;
+
+  sessions::TabRestoreService* service =
+      TabRestoreServiceFactory::GetForProfile(profile());
+  service->RestoreMostRecentEntry(nullptr);
+
+  content::WebContents* restored_web_contents =
+      new_contents_observer.GetWebContents();
+  Browser* restored_browser =
+      chrome::FindBrowserWithWebContents(restored_web_contents);
+
+  EXPECT_TRUE(restored_browser->is_app());
+}
+
+// Tests that app windows are restored in a tab if the app is uninstalled.
+IN_PROC_BROWSER_TEST_P(HostedAppPWAOnlyTest,
+                       RestoreAppWindowForUninstalledApp) {
+  ASSERT_TRUE(https_server()->Start());
+
+  InstallSecurePWA();
+  ASSERT_TRUE(app_browser_->is_app());
+  ASSERT_FALSE(app_browser_->is_type_tabbed());
+  app_browser_->window()->Close();
+
+  extensions::TestExtensionRegistryObserver test_observer(
+      extensions::ExtensionRegistry::Get(browser()->profile()), app_->id());
+  UninstallExtension(app_->id());
+  test_observer.WaitForExtensionUninstalled();
+
+  content::WebContentsAddedObserver new_contents_observer;
+
+  sessions::TabRestoreService* service =
+      TabRestoreServiceFactory::GetForProfile(profile());
+  service->RestoreMostRecentEntry(nullptr);
+
+  content::WebContents* restored_web_contents =
+      new_contents_observer.GetWebContents();
+  Browser* restored_browser =
+      chrome::FindBrowserWithWebContents(restored_web_contents);
+
+  EXPECT_FALSE(restored_browser->is_app());
+  EXPECT_TRUE(restored_browser->is_type_tabbed());
+}
+
 // Test navigating to an out of scope url on the same origin causes the url
 // to be shown to the user.
 IN_PROC_BROWSER_TEST_P(HostedAppPWAOnlyTest,
diff --git a/chrome/browser/ui/views/location_bar/custom_tab_bar_view.cc b/chrome/browser/ui/views/location_bar/custom_tab_bar_view.cc
index dec97cf..0d058a7 100644
--- a/chrome/browser/ui/views/location_bar/custom_tab_bar_view.cc
+++ b/chrome/browser/ui/views/location_bar/custom_tab_bar_view.cc
@@ -227,6 +227,12 @@
   if (!contents)
     return;
 
+  // If the toolbar should not be shown don't update the UI, as the toolbar may
+  // be animating out and it looks messy.
+  Browser* browser = chrome::FindBrowserWithWebContents(contents);
+  if (!browser->app_controller()->ShouldShowToolbar())
+    return;
+
   content::NavigationEntry* entry = contents->GetController().GetVisibleEntry();
   base::string16 title, location;
   if (entry) {
diff --git a/chrome/browser/ui/views/location_bar/custom_tab_bar_view_browsertest.cc b/chrome/browser/ui/views/location_bar/custom_tab_bar_view_browsertest.cc
index 28146b1..494116f 100644
--- a/chrome/browser/ui/views/location_bar/custom_tab_bar_view_browsertest.cc
+++ b/chrome/browser/ui/views/location_bar/custom_tab_bar_view_browsertest.cc
@@ -322,8 +322,10 @@
   ASSERT_TRUE(https_server()->Start());
 
   const GURL& app_url = https_server()->GetURL("app.com", "/ssl/google.html");
-  const GURL& navigate_to =
-      https_server()->GetURL("app.com", "/ssl/blank_page.html");
+
+  // This url is out of scope, because the CustomTabBar is not updated when it
+  // is not shown.
+  const GURL& navigate_to = https_server()->GetURL("app.com", "/simple.html");
 
   InstallPWA(app_url);
 
diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
index 2c898bb..c69edf9 100644
--- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
@@ -658,6 +658,8 @@
 void AddBluetoothStrings(content::WebUIDataSource* html_source) {
   static constexpr LocalizedString kLocalizedStrings[] = {
       {"bluetoothConnected", IDS_SETTINGS_BLUETOOTH_CONNECTED},
+      {"bluetoothConnectedWithBattery",
+       IDS_SETTINGS_BLUETOOTH_CONNECTED_WITH_BATTERY},
       {"bluetoothConnecting", IDS_SETTINGS_BLUETOOTH_CONNECTING},
       {"bluetoothDeviceListPaired", IDS_SETTINGS_BLUETOOTH_DEVICE_LIST_PAIRED},
       {"bluetoothDeviceListUnpaired",
diff --git a/chrome/browser/web_applications/components/app_registrar.h b/chrome/browser/web_applications/components/app_registrar.h
index dfca3cc..d9944bf 100644
--- a/chrome/browser/web_applications/components/app_registrar.h
+++ b/chrome/browser/web_applications/components/app_registrar.h
@@ -51,6 +51,9 @@
   // method.
   virtual GURL GetScopeUrlForApp(const AppId& app_id) const = 0;
 
+  // Returns the app id for which the |url| is in scope of, empty if none.
+  virtual AppId FindAppIdForUrl(const GURL& url) const = 0;
+
   void AddObserver(AppRegistrarObserver* observer);
   void RemoveObserver(const AppRegistrarObserver* observer);
 
diff --git a/chrome/browser/web_applications/components/externally_installed_web_app_prefs.cc b/chrome/browser/web_applications/components/externally_installed_web_app_prefs.cc
index a84b99d..a7b1aca 100644
--- a/chrome/browser/web_applications/components/externally_installed_web_app_prefs.cc
+++ b/chrome/browser/web_applications/components/externally_installed_web_app_prefs.cc
@@ -9,7 +9,6 @@
 #include <vector>
 
 #include "base/values.h"
-#include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/web_applications/components/app_registrar.h"
 #include "chrome/browser/web_applications/components/web_app_constants.h"
 #include "chrome/browser/web_applications/components/web_app_provider_base.h"
@@ -94,7 +93,6 @@
 }
 
 // static
-
 bool ExternallyInstalledWebAppPrefs::HasAppIdWithInstallSource(
     const PrefService* pref_service,
     const AppId& app_id,
@@ -108,16 +106,16 @@
 }
 
 // static
-std::vector<GURL> ExternallyInstalledWebAppPrefs::GetInstalledAppUrls(
-    Profile* profile,
+std::map<AppId, GURL> ExternallyInstalledWebAppPrefs::BuildAppIdsMap(
+    const PrefService* pref_service,
     InstallSource install_source) {
   const base::DictionaryValue* urls_to_dicts =
-      profile->GetPrefs()->GetDictionary(prefs::kWebAppsExtensionIDs);
+      pref_service->GetDictionary(prefs::kWebAppsExtensionIDs);
 
-  std::vector<GURL> installed_app_urls;
+  std::map<AppId, GURL> ids_to_urls;
 
   if (!urls_to_dicts) {
-    return installed_app_urls;
+    return ids_to_urls;
   }
 
   for (const auto& it : urls_to_dicts->DictItems()) {
@@ -138,16 +136,12 @@
       continue;
     }
 
-    auto* provider = web_app::WebAppProviderBase::GetProviderBase(profile);
-    DCHECK(provider);
-    if (!provider->registrar().IsInstalled(v->GetString())) {
-      continue;
-    }
-
-    installed_app_urls.emplace_back(it.first);
+    GURL url(it.first);
+    DCHECK(url.is_valid() && !url.is_empty());
+    ids_to_urls[v->GetString()] = url;
   }
 
-  return installed_app_urls;
+  return ids_to_urls;
 }
 
 ExternallyInstalledWebAppPrefs::ExternallyInstalledWebAppPrefs(
diff --git a/chrome/browser/web_applications/components/externally_installed_web_app_prefs.h b/chrome/browser/web_applications/components/externally_installed_web_app_prefs.h
index 8462b6b..53e7c4e1 100644
--- a/chrome/browser/web_applications/components/externally_installed_web_app_prefs.h
+++ b/chrome/browser/web_applications/components/externally_installed_web_app_prefs.h
@@ -5,16 +5,16 @@
 #ifndef CHROME_BROWSER_WEB_APPLICATIONS_COMPONENTS_EXTERNALLY_INSTALLED_WEB_APP_PREFS_H_
 #define CHROME_BROWSER_WEB_APPLICATIONS_COMPONENTS_EXTERNALLY_INSTALLED_WEB_APP_PREFS_H_
 
+#include <map>
 #include <string>
-#include <vector>
 
 #include "base/macros.h"
 #include "base/optional.h"
 #include "chrome/browser/web_applications/components/pending_app_manager.h"
+#include "chrome/browser/web_applications/components/web_app_helpers.h"
 
 class GURL;
 class PrefService;
-class Profile;
 
 namespace user_prefs {
 class PrefRegistrySyncable;
@@ -39,9 +39,10 @@
                                         const AppId& app_id,
                                         InstallSource install_source);
 
-  // Returns the URLs of the apps that were installed from |install_source|.
-  static std::vector<GURL> GetInstalledAppUrls(Profile* profile,
-                                               InstallSource install_source);
+  // Returns the URLs of the apps that have been installed from
+  // |install_source|. Will still return apps that have been uninstalled.
+  static std::map<AppId, GURL> BuildAppIdsMap(const PrefService* pref_service,
+                                              InstallSource install_source);
 
   explicit ExternallyInstalledWebAppPrefs(PrefService* pref_service);
 
diff --git a/chrome/browser/web_applications/components/web_app_shortcut_mac.mm b/chrome/browser/web_applications/components/web_app_shortcut_mac.mm
index 79f0cdf..31e6cdc 100644
--- a/chrome/browser/web_applications/components/web_app_shortcut_mac.mm
+++ b/chrome/browser/web_applications/components/web_app_shortcut_mac.mm
@@ -211,7 +211,7 @@
   return false;
 }
 
-bool AppShimsDisabledForTest() {
+bool AppShimCreationDisabledForTest() {
   // Disable app shims in tests because shims created in ~/Applications will not
   // be cleaned up.
   return base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kTestType);
@@ -630,7 +630,7 @@
 }
 
 bool AppShimLaunchDisabled() {
-  return AppShimsDisabledForTest() &&
+  return AppShimCreationDisabledForTest() &&
          !g_app_shims_allow_update_and_launch_in_tests;
 }
 
@@ -644,13 +644,13 @@
 
 base::FilePath WebAppShortcutCreator::GetApplicationsShortcutPath(
     bool avoid_conflicts) const {
+  if (g_app_shims_allow_update_and_launch_in_tests)
+    return app_data_dir_.Append(GetShortcutBasename());
+
   base::FilePath applications_dir = GetApplicationsDirname();
   if (applications_dir.empty())
     return base::FilePath();
 
-  if (g_app_shims_allow_update_and_launch_in_tests)
-    return app_data_dir_.Append(GetShortcutBasename());
-
   if (!avoid_conflicts)
     return applications_dir.Append(GetShortcutBasename());
 
@@ -871,30 +871,18 @@
       LOG(ERROR) << "Failed to localize " << applications_dir.value();
   }
 
-  // Get the list of paths to (re)create.
-  std::vector<base::FilePath> app_paths;
-  if (g_app_shims_allow_update_and_launch_in_tests) {
-    // Never look in ~/Applications or search the system for a bundle ID in a
-    // test since that relies on global system state and potentially cruft that
-    // may be leftover from prior/crashed test runs.
-    // TODO(tapted): Remove this check when tests that arrive here via setting
-    // |g_app_shims_allow_update_and_launch_in_tests| can properly mock out all
-    // the calls below.
-    app_paths.push_back(app_data_dir_.Append(GetShortcutBasename()));
-  } else {
-    // Update all copies located by bundle id (wherever it was moved or copied
-    // by the user).
-    app_paths = GetAppBundlesById();
+  // Get the list of paths to (re)create by bundle id (wherever it was moved
+  // or copied by the user).
+  std::vector<base::FilePath> app_paths = GetAppBundlesById();
 
-    // If that path does not exist, create a new entry in ~/Applications if
-    // requested.
-    if (app_paths.empty() && create_if_needed) {
-      app_paths.push_back(
-          GetApplicationsShortcutPath(true /* avoid_conflicts */));
-    }
-    if (app_paths.empty())
-      return false;
+  // If that path does not exist, create a new entry in ~/Applications if
+  // requested.
+  if (app_paths.empty() && create_if_needed) {
+    app_paths.push_back(
+        GetApplicationsShortcutPath(true /* avoid_conflicts */));
   }
+  if (app_paths.empty())
+    return false;
 
   CreateShortcutsAt(app_paths, updated_paths);
   return updated_paths->size() == app_paths.size();
@@ -1061,6 +1049,15 @@
   // Sort the matches by preference.
   base::FilePath default_path =
       GetApplicationsShortcutPath(false /* avoid_conflicts */);
+
+  // When testing, use only the default path.
+  if (g_app_shims_allow_update_and_launch_in_tests) {
+    paths.clear();
+    if (base::PathExists(default_path))
+      paths.push_back(default_path);
+    return paths;
+  }
+
   base::FilePath apps_dir = GetApplicationsDirname();
   auto compare = [default_path, apps_dir](const base::FilePath& a,
                                           const base::FilePath& b) {
@@ -1155,7 +1152,7 @@
                              const ShortcutInfo& shortcut_info) {
   base::ScopedBlockingCall scoped_blocking_call(FROM_HERE,
                                                 base::BlockingType::MAY_BLOCK);
-  if (AppShimsDisabledForTest())
+  if (AppShimCreationDisabledForTest())
     return true;
 
   WebAppShortcutCreator shortcut_creator(app_data_path, &shortcut_info);
@@ -1181,8 +1178,12 @@
   web_app::WebAppShortcutCreator shortcut_creator(app_data_path,
                                                   &shortcut_info);
   std::vector<base::FilePath> updated_shim_paths;
-  shortcut_creator.UpdateShortcuts(false /* create_if_needed */,
-                                   &updated_shim_paths);
+  bool create_if_needed = false;
+  // Tests use web_app::UpdateAllShortcuts to force shim creation (rather than
+  // relying on asynchronous creation at installation.
+  if (g_app_shims_allow_update_and_launch_in_tests)
+    create_if_needed = true;
+  shortcut_creator.UpdateShortcuts(create_if_needed, &updated_shim_paths);
 }
 
 void DeleteAllShortcutsForProfile(const base::FilePath& profile_path) {
diff --git a/chrome/browser/web_applications/components/web_app_tab_helper_base.cc b/chrome/browser/web_applications/components/web_app_tab_helper_base.cc
index a0e13bc..984911f 100644
--- a/chrome/browser/web_applications/components/web_app_tab_helper_base.cc
+++ b/chrome/browser/web_applications/components/web_app_tab_helper_base.cc
@@ -79,7 +79,7 @@
 
 void WebAppTabHelperBase::OnWebAppInstalled(const AppId& installed_app_id) {
   // Check if current web_contents url is in scope for the newly installed app.
-  const web_app::AppId app_id = FindAppIdInScopeOfUrl(web_contents()->GetURL());
+  AppId app_id = FindAppIdInScopeOfUrl(web_contents()->GetURL());
   if (app_id == installed_app_id)
     SetAppId(app_id);
 }
@@ -132,4 +132,11 @@
   provider->policy_manager()->ReinstallPlaceholderAppIfNecessary(url);
 }
 
+AppId WebAppTabHelperBase::FindAppIdInScopeOfUrl(const GURL& url) const {
+  auto* provider = web_app::WebAppProviderBase::GetProviderBase(
+      Profile::FromBrowserContext(web_contents()->GetBrowserContext()));
+  DCHECK(provider);
+  return provider->registrar().FindAppIdForUrl(url);
+}
+
 }  // namespace web_app
diff --git a/chrome/browser/web_applications/components/web_app_tab_helper_base.h b/chrome/browser/web_applications/components/web_app_tab_helper_base.h
index 2a0fcec..58411cf8 100644
--- a/chrome/browser/web_applications/components/web_app_tab_helper_base.h
+++ b/chrome/browser/web_applications/components/web_app_tab_helper_base.h
@@ -70,8 +70,6 @@
   virtual WebAppTabHelperBase* CloneForWebContents(
       content::WebContents* web_contents) const = 0;
 
-  virtual AppId FindAppIdInScopeOfUrl(const GURL& url) = 0;
-
   // Returns whether the associated web contents belongs to an app window.
   virtual bool IsInAppWindow() const = 0;
 
@@ -97,6 +95,8 @@
   // Triggers a reinstall of a placeholder app for |url|.
   void ReinstallPlaceholderAppIfNecessary(const GURL& url);
 
+  AppId FindAppIdInScopeOfUrl(const GURL& url) const;
+
   // WebApp associated with this tab. Empty string if no app associated.
   AppId app_id_;
 
diff --git a/chrome/browser/web_applications/extensions/BUILD.gn b/chrome/browser/web_applications/extensions/BUILD.gn
index a85433d..7d9856e 100644
--- a/chrome/browser/web_applications/extensions/BUILD.gn
+++ b/chrome/browser/web_applications/extensions/BUILD.gn
@@ -77,6 +77,7 @@
   testonly = true
 
   sources = [
+    "install_manager_bookmark_app_browsertest.cc",
     "pending_bookmark_app_manager_browsertest.cc",
     "web_app_audio_focus_browsertest.cc",
   ]
diff --git a/chrome/browser/web_applications/extensions/bookmark_app_registrar.cc b/chrome/browser/web_applications/extensions/bookmark_app_registrar.cc
index 4018b7f..e4f9bb1c 100644
--- a/chrome/browser/web_applications/extensions/bookmark_app_registrar.cc
+++ b/chrome/browser/web_applications/extensions/bookmark_app_registrar.cc
@@ -8,6 +8,7 @@
 
 #include "base/one_shot_event.h"
 #include "chrome/browser/extensions/convert_web_app.h"
+#include "chrome/browser/extensions/extension_util.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/web_applications/components/app_registrar_observer.h"
 #include "chrome/browser/web_applications/extensions/bookmark_app_util.h"
@@ -85,6 +86,15 @@
   return scope_url;
 }
 
+web_app::AppId BookmarkAppRegistrar::FindAppIdForUrl(const GURL& url) const {
+  const Extension* extension = util::GetInstalledPwaForUrl(profile(), url);
+
+  if (!extension)
+    extension = GetInstalledShortcutForUrl(profile(), url);
+
+  return extension ? extension->id() : web_app::AppId();
+}
+
 void BookmarkAppRegistrar::OnExtensionInstalled(
     content::BrowserContext* browser_context,
     const extensions::Extension* extension,
diff --git a/chrome/browser/web_applications/extensions/bookmark_app_registrar.h b/chrome/browser/web_applications/extensions/bookmark_app_registrar.h
index 39b2ded..38e3a29 100644
--- a/chrome/browser/web_applications/extensions/bookmark_app_registrar.h
+++ b/chrome/browser/web_applications/extensions/bookmark_app_registrar.h
@@ -23,7 +23,7 @@
   explicit BookmarkAppRegistrar(Profile* profile);
   ~BookmarkAppRegistrar() override;
 
-  // AppRegistrar
+  // AppRegistrar:
   void Init(base::OnceClosure callback) override;
   bool IsInstalled(const GURL& start_url) const override;
   bool IsInstalled(const web_app::AppId& app_id) const override;
@@ -31,6 +31,7 @@
       const web_app::AppId& app_id) const override;
   bool HasScopeUrl(const web_app::AppId& app_id) const override;
   GURL GetScopeUrlForApp(const web_app::AppId& app_id) const override;
+  web_app::AppId FindAppIdForUrl(const GURL& url) const override;
 
   // ExtensionRegistryObserver:
   void OnExtensionInstalled(content::BrowserContext* browser_context,
diff --git a/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.cc b/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.cc
index f880348..f8b7a6d7 100644
--- a/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.cc
+++ b/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.cc
@@ -40,21 +40,6 @@
   return new_tab_helper;
 }
 
-web_app::AppId BookmarkAppTabHelper::FindAppIdInScopeOfUrl(const GURL& url) {
-  content::BrowserContext* browser_context =
-      web_contents()->GetBrowserContext();
-
-  const Extension* extension =
-      util::GetInstalledPwaForUrl(browser_context, url);
-
-  if (!extension) {
-    // Check if there is a shortcut app for this |url|.
-    extension = GetInstalledShortcutForUrl(browser_context, url);
-  }
-
-  return extension ? extension->id() : web_app::AppId();
-}
-
 bool BookmarkAppTabHelper::IsInAppWindow() const {
   return util::IsWebContentsInAppWindow(web_contents());
 }
diff --git a/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.h b/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.h
index d0565df..c3ae0ac 100644
--- a/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.h
+++ b/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.h
@@ -31,7 +31,6 @@
   // WebAppTabHelperBase:
   web_app::WebAppTabHelperBase* CloneForWebContents(
       content::WebContents* web_contents) const override;
-  web_app::AppId FindAppIdInScopeOfUrl(const GURL& url) override;
   bool IsInAppWindow() const override;
   bool IsUserInstalled() const override;
   bool IsFromInstallButton() const override;
diff --git a/chrome/browser/web_applications/extensions/externally_installed_web_app_prefs_unittest.cc b/chrome/browser/web_applications/extensions/externally_installed_web_app_prefs_unittest.cc
index 5b92a83..d89a8fd4 100644
--- a/chrome/browser/web_applications/extensions/externally_installed_web_app_prefs_unittest.cc
+++ b/chrome/browser/web_applications/extensions/externally_installed_web_app_prefs_unittest.cc
@@ -56,11 +56,15 @@
     extensions::ExtensionRegistry::Get(profile())->RemoveEnabled(id);
   }
 
-  std::vector<GURL> GetInstalledAppUrls(InstallSource install_source) {
-    std::vector<GURL> vec = ExternallyInstalledWebAppPrefs::GetInstalledAppUrls(
-        profile(), install_source);
-    std::sort(vec.begin(), vec.end());
-    return vec;
+  std::vector<GURL> GetAppUrls(InstallSource install_source) {
+    std::vector<GURL> urls;
+    for (const auto& id_and_url :
+         ExternallyInstalledWebAppPrefs::BuildAppIdsMap(profile()->GetPrefs(),
+                                                        install_source)) {
+      urls.push_back(id_and_url.second);
+    }
+    std::sort(urls.begin(), urls.end());
+    return urls;
   }
 
  private:
@@ -93,12 +97,9 @@
   EXPECT_FALSE(ExternallyInstalledWebAppPrefs::HasAppId(prefs, id_c));
   EXPECT_FALSE(ExternallyInstalledWebAppPrefs::HasAppId(prefs, id_d));
 
-  EXPECT_EQ(std::vector<GURL>({}),
-            GetInstalledAppUrls(InstallSource::kInternal));
-  EXPECT_EQ(std::vector<GURL>({}),
-            GetInstalledAppUrls(InstallSource::kExternalDefault));
-  EXPECT_EQ(std::vector<GURL>({}),
-            GetInstalledAppUrls(InstallSource::kExternalPolicy));
+  EXPECT_EQ(std::vector<GURL>({}), GetAppUrls(InstallSource::kInternal));
+  EXPECT_EQ(std::vector<GURL>({}), GetAppUrls(InstallSource::kExternalDefault));
+  EXPECT_EQ(std::vector<GURL>({}), GetAppUrls(InstallSource::kExternalPolicy));
 
   // Add some entries.
 
@@ -116,12 +117,10 @@
   EXPECT_TRUE(ExternallyInstalledWebAppPrefs::HasAppId(prefs, id_c));
   EXPECT_FALSE(ExternallyInstalledWebAppPrefs::HasAppId(prefs, id_d));
 
-  EXPECT_EQ(std::vector<GURL>({url_b}),
-            GetInstalledAppUrls(InstallSource::kInternal));
+  EXPECT_EQ(std::vector<GURL>({url_b}), GetAppUrls(InstallSource::kInternal));
   EXPECT_EQ(std::vector<GURL>({url_a, url_c}),
-            GetInstalledAppUrls(InstallSource::kExternalDefault));
-  EXPECT_EQ(std::vector<GURL>({}),
-            GetInstalledAppUrls(InstallSource::kExternalPolicy));
+            GetAppUrls(InstallSource::kExternalDefault));
+  EXPECT_EQ(std::vector<GURL>({}), GetAppUrls(InstallSource::kExternalPolicy));
 
   // Overwrite an entry.
 
@@ -138,15 +137,13 @@
   EXPECT_FALSE(ExternallyInstalledWebAppPrefs::HasAppId(prefs, id_d));
 
   EXPECT_EQ(std::vector<GURL>({url_b, url_c}),
-            GetInstalledAppUrls(InstallSource::kInternal));
+            GetAppUrls(InstallSource::kInternal));
   EXPECT_EQ(std::vector<GURL>({url_a}),
-            GetInstalledAppUrls(InstallSource::kExternalDefault));
-  EXPECT_EQ(std::vector<GURL>({}),
-            GetInstalledAppUrls(InstallSource::kExternalPolicy));
+            GetAppUrls(InstallSource::kExternalDefault));
+  EXPECT_EQ(std::vector<GURL>({}), GetAppUrls(InstallSource::kExternalPolicy));
 
   // Uninstall an underlying extension. The ExternallyInstalledWebAppPrefs will
-  // still return positive for LookupAppId and HasAppId (as they ignore
-  // installed-ness), but GetInstalledAppUrls will skip over it.
+  // still return positive.
 
   SimulateUninstallApp(url_b);
 
@@ -160,12 +157,11 @@
   EXPECT_TRUE(ExternallyInstalledWebAppPrefs::HasAppId(prefs, id_c));
   EXPECT_FALSE(ExternallyInstalledWebAppPrefs::HasAppId(prefs, id_d));
 
-  EXPECT_EQ(std::vector<GURL>({url_c}),
-            GetInstalledAppUrls(InstallSource::kInternal));
+  EXPECT_EQ(std::vector<GURL>({url_b, url_c}),
+            GetAppUrls(InstallSource::kInternal));
   EXPECT_EQ(std::vector<GURL>({url_a}),
-            GetInstalledAppUrls(InstallSource::kExternalDefault));
-  EXPECT_EQ(std::vector<GURL>({}),
-            GetInstalledAppUrls(InstallSource::kExternalPolicy));
+            GetAppUrls(InstallSource::kExternalDefault));
+  EXPECT_EQ(std::vector<GURL>({}), GetAppUrls(InstallSource::kExternalPolicy));
 }
 
 }  // namespace web_app
diff --git a/chrome/browser/web_applications/extensions/install_manager_bookmark_app_browsertest.cc b/chrome/browser/web_applications/extensions/install_manager_bookmark_app_browsertest.cc
new file mode 100644
index 0000000..1969213
--- /dev/null
+++ b/chrome/browser/web_applications/extensions/install_manager_bookmark_app_browsertest.cc
@@ -0,0 +1,106 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/run_loop.h"
+#include "base/test/bind_test_util.h"
+#include "base/test/scoped_feature_list.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/browser_dialogs.h"
+#include "chrome/browser/ui/browser_finder.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
+#include "chrome/browser/ui/test/test_browser_dialog.h"
+#include "chrome/browser/ui/web_applications/web_app_dialog_utils.h"
+#include "chrome/browser/web_applications/components/install_manager.h"
+#include "chrome/browser/web_applications/components/web_app_constants.h"
+#include "chrome/common/chrome_features.h"
+#include "content/public/browser/web_contents.h"
+#include "extensions/browser/extension_registry.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace extensions {
+
+class InstallManagerBookmarkAppDialogTest : public DialogBrowserTest {
+ public:
+  InstallManagerBookmarkAppDialogTest() {
+    scoped_feature_list_.InitWithFeatures(
+        {features::kDesktopPWAsUnifiedInstall}, {});
+  }
+
+  // DialogBrowserTest:
+  void ShowUi(const std::string& test_suffix) override {
+    ASSERT_TRUE(embedded_test_server()->Start());
+
+    std::string page_path;
+    if (test_suffix == "FromInstallableSite")
+      page_path = "/banners/manifest_test_page.html";
+    else if (test_suffix == "FromNonInstallableSite")
+      page_path = "/favicon/page_with_favicon.html";
+    else
+      NOTREACHED();
+
+    AddTabAtIndex(1, GURL(embedded_test_server()->GetURL(page_path)),
+                  ui::PAGE_TRANSITION_LINK);
+
+    EXPECT_TRUE(web_app::CanCreateWebApp(browser()));
+
+    web_contents_ = browser()->tab_strip_model()->GetActiveWebContents();
+
+    base::RunLoop run_loop;
+
+    web_app::CreateWebAppFromCurrentWebContents(
+        browser(), /*force_shortcut_app=*/false,
+        base::BindLambdaForTesting(
+            [&](const web_app::AppId& app_id, web_app::InstallResultCode code) {
+              DCHECK_EQ(web_app::InstallResultCode::kSuccess, code);
+              installed_app_id_ = app_id;
+              run_loop.Quit();
+            }));
+
+    run_loop.Run();
+  }
+
+ protected:
+  content::WebContents* web_contents() const { return web_contents_; }
+  web_app::AppId installed_app_id() const { return installed_app_id_; }
+
+ private:
+  base::test::ScopedFeatureList scoped_feature_list_;
+  content::WebContents* web_contents_ = nullptr;
+  web_app::AppId installed_app_id_;
+
+  DISALLOW_COPY_AND_ASSIGN(InstallManagerBookmarkAppDialogTest);
+};
+
+IN_PROC_BROWSER_TEST_F(InstallManagerBookmarkAppDialogTest,
+                       CreateWindowedPWA_FromNonInstallableSite) {
+  // The chrome::ShowBookmarkAppDialog will be launched because
+  // page_with_favicon.html doesn't pass the PWA check.
+  chrome::SetAutoAcceptBookmarkAppDialogForTesting(true);
+  ShowAndVerifyUi();
+  chrome::SetAutoAcceptBookmarkAppDialogForTesting(false);
+}
+
+IN_PROC_BROWSER_TEST_F(InstallManagerBookmarkAppDialogTest,
+                       CreateWindowedPWA_FromInstallableSite) {
+  // The chrome::ShowPWAInstallDialog will be launched because
+  // manifest_test_page.html passes the PWA check.
+  chrome::SetAutoAcceptPWAInstallConfirmationForTesting(true);
+  ShowAndVerifyUi();
+  chrome::SetAutoAcceptPWAInstallConfirmationForTesting(false);
+
+  auto* registry = ExtensionRegistry::Get(browser()->profile());
+  const Extension* extension =
+      registry->enabled_extensions().GetByID(installed_app_id());
+  DCHECK(extension);
+
+  EXPECT_EQ("Manifest test app", extension->name());
+
+  // Ensure the tab is reparented into dedicated app window.
+  Browser* app_browser = chrome::FindBrowserWithWebContents(web_contents());
+  EXPECT_TRUE(app_browser->is_app());
+  EXPECT_NE(app_browser, browser());
+}
+
+}  // namespace extensions
diff --git a/chrome/browser/web_applications/extensions/pending_bookmark_app_manager.cc b/chrome/browser/web_applications/extensions/pending_bookmark_app_manager.cc
index e6080ff..a616157 100644
--- a/chrome/browser/web_applications/extensions/pending_bookmark_app_manager.cc
+++ b/chrome/browser/web_applications/extensions/pending_bookmark_app_manager.cc
@@ -109,8 +109,15 @@
 
 std::vector<GURL> PendingBookmarkAppManager::GetInstalledAppUrls(
     web_app::InstallSource install_source) const {
-  return web_app::ExternallyInstalledWebAppPrefs::GetInstalledAppUrls(
-      profile_, install_source);
+  std::vector<GURL> installed_apps;
+  for (const auto& id_and_url :
+       web_app::ExternallyInstalledWebAppPrefs::BuildAppIdsMap(
+           profile_->GetPrefs(), install_source)) {
+    if (registrar_->IsInstalled(id_and_url.second))
+      installed_apps.push_back(id_and_url.second);
+  }
+
+  return installed_apps;
 }
 
 base::Optional<web_app::AppId> PendingBookmarkAppManager::LookupAppId(
diff --git a/chrome/browser/web_applications/test/test_app_registrar.cc b/chrome/browser/web_applications/test/test_app_registrar.cc
index d1bbbb6..35f5903 100644
--- a/chrome/browser/web_applications/test/test_app_registrar.cc
+++ b/chrome/browser/web_applications/test/test_app_registrar.cc
@@ -54,4 +54,9 @@
   return GURL();
 }
 
+AppId TestAppRegistrar::FindAppIdForUrl(const GURL& url) const {
+  NOTIMPLEMENTED();
+  return AppId();
+}
+
 }  // namespace web_app
diff --git a/chrome/browser/web_applications/test/test_app_registrar.h b/chrome/browser/web_applications/test/test_app_registrar.h
index 49c0edd..dcd6036 100644
--- a/chrome/browser/web_applications/test/test_app_registrar.h
+++ b/chrome/browser/web_applications/test/test_app_registrar.h
@@ -33,6 +33,7 @@
   bool WasExternalAppUninstalledByUser(const AppId& app_id) const override;
   bool HasScopeUrl(const AppId& app_id) const override;
   GURL GetScopeUrlForApp(const AppId& app_id) const override;
+  AppId FindAppIdForUrl(const GURL& url) const override;
 
  private:
   std::set<AppId> installed_apps_;
diff --git a/chrome/browser/web_applications/web_app_registrar.cc b/chrome/browser/web_applications/web_app_registrar.cc
index 9c396e7..abd2bdeaa 100644
--- a/chrome/browser/web_applications/web_app_registrar.cc
+++ b/chrome/browser/web_applications/web_app_registrar.cc
@@ -100,4 +100,9 @@
   return GURL();
 }
 
+AppId WebAppRegistrar::FindAppIdForUrl(const GURL& url) const {
+  NOTIMPLEMENTED();
+  return AppId();
+}
+
 }  // namespace web_app
diff --git a/chrome/browser/web_applications/web_app_registrar.h b/chrome/browser/web_applications/web_app_registrar.h
index e928372..20b2956 100644
--- a/chrome/browser/web_applications/web_app_registrar.h
+++ b/chrome/browser/web_applications/web_app_registrar.h
@@ -35,13 +35,14 @@
   // Clears registry.
   void UnregisterAll();
 
-  // AppRegistrar
+  // AppRegistrar:
   void Init(base::OnceClosure callback) override;
   bool IsInstalled(const GURL& start_url) const override;
   bool IsInstalled(const AppId& app_id) const override;
   bool WasExternalAppUninstalledByUser(const AppId& app_id) const override;
   bool HasScopeUrl(const AppId& app_id) const override;
   GURL GetScopeUrlForApp(const AppId& app_id) const override;
+  AppId FindAppIdForUrl(const GURL& url) const override;
 
  private:
   void OnDatabaseOpened(base::OnceClosure callback, Registry registry);
diff --git a/chrome/browser/web_applications/web_app_tab_helper.cc b/chrome/browser/web_applications/web_app_tab_helper.cc
index 948f4c1..e321821 100644
--- a/chrome/browser/web_applications/web_app_tab_helper.cc
+++ b/chrome/browser/web_applications/web_app_tab_helper.cc
@@ -29,11 +29,6 @@
   return new_tab_helper;
 }
 
-AppId WebAppTabHelper::FindAppIdInScopeOfUrl(const GURL& url) {
-  // TODO(loyso): Implement it.
-  return AppId();
-}
-
 bool WebAppTabHelper::IsInAppWindow() const {
   // TODO(beccahughes): Implement.
   return false;
diff --git a/chrome/browser/web_applications/web_app_tab_helper.h b/chrome/browser/web_applications/web_app_tab_helper.h
index 3f8bd03..82f840e 100644
--- a/chrome/browser/web_applications/web_app_tab_helper.h
+++ b/chrome/browser/web_applications/web_app_tab_helper.h
@@ -29,7 +29,6 @@
   // WebAppTabHelperBase:
   WebAppTabHelperBase* CloneForWebContents(
       content::WebContents* web_contents) const override;
-  AppId FindAppIdInScopeOfUrl(const GURL& url) override;
   bool IsInAppWindow() const override;
   bool IsUserInstalled() const override;
   bool IsFromInstallButton() const override;
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
index dbbce4f..b32338b 100644
--- a/chrome/common/chrome_features.cc
+++ b/chrome/common/chrome_features.cc
@@ -618,7 +618,7 @@
 
 // Enables or disables the System Web App manager.
 const base::Feature kSystemWebApps{"SystemWebApps",
-                                   base::FEATURE_DISABLED_BY_DEFAULT};
+                                   base::FEATURE_ENABLED_BY_DEFAULT};
 
 // Enables or disables the App Management UI.
 const base::Feature kAppManagement{"AppManagement",
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index e7cea90..71faea0 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -590,7 +590,8 @@
       "HAS_OUT_OF_PROC_TEST_RUNNER",
       "CHROME_VERSION_MAJOR=" + chrome_version_major,
     ]
-
+    allow_circular_includes_from =
+        [ "//chrome/browser/web_applications/extensions:browser_tests" ]
     deps = [
       ":browser_tests_runner",
       ":policy_testserver_pyproto",
@@ -607,6 +608,7 @@
       "//chrome/browser/devtools:test_support",
       "//chrome/browser/profiling_host:profiling_browsertests",
       "//chrome/browser/web_applications:browser_tests",
+      "//chrome/browser/web_applications/extensions:browser_tests",
       "//chrome/renderer",
       "//chrome/services/removable_storage_writer:lib",
       "//components/autofill/content/browser:risk_proto",
@@ -2099,6 +2101,8 @@
         "../browser/chromeos/policy/power_policy_browsertest.cc",
         "../browser/chromeos/policy/restore_on_startup_browsertest_chromeos.cc",
         "../browser/chromeos/policy/signin_profile_extensions_policy_browsertest.cc",
+        "../browser/chromeos/policy/signin_profile_extensions_policy_test_base.cc",
+        "../browser/chromeos/policy/signin_profile_extensions_policy_test_base.h",
         "../browser/chromeos/policy/site_isolation_flag_handling_browsertest.cc",
         "../browser/chromeos/policy/status_collector/child_status_collector_browsertest.cc",
         "../browser/chromeos/policy/status_collector/device_status_collector_browsertest.cc",
diff --git a/chromeos/dbus/fake_smb_provider_client.cc b/chromeos/dbus/fake_smb_provider_client.cc
index d84de7a..0464f0c 100644
--- a/chromeos/dbus/fake_smb_provider_client.cc
+++ b/chromeos/dbus/fake_smb_provider_client.cc
@@ -48,11 +48,8 @@
 void FakeSmbProviderClient::Init(dbus::Bus* bus) {}
 
 void FakeSmbProviderClient::Mount(const base::FilePath& share_path,
-                                  bool ntlm_enabled,
-                                  const std::string& workgroup,
-                                  const std::string& username,
+                                  const MountOptions& options,
                                   base::ScopedFD password_fd,
-                                  bool skip_connect,
                                   MountCallback callback) {
   base::ThreadTaskRunnerHandle::Get()->PostTask(
       FROM_HERE, base::BindOnce(std::move(callback), smbprovider::ERROR_OK, 1));
diff --git a/chromeos/dbus/fake_smb_provider_client.h b/chromeos/dbus/fake_smb_provider_client.h
index c5985d6d..76d25741 100644
--- a/chromeos/dbus/fake_smb_provider_client.h
+++ b/chromeos/dbus/fake_smb_provider_client.h
@@ -31,11 +31,8 @@
 
   // SmbProviderClient override.
   void Mount(const base::FilePath& share_path,
-             bool ntlm_enabled,
-             const std::string& workgroup,
-             const std::string& username,
+             const MountOptions& options,
              base::ScopedFD password_fd,
-             bool skip_connect,
              MountCallback callback) override;
 
   void Unmount(int32_t mount_id, StatusCallback callback) override;
diff --git a/chromeos/dbus/smb_provider_client.cc b/chromeos/dbus/smb_provider_client.cc
index 5697b2a..8804a65 100644
--- a/chromeos/dbus/smb_provider_client.cc
+++ b/chromeos/dbus/smb_provider_client.cc
@@ -73,26 +73,23 @@
   ~SmbProviderClientImpl() override {}
 
   void Mount(const base::FilePath& share_path,
-             bool ntlm_enabled,
-             const std::string& workgroup,
-             const std::string& username,
+             const MountOptions& options,
              base::ScopedFD password_fd,
-             bool skip_connect,
              MountCallback callback) override {
-    smbprovider::MountOptionsProto options;
-    options.set_path(share_path.value());
-    options.set_workgroup(workgroup);
-    options.set_username(username);
-    options.set_skip_connect(skip_connect);
+    smbprovider::MountOptionsProto options_proto;
+    options_proto.set_path(share_path.value());
+    options_proto.set_workgroup(options.workgroup);
+    options_proto.set_username(options.username);
+    options_proto.set_skip_connect(options.skip_connect);
 
     std::unique_ptr<smbprovider::MountConfigProto> config =
-        CreateMountConfigProto(ntlm_enabled);
-    options.set_allocated_mount_config(config.release());
+        CreateMountConfigProto(options.ntlm_enabled);
+    options_proto.set_allocated_mount_config(config.release());
 
     dbus::MethodCall method_call(smbprovider::kSmbProviderInterface,
                                  smbprovider::kMountMethod);
     dbus::MessageWriter writer(&method_call);
-    writer.AppendProtoAsArrayOfBytes(options);
+    writer.AppendProtoAsArrayOfBytes(options_proto);
     writer.AppendFileDescriptor(password_fd.get());
     CallMethod(&method_call, &SmbProviderClientImpl::HandleMountCallback,
                &callback);
diff --git a/chromeos/dbus/smb_provider_client.h b/chromeos/dbus/smb_provider_client.h
index e465d1b7..a857789 100644
--- a/chromeos/dbus/smb_provider_client.h
+++ b/chromeos/dbus/smb_provider_client.h
@@ -54,6 +54,18 @@
       int32_t read_dir_token,
       const smbprovider::DirectoryEntryListProto& entries)>;
 
+  // Optional arguments to pass to Mount().
+  struct MountOptions {
+    std::string username;
+    std::string workgroup;
+
+    // Enable NTLM Authentication.
+    bool ntlm_enabled = false;
+
+    // Do no attempt to connect to and authenticate the mounted share.
+    bool skip_connect = false;
+  };
+
   ~SmbProviderClient() override;
 
   // Factory function, creates a new instance and returns ownership.
@@ -61,15 +73,12 @@
   static std::unique_ptr<SmbProviderClient> Create();
 
   // Calls Mount. It runs OpenDirectory() on |share_path| to check that it is a
-  // valid share. |workgroup|, |username|, and |password_fd| will be used as
-  // credentials to access the mount. |callback| is called after getting (or
-  // failing to get) D-BUS response.
+  // valid share. |options.workgroup|, |options.username|, and |password_fd|
+  // will be used as credentials to access the mount. |callback| is called after
+  // getting (or failing to get) D-BUS response.
   virtual void Mount(const base::FilePath& share_path,
-                     bool ntlm_enabled,
-                     const std::string& workgroup,
-                     const std::string& username,
+                     const MountOptions& options,
                      base::ScopedFD password_fd,
-                     bool skip_connect,
                      MountCallback callback) = 0;
 
   // Calls Unmount. This removes the corresponding mount of |mount_id| from
diff --git a/chromeos/services/secure_channel/ble_characteristics_finder.cc b/chromeos/services/secure_channel/ble_characteristics_finder.cc
index 4dbe2654..c4e2a8d 100644
--- a/chromeos/services/secure_channel/ble_characteristics_finder.cc
+++ b/chromeos/services/secure_channel/ble_characteristics_finder.cc
@@ -37,7 +37,8 @@
       success_callback_(success_callback),
       error_callback_(error_callback) {
   adapter_->AddObserver(this);
-  ScanRemoteCharacteristics(device, remote_service_.uuid);
+  if (device->IsGattServicesDiscoveryComplete())
+    ScanRemoteCharacteristics();
 }
 
 BluetoothLowEnergyCharacteristicsFinder::
@@ -50,96 +51,59 @@
   }
 }
 
-void BluetoothLowEnergyCharacteristicsFinder::GattCharacteristicAdded(
-    BluetoothAdapter* adapter,
-    BluetoothRemoteGattCharacteristic* characteristic) {
-  // Ignore events about other devices.
-  if (characteristic->GetService()->GetDevice() != bluetooth_device_)
-    return;
-  HandleCharacteristicUpdate(characteristic);
-}
-
-void BluetoothLowEnergyCharacteristicsFinder::GattDiscoveryCompleteForService(
-    BluetoothAdapter* adapter,
-    BluetoothRemoteGattService* service) {
-  if (!service || service->GetUUID() != remote_service_.uuid)
-    return;
-
-  OnCharacteristicDiscoveryEnded(service->GetDevice());
-}
-
 void BluetoothLowEnergyCharacteristicsFinder::GattServicesDiscovered(
     BluetoothAdapter* adapter,
     BluetoothDevice* device) {
-  OnCharacteristicDiscoveryEnded(device);
-}
-
-void BluetoothLowEnergyCharacteristicsFinder::OnCharacteristicDiscoveryEnded(
-    BluetoothDevice* device) {
   // Ignore events about other devices.
   if (device != bluetooth_device_)
     return;
+  PA_LOG(VERBOSE) << "All services discovered.";
 
-  if (!to_peripheral_char_.id.empty() && !from_peripheral_char_.id.empty())
+  ScanRemoteCharacteristics();
+}
+
+void BluetoothLowEnergyCharacteristicsFinder::ScanRemoteCharacteristics() {
+  for (const BluetoothRemoteGattService* service :
+       bluetooth_device_->GetGattServices()) {
+    if (service->GetUUID() != remote_service_.uuid)
+      continue;
+
+    std::vector<BluetoothRemoteGattCharacteristic*> tx_chars =
+        service->GetCharacteristicsByUUID(to_peripheral_char_.uuid);
+    std::vector<BluetoothRemoteGattCharacteristic*> rx_chars =
+        service->GetCharacteristicsByUUID(from_peripheral_char_.uuid);
+    if (tx_chars.empty()) {
+      PA_LOG(WARNING) << "Service missing TX char.";
+      continue;
+    }
+
+    if (rx_chars.empty()) {
+      PA_LOG(WARNING) << "Service missing RX char.";
+      continue;
+    }
+
+    NotifySuccess(service->GetIdentifier(), tx_chars.front()->GetIdentifier(),
+                  rx_chars.front()->GetIdentifier());
     return;
+  }
 
   if (has_error_callback_been_invoked_)
     return;
   // If all GATT services have been discovered and we haven't found the
   // characteristics we are looking for, call the error callback.
   has_error_callback_been_invoked_ = true;
-  error_callback_.Run(to_peripheral_char_, from_peripheral_char_);
+  error_callback_.Run();
 }
 
-void BluetoothLowEnergyCharacteristicsFinder::ScanRemoteCharacteristics(
-    BluetoothDevice* device,
-    const BluetoothUUID& service_uuid) {
-  if (!device)
-    return;
-
-  for (const auto* service : device->GetGattServices()) {
-    if (service->GetUUID() != service_uuid)
-      continue;
-
-    // Right service found, now scaning its characteristics.
-    std::vector<device::BluetoothRemoteGattCharacteristic*> characteristics =
-        service->GetCharacteristics();
-    for (auto* characteristic : characteristics) {
-      if (HandleCharacteristicUpdate(characteristic))
-        return;
-    }
-    break;
-  }
-}
-
-bool BluetoothLowEnergyCharacteristicsFinder::HandleCharacteristicUpdate(
-    BluetoothRemoteGattCharacteristic* characteristic) {
-  UpdateCharacteristicsStatus(characteristic);
-
-  if (to_peripheral_char_.id.empty() || from_peripheral_char_.id.empty())
-    return false;
-
+void BluetoothLowEnergyCharacteristicsFinder::NotifySuccess(
+    std::string service_id,
+    std::string tx_id,
+    std::string rx_id) {
+  from_peripheral_char_.id = rx_id;
+  to_peripheral_char_.id = tx_id;
+  remote_service_.id = service_id;
   success_callback_.Run(remote_service_, to_peripheral_char_,
                         from_peripheral_char_);
-  return true;
-}
-
-void BluetoothLowEnergyCharacteristicsFinder::UpdateCharacteristicsStatus(
-    BluetoothRemoteGattCharacteristic* characteristic) {
-  if (!characteristic ||
-      characteristic->GetService()->GetUUID() != remote_service_.uuid) {
-    return;
-  }
-
-  BluetoothUUID uuid = characteristic->GetUUID();
-  if (to_peripheral_char_.uuid == uuid)
-    to_peripheral_char_.id = characteristic->GetIdentifier();
-  if (from_peripheral_char_.uuid == uuid)
-    from_peripheral_char_.id = characteristic->GetIdentifier();
-
-  BluetoothRemoteGattService* service = characteristic->GetService();
-  if (service)
-    remote_service_.id = service->GetIdentifier();
 }
 
 }  // namespace secure_channel
diff --git a/chromeos/services/secure_channel/ble_characteristics_finder.h b/chromeos/services/secure_channel/ble_characteristics_finder.h
index cb55cfe..f784876 100644
--- a/chromeos/services/secure_channel/ble_characteristics_finder.h
+++ b/chromeos/services/secure_channel/ble_characteristics_finder.h
@@ -37,14 +37,9 @@
                               const RemoteAttribute&)>
       SuccessCallback;
 
-  // This callback takes as arguments (in this order): |to_peripheral_char_| and
-  // |from_peripheral_char_|. A blank id field in the characteristics indicate
-  // that the characteristics was not found in the remote service.
-  // TODO(sacomoto): Remove RemoteAttributes and add an error message instead.
-  // The caller of this object should not care if only a subset of the
-  // characteristics was found. See crbug.com/495511.
-  typedef base::Callback<void(const RemoteAttribute&, const RemoteAttribute&)>
-      ErrorCallback;
+  // Error callback indicating that no valid GATT service with all required
+  // characteristic was found on the |device_|.
+  typedef base::Callback<void()> ErrorCallback;
 
   // Constructs the object and registers itself as an observer for |adapter|,
   // waiting for |to_peripheral_char| and |from_peripheral_char| to be found.
@@ -65,37 +60,22 @@
 
  protected:
   // device::BluetoothAdapter::Observer:
-  void GattDiscoveryCompleteForService(
-      device::BluetoothAdapter* adapter,
-      device::BluetoothRemoteGattService* service) override;
   void GattServicesDiscovered(device::BluetoothAdapter* adapter,
                               device::BluetoothDevice* device) override;
-  void GattCharacteristicAdded(
-      device::BluetoothAdapter* adapter,
-      device::BluetoothRemoteGattCharacteristic* characteristic) override;
 
   // For testing. Used to mock this class.
   BluetoothLowEnergyCharacteristicsFinder();
 
  private:
-  // Handles the discovery of a new characteristic. Returns whether all
-  // characteristics were found.
-  bool HandleCharacteristicUpdate(
-      device::BluetoothRemoteGattCharacteristic* characteristic);
+  // Scans the remote chracteristics of the service with |remote_service_.uuid|
+  // in |device| and triggers the success or error callback.
+  void ScanRemoteCharacteristics();
 
-  // Ends the characteristic discovery and calls error callback if necessary.
-  void OnCharacteristicDiscoveryEnded(device::BluetoothDevice* device);
-
-  // Scans the remote chracteristics of the service with |uuid| in |device|
-  // calling HandleCharacteristicUpdate() for each of them.
-  void ScanRemoteCharacteristics(device::BluetoothDevice* device,
-                                 const device::BluetoothUUID& uuid);
-
-  // Updates the value of |to_peripheral_char_| and
-  // |from_peripheral_char_|
-  // when |characteristic| was found.
-  void UpdateCharacteristicsStatus(
-      device::BluetoothRemoteGattCharacteristic* characteristic);
+  // Sets proper identifiers on the service and characteristics and triggers the
+  // |success_callback_|.
+  void NotifySuccess(std::string service_id,
+                     std::string tx_id,
+                     std::string rx_id);
 
   // The Bluetooth adapter where the connection was established.
   scoped_refptr<device::BluetoothAdapter> adapter_;
diff --git a/chromeos/services/secure_channel/ble_characteristics_finder_unittest.cc b/chromeos/services/secure_channel/ble_characteristics_finder_unittest.cc
index 1b1c2c9..d71eea9 100644
--- a/chromeos/services/secure_channel/ble_characteristics_finder_unittest.cc
+++ b/chromeos/services/secure_channel/ble_characteristics_finder_unittest.cc
@@ -40,6 +40,8 @@
 const char kToPeripheralCharID[] = "to peripheral id";
 const char kFromPeripheralCharID[] = "from peripheral id";
 
+const char kServiceID[] = "service id";
+
 const device::BluetoothRemoteGattCharacteristic::Properties
     kCharacteristicProperties =
         device::BluetoothRemoteGattCharacteristic::PROPERTY_BROADCAST |
@@ -73,7 +75,7 @@
                                                           false)),
         service_(new NiceMock<device::MockBluetoothGattService>(
             device_.get(),
-            "",
+            kServiceID,
             device::BluetoothUUID(kServiceUUID),
             true,
             false)),
@@ -99,8 +101,7 @@
                void(const RemoteAttribute&,
                     const RemoteAttribute&,
                     const RemoteAttribute&));
-  MOCK_METHOD2(OnCharacteristicsFinderError,
-               void(const RemoteAttribute&, const RemoteAttribute&));
+  MOCK_METHOD0(OnCharacteristicsFinderError, void());
 
   std::unique_ptr<device::MockBluetoothGattCharacteristic>
   ExpectToFindCharacteristic(const device::BluetoothUUID& uuid,
@@ -119,6 +120,22 @@
     return characteristic;
   }
 
+  void SetUpServiceWithCharacteristics(
+      std::vector<device::BluetoothRemoteGattCharacteristic*> characteristics,
+      bool is_discovery_complete) {
+    std::vector<device::BluetoothRemoteGattService*> services{service_.get()};
+    ON_CALL(*device_, GetGattServices()).WillByDefault(Return(services));
+    ON_CALL(*device_, IsGattServicesDiscoveryComplete())
+        .WillByDefault(Return(is_discovery_complete));
+
+    for (auto* characteristic : characteristics) {
+      std::vector<device::BluetoothRemoteGattCharacteristic*> chars_for_uuid{
+          characteristic};
+      ON_CALL(*service_, GetCharacteristicsByUUID(characteristic->GetUUID()))
+          .WillByDefault(Return(chars_for_uuid));
+    }
+  }
+
   scoped_refptr<device::MockBluetoothAdapter> adapter_;
   BluetoothLowEnergyCharacteristicsFinder::SuccessCallback success_callback_;
   BluetoothLowEnergyCharacteristicsFinder::ErrorCallback error_callback_;
@@ -141,9 +158,8 @@
   BluetoothLowEnergyCharacteristicsFinder characteristic_finder(
       adapter_, device_.get(), remote_service_, to_peripheral_char_,
       from_peripheral_char_, success_callback_, error_callback_);
-  // Upcasting |characteristic_finder| to access the virtual protected methods
-  // from Observer: GattCharacteristicAdded() and
-  // GattDiscoveryCompleteForService().
+  // Upcasting |characteristic_finder| to access the virtual protected method
+  // from Observer: GattServicesDiscovered().
   device::BluetoothAdapter::Observer* observer =
       static_cast<device::BluetoothAdapter::Observer*>(&characteristic_finder);
 
@@ -151,24 +167,23 @@
   EXPECT_CALL(*this, OnCharacteristicsFound(_, _, _))
       .WillOnce(
           DoAll(SaveArg<1>(&found_to_char), SaveArg<2>(&found_from_char)));
-  EXPECT_CALL(*this, OnCharacteristicsFinderError(_, _)).Times(0);
+  EXPECT_CALL(*this, OnCharacteristicsFinderError()).Times(0);
 
   std::unique_ptr<device::MockBluetoothGattCharacteristic> from_char =
       ExpectToFindCharacteristic(device::BluetoothUUID(kFromPeripheralCharUUID),
                                  kFromPeripheralCharID, true);
-  observer->GattCharacteristicAdded(adapter_.get(), from_char.get());
-
   std::unique_ptr<device::MockBluetoothGattCharacteristic> to_char =
       ExpectToFindCharacteristic(device::BluetoothUUID(kToPeripheralCharUUID),
                                  kToPeripheralCharID, true);
-  observer->GattCharacteristicAdded(adapter_.get(), to_char.get());
+
+  std::vector<device::BluetoothRemoteGattCharacteristic*> characteristics{
+      from_char.get(), to_char.get()};
+  SetUpServiceWithCharacteristics(characteristics, false);
+
+  observer->GattServicesDiscovered(adapter_.get(), device_.get());
 
   EXPECT_EQ(kToPeripheralCharID, found_to_char.id);
   EXPECT_EQ(kFromPeripheralCharID, found_from_char.id);
-
-  EXPECT_CALL(*service_, GetUUID())
-      .WillOnce(Return(device::BluetoothUUID(kServiceUUID)));
-  observer->GattDiscoveryCompleteForService(adapter_.get(), service_.get());
 }
 
 // Tests that CharacteristicFinder ignores events for other devices.
@@ -181,9 +196,6 @@
   BluetoothLowEnergyCharacteristicsFinder characteristic_finder(
       adapter_, device.get(), remote_service_, to_peripheral_char_,
       from_peripheral_char_, success_callback_, error_callback_);
-  // Upcasting |characteristic_finder| to access the virtual protected methods
-  // from Observer: GattCharacteristicAdded() and
-  // GattDiscoveryCompleteForService().
   device::BluetoothAdapter::Observer* observer =
       static_cast<device::BluetoothAdapter::Observer*>(&characteristic_finder);
 
@@ -191,21 +203,20 @@
   // These shouldn't be called at all since the GATT events below are for other
   // devices.
   EXPECT_CALL(*this, OnCharacteristicsFound(_, _, _)).Times(0);
-  EXPECT_CALL(*this, OnCharacteristicsFinderError(_, _)).Times(0);
+  EXPECT_CALL(*this, OnCharacteristicsFinderError()).Times(0);
 
   std::unique_ptr<device::MockBluetoothGattCharacteristic> from_char =
       ExpectToFindCharacteristic(device::BluetoothUUID(kFromPeripheralCharUUID),
                                  kFromPeripheralCharID, true);
-  observer->GattCharacteristicAdded(adapter_.get(), from_char.get());
-
   std::unique_ptr<device::MockBluetoothGattCharacteristic> to_char =
       ExpectToFindCharacteristic(device::BluetoothUUID(kToPeripheralCharUUID),
                                  kToPeripheralCharID, true);
-  observer->GattCharacteristicAdded(adapter_.get(), to_char.get());
 
-  EXPECT_CALL(*service_, GetUUID())
-      .WillOnce(Return(device::BluetoothUUID(kServiceUUID)));
-  observer->GattDiscoveryCompleteForService(adapter_.get(), service_.get());
+  std::vector<device::BluetoothRemoteGattCharacteristic*> characteristics{
+      from_char.get(), to_char.get()};
+  SetUpServiceWithCharacteristics(characteristics, false);
+
+  observer->GattServicesDiscovered(adapter_.get(), device_.get());
 }
 
 TEST_F(SecureChannelBluetoothLowEnergyCharacteristicFinderTest,
@@ -217,16 +228,16 @@
       static_cast<device::BluetoothAdapter::Observer*>(&characteristic_finder);
 
   EXPECT_CALL(*this, OnCharacteristicsFound(_, _, _)).Times(0);
-  EXPECT_CALL(*this, OnCharacteristicsFinderError(_, _));
+  EXPECT_CALL(*this, OnCharacteristicsFinderError());
 
   std::unique_ptr<device::MockBluetoothGattCharacteristic> other_char =
       ExpectToFindCharacteristic(device::BluetoothUUID(kOtherCharUUID),
                                  kOtherCharID, false);
-  observer->GattCharacteristicAdded(adapter_.get(), other_char.get());
+  std::vector<device::BluetoothRemoteGattCharacteristic*> characteristics{
+      other_char.get()};
+  SetUpServiceWithCharacteristics(characteristics, false);
 
-  EXPECT_CALL(*service_, GetUUID())
-      .WillOnce(Return(device::BluetoothUUID(kServiceUUID)));
-  observer->GattDiscoveryCompleteForService(adapter_.get(), service_.get());
+  observer->GattServicesDiscovered(adapter_.get(), device_.get());
 }
 
 TEST_F(SecureChannelBluetoothLowEnergyCharacteristicFinderTest,
@@ -238,16 +249,8 @@
       static_cast<device::BluetoothAdapter::Observer*>(&characteristic_finder);
 
   EXPECT_CALL(*this, OnCharacteristicsFound(_, _, _)).Times(0);
-  EXPECT_CALL(*this, OnCharacteristicsFinderError(_, _));
+  EXPECT_CALL(*this, OnCharacteristicsFinderError());
 
-  std::unique_ptr<device::MockBluetoothGattCharacteristic> other_char =
-      ExpectToFindCharacteristic(device::BluetoothUUID(kOtherCharUUID),
-                                 kOtherCharID, false);
-  observer->GattCharacteristicAdded(adapter_.get(), other_char.get());
-
-  // GattServicesDiscovered event is fired but the service that contains the
-  // characteristics has not been found. OnCharacteristicsFinderError is
-  // expected to be called.
   observer->GattServicesDiscovered(adapter_.get(), device_.get());
 }
 
@@ -259,21 +262,17 @@
   device::BluetoothAdapter::Observer* observer =
       static_cast<device::BluetoothAdapter::Observer*>(&characteristic_finder);
 
-  RemoteAttribute found_to_char, found_from_char;
   EXPECT_CALL(*this, OnCharacteristicsFound(_, _, _)).Times(0);
-  EXPECT_CALL(*this, OnCharacteristicsFinderError(_, _))
-      .WillOnce(
-          DoAll(SaveArg<0>(&found_to_char), SaveArg<1>(&found_from_char)));
+  EXPECT_CALL(*this, OnCharacteristicsFinderError());
 
   std::unique_ptr<device::MockBluetoothGattCharacteristic> from_char =
       ExpectToFindCharacteristic(device::BluetoothUUID(kFromPeripheralCharUUID),
                                  kFromPeripheralCharID, true);
-  observer->GattCharacteristicAdded(adapter_.get(), from_char.get());
+  std::vector<device::BluetoothRemoteGattCharacteristic*> characteristics{
+      from_char.get()};
+  SetUpServiceWithCharacteristics(characteristics, true);
 
-  EXPECT_CALL(*service_, GetUUID())
-      .WillOnce(Return(device::BluetoothUUID(kServiceUUID)));
-  observer->GattDiscoveryCompleteForService(adapter_.get(), service_.get());
-  EXPECT_EQ(kFromPeripheralCharID, found_from_char.id);
+  observer->GattServicesDiscovered(adapter_.get(), device_.get());
 }
 
 TEST_F(SecureChannelBluetoothLowEnergyCharacteristicFinderTest,
@@ -288,29 +287,25 @@
   EXPECT_CALL(*this, OnCharacteristicsFound(_, _, _))
       .WillOnce(
           DoAll(SaveArg<1>(&found_to_char), SaveArg<2>(&found_from_char)));
-  EXPECT_CALL(*this, OnCharacteristicsFinderError(_, _)).Times(0);
+  EXPECT_CALL(*this, OnCharacteristicsFinderError()).Times(0);
 
   std::unique_ptr<device::MockBluetoothGattCharacteristic> other_char =
       ExpectToFindCharacteristic(device::BluetoothUUID(kOtherCharUUID),
                                  kOtherCharID, false);
-  observer->GattCharacteristicAdded(adapter_.get(), other_char.get());
-
   std::unique_ptr<device::MockBluetoothGattCharacteristic> from_char =
       ExpectToFindCharacteristic(device::BluetoothUUID(kFromPeripheralCharUUID),
                                  kFromPeripheralCharID, true);
-  observer->GattCharacteristicAdded(adapter_.get(), from_char.get());
-
   std::unique_ptr<device::MockBluetoothGattCharacteristic> to_char =
       ExpectToFindCharacteristic(device::BluetoothUUID(kToPeripheralCharUUID),
                                  kToPeripheralCharID, true);
-  observer->GattCharacteristicAdded(adapter_.get(), to_char.get());
+  std::vector<device::BluetoothRemoteGattCharacteristic*> characteristics{
+      other_char.get(), from_char.get(), to_char.get()};
+  SetUpServiceWithCharacteristics(characteristics, false);
+
+  observer->GattServicesDiscovered(adapter_.get(), device_.get());
 
   EXPECT_EQ(kToPeripheralCharID, found_to_char.id);
   EXPECT_EQ(kFromPeripheralCharID, found_from_char.id);
-
-  EXPECT_CALL(*service_, GetUUID())
-      .WillOnce(Return(device::BluetoothUUID(kServiceUUID)));
-  observer->GattDiscoveryCompleteForService(adapter_.get(), service_.get());
 }
 
 TEST_F(SecureChannelBluetoothLowEnergyCharacteristicFinderTest,
@@ -319,7 +314,7 @@
   EXPECT_CALL(*this, OnCharacteristicsFound(_, _, _))
       .WillOnce(
           DoAll(SaveArg<1>(&found_to_char), SaveArg<2>(&found_from_char)));
-  EXPECT_CALL(*this, OnCharacteristicsFinderError(_, _)).Times(0);
+  EXPECT_CALL(*this, OnCharacteristicsFinderError()).Times(0);
 
   std::unique_ptr<device::MockBluetoothGattCharacteristic> from_char =
       ExpectToFindCharacteristic(device::BluetoothUUID(kFromPeripheralCharUUID),
@@ -329,28 +324,16 @@
       ExpectToFindCharacteristic(device::BluetoothUUID(kToPeripheralCharUUID),
                                  kToPeripheralCharID, true);
 
-  std::vector<device::BluetoothRemoteGattService*> services;
-  services.push_back(service_.get());
-  ON_CALL(*device_, GetGattServices()).WillByDefault(Return(services));
-
-  std::vector<device::BluetoothRemoteGattCharacteristic*> characteristics;
-  characteristics.push_back(from_char.get());
-  characteristics.push_back(to_char.get());
-  ON_CALL(*service_, GetCharacteristics())
-      .WillByDefault(Return(characteristics));
+  std::vector<device::BluetoothRemoteGattCharacteristic*> characteristics{
+      from_char.get(), to_char.get()};
+  SetUpServiceWithCharacteristics(characteristics, true);
 
   BluetoothLowEnergyCharacteristicsFinder characteristic_finder(
       adapter_, device_.get(), remote_service_, to_peripheral_char_,
       from_peripheral_char_, success_callback_, error_callback_);
-  device::BluetoothAdapter::Observer* observer =
-      static_cast<device::BluetoothAdapter::Observer*>(&characteristic_finder);
 
   EXPECT_EQ(kToPeripheralCharID, found_to_char.id);
   EXPECT_EQ(kFromPeripheralCharID, found_from_char.id);
-
-  EXPECT_CALL(*service_, GetUUID())
-      .WillOnce(Return(device::BluetoothUUID(kServiceUUID)));
-  observer->GattDiscoveryCompleteForService(adapter_.get(), service_.get());
 }
 
 }  // namespace secure_channel
diff --git a/chromeos/services/secure_channel/ble_weave_client_connection.cc b/chromeos/services/secure_channel/ble_weave_client_connection.cc
index c11da0e..2acfe57 100644
--- a/chromeos/services/secure_channel/ble_weave_client_connection.cc
+++ b/chromeos/services/secure_channel/ble_weave_client_connection.cc
@@ -579,22 +579,11 @@
   StartNotifySession();
 }
 
-void BluetoothLowEnergyWeaveClientConnection::OnCharacteristicsFinderError(
-    const RemoteAttribute& tx_characteristic,
-    const RemoteAttribute& rx_characteristic) {
+void BluetoothLowEnergyWeaveClientConnection::OnCharacteristicsFinderError() {
   DCHECK(sub_status() == SubStatus::WAITING_CHARACTERISTICS);
 
-  std::stringstream ss;
-  ss << "Could not find GATT characteristics for " << GetDeviceInfoLogString()
-     << ": ";
-  if (tx_characteristic.id.empty()) {
-    ss << "[TX: " << tx_characteristic.uuid.canonical_value() << "]";
-    if (rx_characteristic.id.empty())
-      ss << ", ";
-  }
-  if (rx_characteristic.id.empty())
-    ss << "[RX: " << rx_characteristic.uuid.canonical_value() << "]";
-  PA_LOG(ERROR) << ss.str();
+  PA_LOG(ERROR) << "Could not find GATT characteristics for "
+                << GetDeviceInfoLogString();
 
   characteristic_finder_.reset();
 
diff --git a/chromeos/services/secure_channel/ble_weave_client_connection.h b/chromeos/services/secure_channel/ble_weave_client_connection.h
index 1f6be89..236dbec 100644
--- a/chromeos/services/secure_channel/ble_weave_client_connection.h
+++ b/chromeos/services/secure_channel/ble_weave_client_connection.h
@@ -351,8 +351,7 @@
   void OnCharacteristicsFound(const RemoteAttribute& service,
                               const RemoteAttribute& tx_characteristic,
                               const RemoteAttribute& rx_characteristic);
-  void OnCharacteristicsFinderError(const RemoteAttribute& tx_characteristic,
-                                    const RemoteAttribute& rx_characteristic);
+  void OnCharacteristicsFinderError();
   void StartNotifySession();
   void OnNotifySessionStarted(
       std::unique_ptr<device::BluetoothGattNotifySession> notify_session);
diff --git a/chromeos/services/secure_channel/ble_weave_client_connection_unittest.cc b/chromeos/services/secure_channel/ble_weave_client_connection_unittest.cc
index b9d54b5..8c7b608 100644
--- a/chromeos/services/secure_channel/ble_weave_client_connection_unittest.cc
+++ b/chromeos/services/secure_channel/ble_weave_client_connection_unittest.cc
@@ -872,9 +872,7 @@
   EXPECT_FALSE(characteristics_finder_success_callback_.is_null());
   ASSERT_FALSE(characteristics_finder_error_callback_.is_null());
 
-  characteristics_finder_error_callback_.Run(
-      {tx_characteristic_uuid_, kTXCharacteristicID},
-      {rx_characteristic_uuid_, kRXCharacteristicID});
+  characteristics_finder_error_callback_.Run();
 
   EXPECT_EQ(connection->sub_status(), SubStatus::DISCONNECTED);
   EXPECT_EQ(connection->status(), Connection::Status::DISCONNECTED);
diff --git a/components/exo/test/exo_test_base.cc b/components/exo/test/exo_test_base.cc
index 2c8b89f..035d956 100644
--- a/components/exo/test/exo_test_base.cc
+++ b/components/exo/test/exo_test_base.cc
@@ -25,7 +25,6 @@
 ExoTestBase::~ExoTestBase() {}
 
 void ExoTestBase::SetUp() {
-  ui::SetUpInputMethodFactoryForTesting();
   AshTestBase::SetUp();
   wm_helper_ = std::make_unique<WMHelperChromeOS>();
   WMHelper::SetInstance(wm_helper_.get());
diff --git a/components/exo/text_input_unittest.cc b/components/exo/text_input_unittest.cc
index f46e0ac..f357f38 100644
--- a/components/exo/text_input_unittest.cc
+++ b/components/exo/text_input_unittest.cc
@@ -4,6 +4,7 @@
 
 #include "components/exo/text_input.h"
 
+#include <memory>
 #include <string>
 
 #include "base/strings/utf_string_conversions.h"
@@ -48,7 +49,7 @@
 
 class TestingInputMethodObserver : public ui::InputMethodObserver {
  public:
-  TestingInputMethodObserver(ui::InputMethod* input_method)
+  explicit TestingInputMethodObserver(ui::InputMethod* input_method)
       : input_method_(input_method) {
     input_method_->AddObserver(this);
   }
@@ -169,6 +170,7 @@
   EXPECT_CALL(*delegate(), OnVirtualKeyboardVisibilityChanged(true)).Times(1);
   text_input()->ShowVirtualKeyboardIfEnabled();
 
+  EXPECT_CALL(observer, OnTextInputStateChanged(nullptr)).Times(1);
   EXPECT_CALL(*delegate(), Deactivated).Times(1);
   text_input()->Deactivate();
 }
diff --git a/components/metrics/call_stack_profile_builder.cc b/components/metrics/call_stack_profile_builder.cc
index cb833909..b35165d 100644
--- a/components/metrics/call_stack_profile_builder.cc
+++ b/components/metrics/call_stack_profile_builder.cc
@@ -17,6 +17,7 @@
 #include "base/metrics/metrics_hashes.h"
 #include "base/no_destructor.h"
 #include "base/stl_util.h"
+#include "build/build_config.h"
 #include "components/metrics/call_stack_profile_encoding.h"
 
 namespace metrics {
@@ -250,8 +251,12 @@
 void CallStackProfileBuilder::PassProfilesToMetricsProvider(
     SampledProfile sampled_profile) {
   if (sampled_profile.process() == BROWSER_PROCESS) {
+    // TODO(crbug.com/973430): Remove the check once profile reporting on
+    // Android is sorted out.
+#if !defined(OS_ANDROID)
     GetBrowserProcessReceiverCallbackInstance().Run(profile_start_time_,
                                                     std::move(sampled_profile));
+#endif
   } else {
     g_child_call_stack_profile_collector.Get()
         .ChildCallStackProfileCollector::Collect(profile_start_time_,
diff --git a/components/signin/core/browser/account_fetcher_service.cc b/components/signin/core/browser/account_fetcher_service.cc
index 050d117..bb1b64d 100644
--- a/components/signin/core/browser/account_fetcher_service.cc
+++ b/components/signin/core/browser/account_fetcher_service.cc
@@ -109,7 +109,7 @@
 }
 
 void AccountFetcherService::ForceRefreshOfAccountInfo(
-    const std::string& account_id) {
+    const CoreAccountId& account_id) {
   DCHECK(network_fetches_enabled_);
   RefreshAccountInfo(account_id, false);
 }
@@ -208,7 +208,7 @@
 
 // Starts fetching user information. This is called periodically to refresh.
 void AccountFetcherService::StartFetchingUserInfo(
-    const std::string& account_id) {
+    const CoreAccountId& account_id) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK(network_fetches_enabled_);
 
@@ -228,7 +228,7 @@
 #if defined(OS_ANDROID)
 // Starts fetching whether this is a child account. Handles refresh internally.
 void AccountFetcherService::StartFetchingChildInfo(
-    const std::string& account_id) {
+    const CoreAccountId& account_id) {
   child_info_request_ =
       ChildAccountInfoFetcherAndroid::Create(this, child_request_account_id_);
 }
@@ -236,18 +236,18 @@
 void AccountFetcherService::ResetChildInfo() {
   if (!child_request_account_id_.empty())
     SetIsChildAccount(child_request_account_id_, false);
-  child_request_account_id_.clear();
+  child_request_account_id_ = CoreAccountId();
   child_info_request_.reset();
 }
 
-void AccountFetcherService::SetIsChildAccount(const std::string& account_id,
+void AccountFetcherService::SetIsChildAccount(const CoreAccountId& account_id,
                                               bool is_child_account) {
   if (child_request_account_id_ == account_id)
     account_tracker_service_->SetIsChildAccount(account_id, is_child_account);
 }
 #endif
 
-void AccountFetcherService::RefreshAccountInfo(const std::string& account_id,
+void AccountFetcherService::RefreshAccountInfo(const CoreAccountId& account_id,
                                                bool only_fetch_if_invalid) {
   DCHECK(network_fetches_enabled_);
   account_tracker_service_->StartTrackingAccount(account_id);
@@ -268,7 +268,7 @@
 }
 
 void AccountFetcherService::OnUserInfoFetchSuccess(
-    const std::string& account_id,
+    const CoreAccountId& account_id,
     std::unique_ptr<base::DictionaryValue> user_info) {
   account_tracker_service_->SetAccountInfoFromUserInfo(account_id,
                                                        user_info.get());
@@ -287,7 +287,7 @@
   return image_fetcher_.get();
 }
 
-void AccountFetcherService::FetchAccountImage(const std::string& account_id) {
+void AccountFetcherService::FetchAccountImage(const CoreAccountId& account_id) {
   DCHECK(signin_client_);
   std::string picture_url_string =
       account_tracker_service_->GetAccountInfo(account_id).picture_url;
@@ -329,7 +329,7 @@
 }
 
 void AccountFetcherService::OnUserInfoFetchFailure(
-    const std::string& account_id) {
+    const CoreAccountId& account_id) {
   LOG(WARNING) << "Failed to get UserInfo for " << account_id;
   user_info_requests_.erase(account_id);
 }
@@ -383,8 +383,8 @@
 }
 
 void AccountFetcherService::OnImageFetched(
-    const std::string& id,
+    const CoreAccountId& account_id,
     const gfx::Image& image,
     const image_fetcher::RequestMetadata&) {
-  account_tracker_service_->SetAccountImage(id, image);
+  account_tracker_service_->SetAccountImage(account_id, image);
 }
diff --git a/components/signin/core/browser/account_fetcher_service.h b/components/signin/core/browser/account_fetcher_service.h
index 047b19f..801a67f 100644
--- a/components/signin/core/browser/account_fetcher_service.h
+++ b/components/signin/core/browser/account_fetcher_service.h
@@ -65,7 +65,7 @@
   // there are still unfininshed fetchers.
   virtual bool IsAllUserInfoFetched() const;
 
-  void ForceRefreshOfAccountInfo(const std::string& account_id);
+  void ForceRefreshOfAccountInfo(const CoreAccountId& account_id);
 
   AccountTrackerService* account_tracker_service() const {
     return account_tracker_service_;
@@ -88,7 +88,8 @@
 
 #if defined(OS_ANDROID)
   // Called by ChildAccountInfoFetcherAndroid.
-  void SetIsChildAccount(const std::string& account_id, bool is_child_account);
+  void SetIsChildAccount(const CoreAccountId& account_id,
+                         bool is_child_account);
 #endif
 
   // OAuth2TokenServiceObserver implementation.
@@ -114,9 +115,9 @@
   // Virtual so that tests can override the network fetching behaviour.
   // Further the two fetches are managed by a different refresh logic and
   // thus, can not be combined.
-  void StartFetchingUserInfo(const std::string& account_id);
+  void StartFetchingUserInfo(const CoreAccountId& account_id);
 #if defined(OS_ANDROID)
-  void StartFetchingChildInfo(const std::string& account_id);
+  void StartFetchingChildInfo(const CoreAccountId& account_id);
 
   // If there is more than one account in a profile, we forcibly reset the
   // child status for an account to be false.
@@ -124,20 +125,20 @@
 #endif
 
   // Refreshes the AccountInfo associated with |account_id|.
-  void RefreshAccountInfo(const std::string& account_id,
+  void RefreshAccountInfo(const CoreAccountId& account_id,
                           bool only_fetch_if_invalid);
 
   // Called by AccountInfoFetcher.
-  void OnUserInfoFetchSuccess(const std::string& account_id,
+  void OnUserInfoFetchSuccess(const CoreAccountId& account_id,
                               std::unique_ptr<base::DictionaryValue> user_info);
-  void OnUserInfoFetchFailure(const std::string& account_id);
+  void OnUserInfoFetchFailure(const CoreAccountId& account_id);
 
   image_fetcher::ImageFetcherImpl* GetOrCreateImageFetcher();
 
   // Called in |OnUserInfoFetchSuccess| after the account info has been fetched.
-  void FetchAccountImage(const std::string& account_id);
+  void FetchAccountImage(const CoreAccountId& account_id);
 
-  void OnImageFetched(const std::string& id,
+  void OnImageFetched(const CoreAccountId& account_id,
                       const gfx::Image& image,
                       const image_fetcher::RequestMetadata& image_metadata);
 
@@ -153,12 +154,12 @@
   base::OneShotTimer timer_;
 
 #if defined(OS_ANDROID)
-  std::string child_request_account_id_;
+  CoreAccountId child_request_account_id_;
   std::unique_ptr<ChildAccountInfoFetcherAndroid> child_info_request_;
 #endif
 
   // Holds references to account info fetchers keyed by account_id.
-  std::unordered_map<std::string, std::unique_ptr<AccountInfoFetcher>>
+  std::unordered_map<CoreAccountId, std::unique_ptr<AccountInfoFetcher>>
       user_info_requests_;
 
   // Used for fetching the account images.
diff --git a/components/signin/core/browser/account_info_fetcher.cc b/components/signin/core/browser/account_info_fetcher.cc
index fee88e9..66f144b0 100644
--- a/components/signin/core/browser/account_info_fetcher.cc
+++ b/components/signin/core/browser/account_info_fetcher.cc
@@ -15,14 +15,14 @@
     OAuth2TokenService* token_service,
     scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
     AccountFetcherService* service,
-    const std::string& account_id)
+    const CoreAccountId& account_id)
     : OAuth2TokenService::Consumer("gaia_account_tracker"),
       token_service_(token_service),
       url_loader_factory_(std::move(url_loader_factory)),
       service_(service),
       account_id_(account_id) {
   TRACE_EVENT_ASYNC_BEGIN1("AccountFetcherService", "AccountIdFetcher", this,
-                           "account_id", account_id);
+                           "account_id", account_id.id);
 }
 
 AccountInfoFetcher::~AccountInfoFetcher() {
@@ -65,7 +65,7 @@
     std::unique_ptr<base::DictionaryValue> user_info) {
   TRACE_EVENT_ASYNC_STEP_PAST1("AccountFetcherService", "AccountIdFetcher",
                                this, "OnGetUserInfoResponse", "account_id",
-                               account_id_);
+                               account_id_.id);
   service_->OnUserInfoFetchSuccess(account_id_, std::move(user_info));
 }
 
diff --git a/components/signin/core/browser/account_info_fetcher.h b/components/signin/core/browser/account_info_fetcher.h
index 27cec56b..58762d8 100644
--- a/components/signin/core/browser/account_info_fetcher.h
+++ b/components/signin/core/browser/account_info_fetcher.h
@@ -29,10 +29,10 @@
       OAuth2TokenService* token_service,
       scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
       AccountFetcherService* service,
-      const std::string& account_id);
+      const CoreAccountId& account_id);
   ~AccountInfoFetcher() override;
 
-  const std::string& account_id() { return account_id_; }
+  const CoreAccountId& account_id() { return account_id_; }
 
   // Start fetching the account information.
   void Start();
@@ -54,7 +54,7 @@
   OAuth2TokenService* token_service_;
   scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_;
   AccountFetcherService* service_;
-  const std::string account_id_;
+  const CoreAccountId account_id_;
 
   std::unique_ptr<OAuth2TokenService::Request> login_token_request_;
   std::unique_ptr<gaia::GaiaOAuthClient> gaia_oauth_client_;
diff --git a/components/signin/core/browser/child_account_info_fetcher_android.cc b/components/signin/core/browser/child_account_info_fetcher_android.cc
index 85c6304d..02ad3d0 100644
--- a/components/signin/core/browser/child_account_info_fetcher_android.cc
+++ b/components/signin/core/browser/child_account_info_fetcher_android.cc
@@ -18,7 +18,7 @@
 // static
 std::unique_ptr<ChildAccountInfoFetcherAndroid>
 ChildAccountInfoFetcherAndroid::Create(AccountFetcherService* service,
-                                       const std::string& account_id) {
+                                       const CoreAccountId& account_id) {
   std::string account_name =
       service->account_tracker_service()->GetAccountInfo(account_id).email;
   // The AccountTrackerService may not be populated correctly in tests.
@@ -38,12 +38,12 @@
 
 ChildAccountInfoFetcherAndroid::ChildAccountInfoFetcherAndroid(
     AccountFetcherService* service,
-    const std::string& account_id,
+    const CoreAccountId& account_id,
     const std::string& account_name) {
   JNIEnv* env = base::android::AttachCurrentThread();
   j_child_account_info_fetcher_.Reset(Java_ChildAccountInfoFetcher_create(
       env, reinterpret_cast<jlong>(service),
-      base::android::ConvertUTF8ToJavaString(env, account_id),
+      base::android::ConvertUTF8ToJavaString(env, account_id.id),
       base::android::ConvertUTF8ToJavaString(env, account_name)));
 }
 
@@ -60,6 +60,6 @@
   AccountFetcherService* service =
       reinterpret_cast<AccountFetcherService*>(native_service);
   service->SetIsChildAccount(
-      base::android::ConvertJavaStringToUTF8(env, j_account_id),
+      CoreAccountId(base::android::ConvertJavaStringToUTF8(env, j_account_id)),
       is_child_account);
 }
diff --git a/components/signin/core/browser/child_account_info_fetcher_android.h b/components/signin/core/browser/child_account_info_fetcher_android.h
index 1007fe5..97cc47b6 100644
--- a/components/signin/core/browser/child_account_info_fetcher_android.h
+++ b/components/signin/core/browser/child_account_info_fetcher_android.h
@@ -9,6 +9,7 @@
 #include <string>
 
 #include "base/android/scoped_java_ref.h"
+#include "google_apis/gaia/core_account_id.h"
 
 class AccountFetcherService;
 
@@ -16,14 +17,14 @@
  public:
   static std::unique_ptr<ChildAccountInfoFetcherAndroid> Create(
       AccountFetcherService* service,
-      const std::string& account_id);
+      const CoreAccountId& account_id);
   ~ChildAccountInfoFetcherAndroid();
 
   static void InitializeForTests();
 
  private:
   ChildAccountInfoFetcherAndroid(AccountFetcherService* service,
-                                 const std::string& account_id,
+                                 const CoreAccountId& account_id,
                                  const std::string& account_name);
 
   base::android::ScopedJavaGlobalRef<jobject> j_child_account_info_fetcher_;
diff --git a/components/sync/driver/sync_service.h b/components/sync/driver/sync_service.h
index d069124..c9eadcc 100644
--- a/components/sync/driver/sync_service.h
+++ b/components/sync/driver/sync_service.h
@@ -126,13 +126,11 @@
     DISABLE_REASON_ENTERPRISE_POLICY = 1 << 1,
     // Sync can't start because there is no authenticated user.
     DISABLE_REASON_NOT_SIGNED_IN = 1 << 2,
-    // Sync is suppressed by user choice, either via platform-level toggle (e.g.
-    // Android's "ChromeSync" toggle), a “Reset Sync” operation from the
-    // dashboard on desktop/ChromeOS.
-    // NOTE: Other code paths that go through RequestStop also set this reason
-    // (e.g. disabling due to sign-out or policy), so it's only really
-    // meaningful when it's the *only* disable reason.
-    // TODO(crbug.com/839834): Only set this reason when it's meaningful.
+    // Sync is suppressed by user choice, either via the feature toggle in
+    // Chrome settings (which exists on Android and iOS), a platform-level
+    // toggle (e.g. Android's "ChromeSync" toggle), or a “Reset Sync” operation
+    // from the dashboard. This is also set if there's simply no signed-in user
+    // (in addition to DISABLE_REASON_NOT_SIGNED_IN).
     DISABLE_REASON_USER_CHOICE = 1 << 3,
     // Sync has encountered an unrecoverable error. It won't attempt to start
     // again until either the browser is restarted, or the user fully signs out
diff --git a/components/sync_bookmarks/bookmark_remote_updates_handler.cc b/components/sync_bookmarks/bookmark_remote_updates_handler.cc
index c768faf..29fac16 100644
--- a/components/sync_bookmarks/bookmark_remote_updates_handler.cc
+++ b/components/sync_bookmarks/bookmark_remote_updates_handler.cc
@@ -11,6 +11,7 @@
 #include <unordered_set>
 #include <utility>
 
+#include "base/metrics/histogram_functions.h"
 #include "base/metrics/histogram_macros.h"
 #include "base/strings/string_piece.h"
 #include "components/bookmarks/browser/bookmark_model.h"
@@ -24,6 +25,36 @@
 
 namespace {
 
+// Used in metrics: "Sync.ProblematicServerSideBookmarks". These values are
+// persisted to logs. Entries should not be renumbered and numeric values
+// should never be reused.
+enum class RemoteBookmarkUpdateError {
+  // Remote and local bookmarks types don't match (URL vs. Folder).
+  kConflictingTypes = 0,
+  // Invalid specifics.
+  kInvalidSpecifics = 1,
+  // Invalid unique position.
+  kInvalidUniquePosition = 2,
+  // Permanent node creation in an incremental update.
+  kPermanentNodeCreationAfterMerge = 3,
+  // Parent entity not found in server.
+  kMissingParentEntity = 4,
+  // Parent node not found locally.
+  kMissingParentNode = 5,
+  // Parent entity not found in server when processing a conflict.
+  kMissingParentEntityInConflict = 6,
+  // Parent Parent node not found locally when processing a conflict.
+  kMissingParentNodeInConflict = 7,
+  // Failed to create a bookmark.
+  kCreationFailure = 8,
+
+  kMaxValue = kCreationFailure,
+};
+
+void LogProblematicBookmark(RemoteBookmarkUpdateError problem) {
+  base::UmaHistogramEnumeration("Sync.ProblematicServerSideBookmarks", problem);
+}
+
 // Recursive method to traverse a forest created by ReorderUpdates() to to
 // emit updates in top-down order. |ordered_updates| must not be null because
 // traversed updates are appended to |*ordered_updates|.
@@ -93,6 +124,7 @@
                 << (update_entity.is_folder ? "folder" : "bookmark")
                 << " while local node is a "
                 << (node->is_folder() ? "folder" : "bookmark");
+    LogProblematicBookmark(RemoteBookmarkUpdateError::kConflictingTypes);
     return;
   }
   UpdateBookmarkNodeFromSpecifics(update_entity.specifics.bookmark(), node,
@@ -150,6 +182,7 @@
         // Ignore updates with invalid specifics.
         DLOG(ERROR)
             << "Couldn't process an update bookmark with an invalid specifics.";
+        LogProblematicBookmark(RemoteBookmarkUpdateError::kInvalidSpecifics);
         continue;
       }
       if (!syncer::UniquePosition::FromProto(update_entity.unique_position)
@@ -157,6 +190,8 @@
         // Ignore updates with invalid unique position.
         DLOG(ERROR) << "Couldn't process an update bookmark with an invalid "
                        "unique position.";
+        LogProblematicBookmark(
+            RemoteBookmarkUpdateError::kInvalidUniquePosition);
         continue;
       }
     }
@@ -357,6 +392,8 @@
   if (!update_entity.server_defined_unique_tag.empty()) {
     DLOG(ERROR)
         << "Permanent nodes should have been merged during intial sync.";
+    LogProblematicBookmark(
+        RemoteBookmarkUpdateError::kPermanentNodeCreationAfterMerge);
     return false;
   }
 
@@ -369,6 +406,7 @@
     DLOG(ERROR) << "Could not find parent of node being added."
                 << " Node title: " << update_entity.specifics.bookmark().title()
                 << ", parent id = " << update_entity.parent_id;
+    LogProblematicBookmark(RemoteBookmarkUpdateError::kMissingParentNode);
     return false;
   }
   const bookmarks::BookmarkNode* bookmark_node =
@@ -382,6 +420,7 @@
     DLOG(ERROR) << "Failed to create bookmark node with title "
                 << update_entity.specifics.bookmark().title() << " and url "
                 << update_entity.specifics.bookmark().url();
+    LogProblematicBookmark(RemoteBookmarkUpdateError::kCreationFailure);
     return false;
   }
   bookmark_tracker_->Add(update_entity.id, bookmark_node,
@@ -414,6 +453,7 @@
   if (!new_parent_entity) {
     DLOG(ERROR) << "Could not update node. Parent node doesn't exist: "
                 << update_entity.parent_id;
+    LogProblematicBookmark(RemoteBookmarkUpdateError::kMissingParentEntity);
     return;
   }
   const bookmarks::BookmarkNode* new_parent =
@@ -421,6 +461,7 @@
   if (!new_parent) {
     DLOG(ERROR)
         << "Could not update node. Parent node has been deleted already.";
+    LogProblematicBookmark(RemoteBookmarkUpdateError::kMissingParentNode);
     return;
   }
   // Node update could be either in the node data (e.g. title or
@@ -528,6 +569,8 @@
   if (!new_parent_entity) {
     DLOG(ERROR) << "Could not update node. Parent node doesn't exist: "
                 << update_entity.parent_id;
+    LogProblematicBookmark(
+        RemoteBookmarkUpdateError::kMissingParentEntityInConflict);
     return;
   }
   const bookmarks::BookmarkNode* new_parent =
@@ -539,6 +582,8 @@
   if (!new_parent) {
     DLOG(ERROR)
         << "Could not update node. Parent node has been deleted already.";
+    LogProblematicBookmark(
+        RemoteBookmarkUpdateError::kMissingParentNodeInConflict);
     return;
   }
   // Either local and remote data match or server wins, and in both cases we
diff --git a/components/variations/net/variations_http_headers.cc b/components/variations/net/variations_http_headers.cc
index 0a0ca46..eeed186 100644
--- a/components/variations/net/variations_http_headers.cc
+++ b/components/variations/net/variations_http_headers.cc
@@ -157,14 +157,6 @@
       .AppendHeaderIfNeeded(url, incognito);
 }
 
-bool AppendVariationsHeader(const GURL& url,
-                            InIncognito incognito,
-                            SignedIn signed_in,
-                            net::URLRequest* request) {
-  return VariationsHeaderHelper(request, signed_in)
-      .AppendHeaderIfNeeded(url, incognito);
-}
-
 bool AppendVariationsHeaderWithCustomValue(const GURL& url,
                                            InIncognito incognito,
                                            const std::string& variations_header,
@@ -179,12 +171,6 @@
   return VariationsHeaderHelper(request).AppendHeaderIfNeeded(url, incognito);
 }
 
-bool AppendVariationsHeaderUnknownSignedIn(const GURL& url,
-                                           InIncognito incognito,
-                                           net::URLRequest* request) {
-  return VariationsHeaderHelper(request).AppendHeaderIfNeeded(url, incognito);
-}
-
 void RemoveVariationsHeaderIfNeeded(
     const net::RedirectInfo& redirect_info,
     const network::ResourceResponseHead& response_head,
@@ -193,12 +179,6 @@
     to_be_removed_headers->push_back(kClientDataHeader);
 }
 
-void StripVariationsHeaderIfNeeded(const GURL& new_location,
-                                   net::URLRequest* request) {
-  if (!ShouldAppendVariationsHeader(new_location))
-    request->RemoveRequestHeaderByName(kClientDataHeader);
-}
-
 std::unique_ptr<network::SimpleURLLoader>
 CreateSimpleURLLoaderWithVariationsHeader(
     std::unique_ptr<network::ResourceRequest> request,
diff --git a/components/variations/net/variations_http_headers.h b/components/variations/net/variations_http_headers.h
index a18c6ed..b414549 100644
--- a/components/variations/net/variations_http_headers.h
+++ b/components/variations/net/variations_http_headers.h
@@ -15,7 +15,6 @@
 namespace net {
 struct NetworkTrafficAnnotationTag;
 struct RedirectInfo;
-class URLRequest;
 }
 
 namespace network {
@@ -45,16 +44,8 @@
                             SignedIn signed_in,
                             network::ResourceRequest* request);
 
-// TODO(toyoshim): Remove this deprecated API that takes net::URLRequest* once
-// all callers are removed after NetworkService being fully enabled, or migrated
-// to use SimpleURLLoader. See, crbug.com/773295.
-bool AppendVariationsHeader(const GURL& url,
-                            InIncognito incognito,
-                            SignedIn signed_in,
-                            net::URLRequest* request);
-
-// Similar to functions above, but uses specified |variations_header| as the
-// custom header value. You should not generally need to use this.
+// Similar to AppendVariationsHeader, but uses specified |variations_header| as
+// the custom header value. You should not generally need to use this.
 bool AppendVariationsHeaderWithCustomValue(const GURL& url,
                                            InIncognito incognito,
                                            const std::string& variations_header,
@@ -66,13 +57,6 @@
                                            InIncognito incognito,
                                            network::ResourceRequest* request);
 
-// TODO(toyoshim): Remove this deprecated API that takes net::URLRequest* once
-// all callers are removed after NetworkService being fully enabled, or migrated
-// to use SimpleURLLoader. See, crbug.com/773295.
-bool AppendVariationsHeaderUnknownSignedIn(const GURL& url,
-                                           InIncognito incognito,
-                                           net::URLRequest* request);
-
 // Removes the variations header for requests when a redirect to a non-Google
 // URL occurs.
 void RemoveVariationsHeaderIfNeeded(
@@ -80,12 +64,6 @@
     const network::ResourceResponseHead& response_head,
     std::vector<std::string>* to_be_removed_headers);
 
-// Strips the variations header if |new_location| does not point to a location
-// that should receive it. This is being called by the ChromeNetworkDelegate.
-// Components calling AppendVariationsHeader() don't need to take care of this.
-void StripVariationsHeaderIfNeeded(const GURL& new_location,
-                                   net::URLRequest* request);
-
 // Creates a SimpleURLLoader that will include the variations header for
 // requests to Google and ensures they're removed if a redirect to a non-Google
 // URL occurs.
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
index 5f594e65..da8cd31 100644
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -1545,8 +1545,6 @@
     "renderer_host/input_event_shim.h",
     "renderer_host/legacy_render_widget_host_win.cc",
     "renderer_host/legacy_render_widget_host_win.h",
-    "renderer_host/media/aec_dump_manager_impl.cc",
-    "renderer_host/media/aec_dump_manager_impl.h",
     "renderer_host/media/audio_input_delegate_impl.cc",
     "renderer_host/media/audio_input_delegate_impl.h",
     "renderer_host/media/audio_input_device_manager.cc",
diff --git a/content/browser/accessibility/accessibility_ipc_error_browsertest.cc b/content/browser/accessibility/accessibility_ipc_error_browsertest.cc
index e0ca338..918af5b 100644
--- a/content/browser/accessibility/accessibility_ipc_error_browsertest.cc
+++ b/content/browser/accessibility/accessibility_ipc_error_browsertest.cc
@@ -41,7 +41,7 @@
 
 // Flaky on all platforms. http://crbug.com/973946
 IN_PROC_BROWSER_TEST_F(AccessibilityIpcErrorBrowserTest,
-                       DISABLE_ResetBrowserAccessibilityManager) {
+                       DISABLED_ResetBrowserAccessibilityManager) {
   // Create a data url and load it.
   const char url_str[] =
       "data:text/html,"
diff --git a/content/browser/renderer_host/media/aec_dump_manager_impl.cc b/content/browser/renderer_host/media/aec_dump_manager_impl.cc
deleted file mode 100644
index 67a5489..0000000
--- a/content/browser/renderer_host/media/aec_dump_manager_impl.cc
+++ /dev/null
@@ -1,106 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "content/browser/renderer_host/media/aec_dump_manager_impl.h"
-
-#include "base/files/file.h"
-#include "base/strings/string_number_conversions.h"
-#include "base/task/post_task.h"
-#include "content/browser/webrtc/webrtc_internals.h"
-#include "content/public/browser/render_process_host.h"
-#include "mojo/public/cpp/base/file_mojom_traits.h"
-
-namespace content {
-namespace {
-
-constexpr char kAecDumpFileNameAddition[] = "aec_dump";
-
-base::File CreateDumpFile(const base::FilePath& file_path) {
-  return base::File(file_path,
-                    base::File::FLAG_OPEN_ALWAYS | base::File::FLAG_APPEND);
-}
-
-}  // namespace
-
-AecDumpManagerImpl::AecDumpManagerImpl() = default;
-
-AecDumpManagerImpl::~AecDumpManagerImpl() = default;
-
-void AecDumpManagerImpl::AddRequest(
-    mojo::InterfaceRequest<mojom::AecDumpManager> request) {
-  receiver_set_.Add(this, std::move(request));
-}
-
-void AecDumpManagerImpl::AutoStart(base::ProcessId pid) {
-  WebRTCInternals* webrtc_internals = WebRTCInternals::GetInstance();
-  if (webrtc_internals->IsAudioDebugRecordingsEnabled())
-    Start(pid, webrtc_internals->GetAudioDebugRecordingsFilePath());
-}
-
-void AecDumpManagerImpl::Start(base::ProcessId pid,
-                               const base::FilePath& file_path) {
-  base::FilePath file_path_extended =
-      file_path.AddExtensionASCII(base::NumberToString(pid))
-          .AddExtensionASCII(kAecDumpFileNameAddition);
-
-  for (auto& it : agents_)
-    CreateFileAndStartDump(file_path_extended, it.first);
-}
-
-void AecDumpManagerImpl::Stop() {
-  for (auto& it : agents_)
-    it.second->Stop();
-}
-
-void AecDumpManagerImpl::Add(mojo::PendingRemote<mojom::AecDumpAgent> agent) {
-  int id = ++id_counter_;
-
-  agents_.emplace(std::make_pair(id, std::move(agent)));
-
-  agents_[id].set_disconnect_handler(
-      base::BindOnce(&AecDumpManagerImpl::OnAgentDisconnected,
-                     weak_factory_.GetWeakPtr(), id));
-
-  WebRTCInternals* webrtc_internals = WebRTCInternals::GetInstance();
-  if (webrtc_internals->IsAudioDebugRecordingsEnabled()) {
-    CreateFileAndStartDump(webrtc_internals->GetAudioDebugRecordingsFilePath(),
-                           id);
-  }
-}
-
-void AecDumpManagerImpl::CreateFileAndStartDump(const base::FilePath& file_path,
-                                                int id) {
-  base::PostTaskAndReplyWithResult(
-      FROM_HERE,
-      {base::MayBlock(), base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN,
-       base::TaskPriority::USER_BLOCKING},
-      base::BindOnce(&CreateDumpFile,
-                     file_path.AddExtensionASCII(base::NumberToString(id))),
-      base::BindOnce(&AecDumpManagerImpl::StartDump, weak_factory_.GetWeakPtr(),
-                     id));
-}
-
-void AecDumpManagerImpl::StartDump(int id, base::File file) {
-  if (!file.IsValid()) {
-    VLOG(1) << "Could not open AEC dump file, error=" << file.error_details();
-    return;
-  }
-
-  auto it = agents_.find(id);
-  if (it == agents_.end()) {
-    // Post the file close to avoid blocking the current thread.
-    base::PostTaskWithTraits(
-        FROM_HERE, {base::TaskPriority::LOWEST, base::MayBlock()},
-        base::BindOnce([](base::File) {}, std::move(file)));
-    return;
-  }
-
-  it->second->Start(std::move(file));
-}
-
-void AecDumpManagerImpl::OnAgentDisconnected(int id) {
-  agents_.erase(id);
-}
-
-}  // namespace content
diff --git a/content/browser/renderer_host/media/aec_dump_manager_impl.h b/content/browser/renderer_host/media/aec_dump_manager_impl.h
deleted file mode 100644
index 96ae6ad0..0000000
--- a/content/browser/renderer_host/media/aec_dump_manager_impl.h
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CONTENT_BROWSER_RENDERER_HOST_MEDIA_AEC_DUMP_MANAGER_IMPL_H_
-#define CONTENT_BROWSER_RENDERER_HOST_MEDIA_AEC_DUMP_MANAGER_IMPL_H_
-
-#include <map>
-#include <memory>
-
-#include "base/process/process_handle.h"
-#include "content/common/media/aec_dump.mojom.h"
-#include "mojo/public/cpp/bindings/receiver_set.h"
-
-namespace base {
-class File;
-class FilePath;
-}  // namespace base
-
-namespace content {
-
-class AecDumpManagerImpl : public mojom::AecDumpManager {
- public:
-  AecDumpManagerImpl();
-  ~AecDumpManagerImpl() override;
-
-  void AddRequest(mojo::InterfaceRequest<mojom::AecDumpManager> request);
-
-  // Start generating AEC dumps using default settings.
-  void AutoStart(base::ProcessId pid);
-
-  // Start generating AEC dumps using a specific file path prefix.
-  void Start(base::ProcessId pid, const base::FilePath& file_path);
-
-  // Stop generating AEC dumps.
-  void Stop();
-
-  // mojom::AecDumpManager methods:
-  void Add(mojo::PendingRemote<mojom::AecDumpAgent> agent) override;
-
- private:
-  void CreateFileAndStartDump(const base::FilePath& file_path, int id);
-  void StartDump(int id, base::File file);
-  void OnAgentDisconnected(int id);
-
-  std::map<int /* id */, mojo::Remote<mojom::AecDumpAgent>> agents_;
-  int id_counter_ = 0;
-  mojo::ReceiverSet<mojom::AecDumpManager> receiver_set_;
-
-  base::WeakPtrFactory<AecDumpManagerImpl> weak_factory_{this};
-
-  DISALLOW_COPY_AND_ASSIGN(AecDumpManagerImpl);
-};
-
-}  // namespace content
-
-#endif  // CONTENT_BROWSER_RENDERER_HOST_MEDIA_AEC_DUMP_MANAGER_IMPL_H_
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index 8020d527..574ba1a 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -135,12 +135,14 @@
 #include "content/browser/site_instance_impl.h"
 #include "content/browser/storage_partition_impl.h"
 #include "content/browser/tracing/background_tracing_manager_impl.h"
+#include "content/browser/webrtc/webrtc_internals.h"
 #include "content/browser/websockets/websocket_manager.h"
 #include "content/browser/webui/web_ui_controller_factory_registry.h"
 #include "content/common/child_process_host_impl.h"
 #include "content/common/content_switches_internal.h"
 #include "content/common/frame_messages.h"
 #include "content/common/in_process_child_thread_params.h"
+#include "content/common/media/aec_dump_messages.h"
 #include "content/common/media/peer_connection_tracker_messages.h"
 #include "content/common/resource_messages.h"
 #include "content/common/service_manager/child_connection.h"
@@ -267,6 +269,12 @@
 #include "services/service_manager/zygote/common/zygote_handle.h"  // nogncheck
 #endif
 
+#if defined(OS_WIN)
+#define NumberToStringType base::NumberToString16
+#else
+#define NumberToStringType base::NumberToString
+#endif
+
 namespace content {
 
 namespace {
@@ -287,6 +295,9 @@
 RenderProcessHost::AnalyzeHungRendererFunction g_analyze_hung_renderer =
     nullptr;
 
+const base::FilePath::CharType kAecDumpFileNameAddition[] =
+    FILE_PATH_LITERAL("aec_dump");
+
 void CacheShaderInfo(int32_t id, base::FilePath path) {
   if (GetShaderCacheFactorySingleton())
     GetShaderCacheFactorySingleton()->SetCacheInfo(id, path);
@@ -321,6 +332,18 @@
       GetRequestContext(request_context, media_request_context, resource_type);
 }
 
+// Creates a file used for handing over to the renderer.
+IPC::PlatformFileForTransit CreateFileForProcess(base::FilePath file_path) {
+  base::File dump_file(file_path,
+                       base::File::FLAG_OPEN_ALWAYS | base::File::FLAG_APPEND);
+  if (!dump_file.IsValid()) {
+    VLOG(1) << "Could not open AEC dump file, error="
+            << dump_file.error_details();
+    return IPC::InvalidPlatformFileForTransit();
+  }
+  return IPC::TakePlatformFileForTransit(std::move(dump_file));
+}
+
 // Allow us to only run the trial in the first renderer.
 bool has_done_stun_trials = false;
 
@@ -2171,11 +2194,6 @@
       base::BindRepeating(&RenderProcessHostImpl::BindVideoDecoderService,
                           base::Unretained(this)));
 
-  AddUIThreadInterface(
-      registry.get(),
-      base::BindRepeating(&AecDumpManagerImpl::AddRequest,
-                          base::Unretained(&aec_dump_manager_)));
-
   // ---- Please do not register interfaces below this line ------
   //
   // This call should be done after registering all interfaces above, so that
@@ -3259,6 +3277,10 @@
       IPC_MESSAGE_HANDLER(ViewHostMsg_UserMetricsRecordAction,
                           OnUserMetricsRecordAction)
       IPC_MESSAGE_HANDLER(WidgetHostMsg_Close_ACK, OnCloseACK)
+      IPC_MESSAGE_HANDLER(AecDumpMsg_RegisterAecDumpConsumer,
+                          OnRegisterAecDumpConsumer)
+      IPC_MESSAGE_HANDLER(AecDumpMsg_UnregisterAecDumpConsumer,
+                          OnUnregisterAecDumpConsumer)
     // Adding single handlers for your service here is fine, but once your
     // service needs more than one handler, please extract them into a new
     // message filter and add that filter to CreateMessageFilters().
@@ -3525,16 +3547,26 @@
 }
 
 void RenderProcessHostImpl::EnableAudioDebugRecordings(
-    const base::FilePath& file_path) {
+    const base::FilePath& file) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 
-  aec_dump_manager_.Start(GetProcess().Pid(), file_path);
+  // Enable AEC dump for each registered consumer.
+  base::FilePath file_with_extensions = GetAecDumpFilePathWithExtensions(file);
+  for (int id : aec_dump_consumers_) {
+    EnableAecDumpForId(file_with_extensions, id);
+  }
 }
 
 void RenderProcessHostImpl::DisableAudioDebugRecordings() {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 
-  aec_dump_manager_.Stop();
+  // Posting on the sequence and then replying back on the UI thread is only
+  // for avoiding races between enable and disable. Nothing is done on the
+  // sequence.
+  GetAecDumpFileTaskRunner().PostTaskAndReply(
+      FROM_HERE, base::DoNothing(),
+      base::BindOnce(&RenderProcessHostImpl::SendDisableAecDumpToRenderer,
+                     weak_factory_.GetWeakPtr()));
 }
 
 RenderProcessHostImpl::WebRtcStopRtpDumpCallback
@@ -4440,7 +4472,11 @@
       observer.RenderProcessReady(this);
   }
 
-  aec_dump_manager_.AutoStart(GetProcess().Pid());
+  WebRTCInternals* webrtc_internals = WebRTCInternals::GetInstance();
+  if (webrtc_internals->IsAudioDebugRecordingsEnabled()) {
+    EnableAudioDebugRecordings(
+        webrtc_internals->GetAudioDebugRecordingsFilePath());
+  }
 }
 
 void RenderProcessHostImpl::OnProcessLaunchFailed(int error_code) {
@@ -4540,6 +4576,80 @@
 }
 #endif  // BUILDFLAG(ENABLE_MDNS)
 
+void RenderProcessHostImpl::OnRegisterAecDumpConsumer(int id) {
+  base::PostTaskWithTraits(
+      FROM_HERE, {BrowserThread::UI},
+      base::BindOnce(&RenderProcessHostImpl::RegisterAecDumpConsumerOnUIThread,
+                     weak_factory_.GetWeakPtr(), id));
+}
+
+void RenderProcessHostImpl::OnUnregisterAecDumpConsumer(int id) {
+  base::PostTaskWithTraits(
+      FROM_HERE, {BrowserThread::UI},
+      base::BindOnce(
+          &RenderProcessHostImpl::UnregisterAecDumpConsumerOnUIThread,
+          weak_factory_.GetWeakPtr(), id));
+}
+
+void RenderProcessHostImpl::RegisterAecDumpConsumerOnUIThread(int id) {
+  DCHECK_CURRENTLY_ON(BrowserThread::UI);
+  aec_dump_consumers_.push_back(id);
+
+  WebRTCInternals* webrtc_internals = WebRTCInternals::GetInstance();
+  if (webrtc_internals->IsAudioDebugRecordingsEnabled()) {
+    base::FilePath file_with_extensions = GetAecDumpFilePathWithExtensions(
+        webrtc_internals->GetAudioDebugRecordingsFilePath());
+    EnableAecDumpForId(file_with_extensions, id);
+  }
+}
+
+void RenderProcessHostImpl::UnregisterAecDumpConsumerOnUIThread(int id) {
+  DCHECK_CURRENTLY_ON(BrowserThread::UI);
+  auto it =
+      std::find(aec_dump_consumers_.begin(), aec_dump_consumers_.end(), id);
+  if (it != aec_dump_consumers_.end())
+    aec_dump_consumers_.erase(it);
+}
+
+void RenderProcessHostImpl::EnableAecDumpForId(const base::FilePath& file,
+                                               int id) {
+  DCHECK_CURRENTLY_ON(BrowserThread::UI);
+  base::PostTaskAndReplyWithResult(
+      &GetAecDumpFileTaskRunner(), FROM_HERE,
+      base::Bind(&CreateFileForProcess,
+                 file.AddExtension(NumberToStringType(id))),
+      base::Bind(&RenderProcessHostImpl::SendAecDumpFileToRenderer,
+                 weak_factory_.GetWeakPtr(), id));
+}
+
+void RenderProcessHostImpl::SendAecDumpFileToRenderer(
+    int id,
+    IPC::PlatformFileForTransit file_for_transit) {
+  if (file_for_transit == IPC::InvalidPlatformFileForTransit())
+    return;
+  Send(new AecDumpMsg_EnableAecDump(id, file_for_transit));
+}
+
+void RenderProcessHostImpl::SendDisableAecDumpToRenderer() {
+  Send(new AecDumpMsg_DisableAecDump());
+}
+
+base::FilePath RenderProcessHostImpl::GetAecDumpFilePathWithExtensions(
+    const base::FilePath& file) {
+  return file.AddExtension(NumberToStringType(GetProcess().Pid()))
+      .AddExtension(kAecDumpFileNameAddition);
+}
+
+base::SequencedTaskRunner& RenderProcessHostImpl::GetAecDumpFileTaskRunner() {
+  if (!audio_debug_recordings_file_task_runner_) {
+    audio_debug_recordings_file_task_runner_ =
+        base::CreateSequencedTaskRunnerWithTraits(
+            {base::MayBlock(), base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN,
+             base::TaskPriority::USER_BLOCKING});
+  }
+  return *audio_debug_recordings_file_task_runner_;
+}
+
 // static
 void RenderProcessHostImpl::OnMojoError(int render_process_id,
                                         const std::string& error) {
diff --git a/content/browser/renderer_host/render_process_host_impl.h b/content/browser/renderer_host/render_process_host_impl.h
index da7d3ca..a949f32 100644
--- a/content/browser/renderer_host/render_process_host_impl.h
+++ b/content/browser/renderer_host/render_process_host_impl.h
@@ -33,7 +33,6 @@
 #include "content/browser/media/video_decoder_proxy.h"
 #include "content/browser/renderer_host/embedded_frame_sink_provider_impl.h"
 #include "content/browser/renderer_host/frame_sink_provider_impl.h"
-#include "content/browser/renderer_host/media/aec_dump_manager_impl.h"
 #include "content/browser/renderer_host/media/renderer_audio_output_stream_factory_context_impl.h"
 #include "content/common/associated_interfaces.mojom.h"
 #include "content/common/child_control.mojom.h"
@@ -637,6 +636,17 @@
   void CreateMdnsResponder(network::mojom::MdnsResponderRequest request);
 #endif  // BUILDFLAG(ENABLE_MDNS)
 
+  void OnRegisterAecDumpConsumer(int id);
+  void OnUnregisterAecDumpConsumer(int id);
+  void RegisterAecDumpConsumerOnUIThread(int id);
+  void UnregisterAecDumpConsumerOnUIThread(int id);
+  void EnableAecDumpForId(const base::FilePath& file, int id);
+  // Sends |file_for_transit| to the render process.
+  void SendAecDumpFileToRenderer(int id,
+                                 IPC::PlatformFileForTransit file_for_transit);
+  void SendDisableAecDumpToRenderer();
+  base::FilePath GetAecDumpFilePathWithExtensions(const base::FilePath& file);
+  base::SequencedTaskRunner& GetAecDumpFileTaskRunner();
   void NotifyRendererIfLockedToSite();
   void PopulateTerminationInfoRendererFields(ChildProcessTerminationInfo* info);
 
@@ -829,10 +839,13 @@
   std::unique_ptr<P2PSocketDispatcherHost> p2p_socket_dispatcher_host_;
 
   // Must be accessed on UI thread.
-  AecDumpManagerImpl aec_dump_manager_;
+  std::vector<int> aec_dump_consumers_;
 
   WebRtcStopRtpDumpCallback stop_rtp_dump_callback_;
 
+  scoped_refptr<base::SequencedTaskRunner>
+      audio_debug_recordings_file_task_runner_;
+
   std::unique_ptr<MediaStreamTrackMetricsHost, BrowserThread::DeleteOnIOThread>
       media_stream_track_metrics_host_;
 
diff --git a/content/common/BUILD.gn b/content/common/BUILD.gn
index 36106aa..25d40e6 100644
--- a/content/common/BUILD.gn
+++ b/content/common/BUILD.gn
@@ -176,6 +176,7 @@
     "mac/attributed_string_coder.mm",
     "mac/font_loader.h",
     "mac/font_loader.mm",
+    "media/aec_dump_messages.h",
     "media/cdm_info.cc",
     "media/media_player_delegate_messages.h",
     "media/peer_connection_tracker_messages.h",
@@ -475,7 +476,6 @@
     "input/input_handler.mojom",
     "input/input_injector.mojom",
     "input/synchronous_compositor.mojom",
-    "media/aec_dump.mojom",
     "media/peer_connection_tracker.mojom",
     "media/renderer_audio_input_stream_factory.mojom",
     "media/renderer_audio_output_stream_factory.mojom",
diff --git a/content/common/content_message_generator.h b/content/common/content_message_generator.h
index 27534ba..7f555c0 100644
--- a/content/common/content_message_generator.h
+++ b/content/common/content_message_generator.h
@@ -41,6 +41,11 @@
 #ifndef CONTENT_COMMON_INPUT_MESSAGES_H_
 #error "Failed to include content/common/input_messages.h"
 #endif
+#undef CONTENT_COMMON_MEDIA_AEC_DUMP_MESSAGES_H_
+#include "content/common/media/aec_dump_messages.h"
+#ifndef CONTENT_COMMON_MEDIA_AEC_DUMP_MESSAGES_H_
+#error "Failed to include content/common/media/aec_dump_messages.h"
+#endif
 #undef CONTENT_COMMON_MEDIA_MEDIA_PLAYER_DELEGATE_MESSAGES_H_
 #include "content/common/media/media_player_delegate_messages.h"
 #ifndef CONTENT_COMMON_MEDIA_MEDIA_PLAYER_DELEGATE_MESSAGES_H_
diff --git a/content/common/media/aec_dump.mojom b/content/common/media/aec_dump.mojom
deleted file mode 100644
index 24fe459..0000000
--- a/content/common/media/aec_dump.mojom
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-module content.mojom;
-
-import "mojo/public/mojom/base/file.mojom";
-
-// Interface used to start / stop writing out an AEC dump from a child process.
-interface AecDumpAgent {
-  Start(mojo_base.mojom.File file);
-  Stop();
-};
-
-// Interface used to register child processes that can generate AEC dump files.
-interface AecDumpManager {
-  // Register the provided |agent| until disconnected.
-  Add(pending_remote<AecDumpAgent> agent);
-};
diff --git a/content/common/media/aec_dump_messages.h b/content/common/media/aec_dump_messages.h
new file mode 100644
index 0000000..fc84743
--- /dev/null
+++ b/content/common/media/aec_dump_messages.h
@@ -0,0 +1,40 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_COMMON_MEDIA_AEC_DUMP_MESSAGES_H_
+#define CONTENT_COMMON_MEDIA_AEC_DUMP_MESSAGES_H_
+
+// IPC messages for the AEC dump.
+
+#include "content/common/content_export.h"
+#include "ipc/ipc_message_macros.h"
+#include "ipc/ipc_platform_file.h"
+
+#undef IPC_MESSAGE_EXPORT
+#define IPC_MESSAGE_EXPORT CONTENT_EXPORT
+#define IPC_MESSAGE_START AecDumpMsgStart
+
+// Messages sent from the browser to the renderer.
+
+// The browser hands over a file handle to the consumer in the renderer
+// identified by |id| to use for AEC dump.
+IPC_MESSAGE_CONTROL2(AecDumpMsg_EnableAecDump,
+                     int /* id */,
+                     IPC::PlatformFileForTransit /* file_handle */)
+
+// Tell the renderer to disable AEC dump in all consumers.
+IPC_MESSAGE_CONTROL0(AecDumpMsg_DisableAecDump)
+
+// Messages sent from the renderer to the browser.
+
+// Registers a consumer with the browser. The consumer will then get a file
+// handle when the dump is enabled.
+IPC_MESSAGE_CONTROL1(AecDumpMsg_RegisterAecDumpConsumer,
+                     int /* id */)
+
+// Unregisters a consumer with the browser.
+IPC_MESSAGE_CONTROL1(AecDumpMsg_UnregisterAecDumpConsumer,
+                     int /* id */)
+
+#endif  // CONTENT_COMMON_MEDIA_AEC_DUMP_MESSAGES_H_
diff --git a/content/public/app/content_browser_manifest.cc b/content/public/app/content_browser_manifest.cc
index c36f884c..f53c4405 100644
--- a/content/public/app/content_browser_manifest.cc
+++ b/content/public/app/content_browser_manifest.cc
@@ -71,7 +71,6 @@
                   "blink.mojom.ReportingServiceProxy",
                   "blink.mojom.StoragePartitionService",
                   "blink.mojom.WebDatabaseHost",
-                  "content.mojom.AecDumpManager",
                   "content.mojom.ClipboardHost",
                   "content.mojom.FieldTrialRecorder",
                   "content.mojom.FrameSinkProvider",
diff --git a/content/renderer/BUILD.gn b/content/renderer/BUILD.gn
index 7fccce0..9a1ee08c 100644
--- a/content/renderer/BUILD.gn
+++ b/content/renderer/BUILD.gn
@@ -200,8 +200,8 @@
     "media/renderer_webaudiodevice_impl.h",
     "media/renderer_webmediaplayer_delegate.cc",
     "media/renderer_webmediaplayer_delegate.h",
-    "media/stream/aec_dump_agent_impl.cc",
-    "media/stream/aec_dump_agent_impl.h",
+    "media/stream/aec_dump_message_filter.cc",
+    "media/stream/aec_dump_message_filter.h",
     "media/stream/apply_constraints_processor.cc",
     "media/stream/apply_constraints_processor.h",
     "media/stream/audio_service_audio_processor_proxy.cc",
diff --git a/content/renderer/media/stream/aec_dump_agent_impl.cc b/content/renderer/media/stream/aec_dump_agent_impl.cc
deleted file mode 100644
index 5b80a8e..0000000
--- a/content/renderer/media/stream/aec_dump_agent_impl.cc
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "content/renderer/media/stream/aec_dump_agent_impl.h"
-
-#include "content/public/child/child_thread.h"
-#include "content/public/common/service_names.mojom.h"
-#include "mojo/public/cpp/bindings/remote.h"
-#include "services/service_manager/public/cpp/connector.h"
-
-namespace content {
-
-// static
-std::unique_ptr<AecDumpAgentImpl> AecDumpAgentImpl::Create(Delegate* delegate) {
-  if (!ChildThread::Get())  // Can be true in unit tests.
-    return nullptr;
-
-  mojo::Remote<mojom::AecDumpManager> manager;
-  ChildThread::Get()->GetConnector()->Connect(
-      mojom::kBrowserServiceName, manager.BindNewPipeAndPassReceiver());
-
-  mojo::PendingRemote<AecDumpAgent> remote;
-  auto receiver = remote.InitWithNewPipeAndPassReceiver();
-
-  manager->Add(std::move(remote));
-
-  return base::WrapUnique(new AecDumpAgentImpl(delegate, std::move(receiver)));
-}
-
-AecDumpAgentImpl::AecDumpAgentImpl(
-    Delegate* delegate,
-    mojo::PendingReceiver<mojom::AecDumpAgent> receiver)
-    : delegate_(delegate), receiver_(this, std::move(receiver)) {}
-
-AecDumpAgentImpl::~AecDumpAgentImpl() = default;
-
-void AecDumpAgentImpl::Start(base::File dump_file) {
-  delegate_->OnStartDump(std::move(dump_file));
-}
-
-void AecDumpAgentImpl::Stop() {
-  delegate_->OnStopDump();
-}
-
-}  // namespace content
diff --git a/content/renderer/media/stream/aec_dump_agent_impl.h b/content/renderer/media/stream/aec_dump_agent_impl.h
deleted file mode 100644
index fd04eab..0000000
--- a/content/renderer/media/stream/aec_dump_agent_impl.h
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CONTENT_RENDERER_MEDIA_STREAM_AEC_DUMP_AGENT_IMPL_H_
-#define CONTENT_RENDERER_MEDIA_STREAM_AEC_DUMP_AGENT_IMPL_H_
-
-#include "base/macros.h"
-#include "content/common/media/aec_dump.mojom.h"
-#include "mojo/public/cpp/bindings/receiver.h"
-
-namespace content {
-
-// An instance of this class connects to the browser process to register for
-// notifications to start / stop writing to a dump file.
-class AecDumpAgentImpl : public mojom::AecDumpAgent {
- public:
-  class Delegate {
-   public:
-    virtual void OnStartDump(base::File file) = 0;
-    virtual void OnStopDump() = 0;
-  };
-
-  // This may fail in unit tests, in which case a null object is returned.
-  static std::unique_ptr<AecDumpAgentImpl> Create(Delegate* delegate);
-
-  ~AecDumpAgentImpl() override;
-
-  // AecDumpAgent methods:
-  void Start(base::File dump_file) override;
-  void Stop() override;
-
- private:
-  explicit AecDumpAgentImpl(
-      Delegate* delegate,
-      mojo::PendingReceiver<mojom::AecDumpAgent> receiver);
-
-  Delegate* delegate_;
-  mojo::Receiver<mojom::AecDumpAgent> receiver_{this};
-
-  DISALLOW_COPY_AND_ASSIGN(AecDumpAgentImpl);
-};
-
-}  // namespace content
-
-#endif  // CONTENT_RENDERER_MEDIA_STREAM_AEC_DUMP_AGENT_IMPL_H_
diff --git a/content/renderer/media/stream/aec_dump_message_filter.cc b/content/renderer/media/stream/aec_dump_message_filter.cc
new file mode 100644
index 0000000..469cb91
--- /dev/null
+++ b/content/renderer/media/stream/aec_dump_message_filter.cc
@@ -0,0 +1,175 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "content/renderer/media/stream/aec_dump_message_filter.h"
+
+#include "base/bind.h"
+#include "base/single_thread_task_runner.h"
+#include "content/common/media/aec_dump_messages.h"
+#include "content/renderer/media/webrtc_logging.h"
+#include "ipc/ipc_logging.h"
+#include "ipc/ipc_sender.h"
+
+namespace {
+const int kInvalidDelegateId = -1;
+}
+
+namespace content {
+
+AecDumpMessageFilter* AecDumpMessageFilter::g_filter = nullptr;
+
+AecDumpMessageFilter::AecDumpMessageFilter(
+    const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner,
+    const scoped_refptr<base::SingleThreadTaskRunner>& main_task_runner)
+    : sender_(nullptr),
+      delegate_id_counter_(1),
+      io_task_runner_(io_task_runner),
+      main_task_runner_(main_task_runner) {
+  DCHECK(!g_filter);
+  g_filter = this;
+}
+
+AecDumpMessageFilter::~AecDumpMessageFilter() {
+  DCHECK_EQ(g_filter, this);
+  g_filter = nullptr;
+}
+
+// static
+scoped_refptr<AecDumpMessageFilter> AecDumpMessageFilter::Get() {
+  return g_filter;
+}
+
+void AecDumpMessageFilter::AddDelegate(
+    AecDumpMessageFilter::AecDumpDelegate* delegate) {
+  DCHECK(main_task_runner_->BelongsToCurrentThread());
+  DCHECK(delegate);
+  DCHECK_EQ(kInvalidDelegateId, GetIdForDelegate(delegate));
+
+  int id = delegate_id_counter_++;
+  delegates_[id] = delegate;
+
+  io_task_runner_->PostTask(
+      FROM_HERE,
+      base::BindOnce(&AecDumpMessageFilter::RegisterAecDumpConsumer, this, id));
+}
+
+void AecDumpMessageFilter::RemoveDelegate(
+    AecDumpMessageFilter::AecDumpDelegate* delegate) {
+  DCHECK(main_task_runner_->BelongsToCurrentThread());
+  DCHECK(delegate);
+
+  int id = GetIdForDelegate(delegate);
+  DCHECK_NE(kInvalidDelegateId, id);
+  delegates_.erase(id);
+
+  io_task_runner_->PostTask(
+      FROM_HERE,
+      base::BindOnce(&AecDumpMessageFilter::UnregisterAecDumpConsumer, this,
+                     id));
+}
+
+void AecDumpMessageFilter::Send(IPC::Message* message) {
+  DCHECK(io_task_runner_->BelongsToCurrentThread());
+  if (sender_)
+    sender_->Send(message);
+  else
+    delete message;
+}
+
+void AecDumpMessageFilter::RegisterAecDumpConsumer(int id) {
+  Send(new AecDumpMsg_RegisterAecDumpConsumer(id));
+}
+
+void AecDumpMessageFilter::UnregisterAecDumpConsumer(int id) {
+  Send(new AecDumpMsg_UnregisterAecDumpConsumer(id));
+}
+
+bool AecDumpMessageFilter::OnMessageReceived(const IPC::Message& message) {
+  DCHECK(io_task_runner_->BelongsToCurrentThread());
+  bool handled = true;
+  IPC_BEGIN_MESSAGE_MAP(AecDumpMessageFilter, message)
+    IPC_MESSAGE_HANDLER(AecDumpMsg_EnableAecDump, OnEnableAecDump)
+    IPC_MESSAGE_HANDLER(AecDumpMsg_DisableAecDump, OnDisableAecDump)
+    IPC_MESSAGE_UNHANDLED(handled = false)
+  IPC_END_MESSAGE_MAP()
+  return handled;
+}
+
+void AecDumpMessageFilter::OnFilterAdded(IPC::Channel* channel) {
+  DCHECK(io_task_runner_->BelongsToCurrentThread());
+  sender_ = channel;
+}
+
+void AecDumpMessageFilter::OnFilterRemoved() {
+  DCHECK(io_task_runner_->BelongsToCurrentThread());
+
+  // Once removed, a filter will not be used again.  At this time the
+  // observer must be notified so it releases its reference.
+  OnChannelClosing();
+}
+
+void AecDumpMessageFilter::OnChannelClosing() {
+  DCHECK(io_task_runner_->BelongsToCurrentThread());
+  sender_ = nullptr;
+  main_task_runner_->PostTask(
+      FROM_HERE,
+      base::BindOnce(&AecDumpMessageFilter::DoChannelClosingOnDelegates, this));
+}
+
+void AecDumpMessageFilter::OnEnableAecDump(
+    int id,
+    IPC::PlatformFileForTransit file_handle) {
+  DCHECK(io_task_runner_->BelongsToCurrentThread());
+  main_task_runner_->PostTask(
+      FROM_HERE, base::BindOnce(&AecDumpMessageFilter::DoEnableAecDump, this,
+                                id, file_handle));
+}
+
+void AecDumpMessageFilter::OnDisableAecDump() {
+  DCHECK(io_task_runner_->BelongsToCurrentThread());
+  main_task_runner_->PostTask(
+      FROM_HERE, base::BindOnce(&AecDumpMessageFilter::DoDisableAecDump, this));
+}
+
+void AecDumpMessageFilter::DoEnableAecDump(
+    int id,
+    IPC::PlatformFileForTransit file_handle) {
+  DCHECK(main_task_runner_->BelongsToCurrentThread());
+  auto it = delegates_.find(id);
+  if (it != delegates_.end()) {
+    it->second->OnAecDumpFile(file_handle);
+  } else {
+    // Delegate has been removed, we must close the file.
+    base::File file = IPC::PlatformFileForTransitToFile(file_handle);
+    DCHECK(file.IsValid());
+    file.Close();
+  }
+}
+
+void AecDumpMessageFilter::DoDisableAecDump() {
+  DCHECK(main_task_runner_->BelongsToCurrentThread());
+  for (auto it = delegates_.begin(); it != delegates_.end(); ++it) {
+    it->second->OnDisableAecDump();
+  }
+}
+
+void AecDumpMessageFilter::DoChannelClosingOnDelegates() {
+  DCHECK(main_task_runner_->BelongsToCurrentThread());
+  for (auto it = delegates_.begin(); it != delegates_.end(); ++it) {
+    it->second->OnIpcClosing();
+  }
+  delegates_.clear();
+}
+
+int AecDumpMessageFilter::GetIdForDelegate(
+    AecDumpMessageFilter::AecDumpDelegate* delegate) {
+  DCHECK(main_task_runner_->BelongsToCurrentThread());
+  for (auto it = delegates_.begin(); it != delegates_.end(); ++it) {
+    if (it->second == delegate)
+      return it->first;
+  }
+  return kInvalidDelegateId;
+}
+
+}  // namespace content
diff --git a/content/renderer/media/stream/aec_dump_message_filter.h b/content/renderer/media/stream/aec_dump_message_filter.h
new file mode 100644
index 0000000..4c340d0
--- /dev/null
+++ b/content/renderer/media/stream/aec_dump_message_filter.h
@@ -0,0 +1,113 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_RENDERER_MEDIA_STREAM_AEC_DUMP_MESSAGE_FILTER_H_
+#define CONTENT_RENDERER_MEDIA_STREAM_AEC_DUMP_MESSAGE_FILTER_H_
+
+#include <memory>
+
+#include "base/macros.h"
+#include "base/optional.h"
+#include "content/common/content_export.h"
+#include "content/renderer/render_thread_impl.h"
+#include "ipc/ipc_platform_file.h"
+#include "ipc/message_filter.h"
+
+namespace base {
+class SingleThreadTaskRunner;
+}
+
+namespace content {
+
+// MessageFilter that handles AEC dump messages and forwards them to an
+// observer.
+class CONTENT_EXPORT AecDumpMessageFilter : public IPC::MessageFilter {
+ public:
+  class AecDumpDelegate {
+   public:
+    virtual void OnAecDumpFile(
+        const IPC::PlatformFileForTransit& file_handle) = 0;
+    virtual void OnDisableAecDump() = 0;
+    virtual void OnIpcClosing() = 0;
+  };
+
+  AecDumpMessageFilter(
+      const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner,
+      const scoped_refptr<base::SingleThreadTaskRunner>& main_task_runner);
+
+  // Getter for the one AecDumpMessageFilter object.
+  static scoped_refptr<AecDumpMessageFilter> Get();
+
+  // Adds a delegate that receives the enable and disable notifications. Must be
+  // called on the main task runner (|main_task_runner| in constructor). All
+  // calls on |delegate| are done on the main task runner.
+  void AddDelegate(AecDumpMessageFilter::AecDumpDelegate* delegate);
+
+  // Removes a delegate. Must be called on the main task runner
+  // (|main_task_runner| in constructor).
+  void RemoveDelegate(AecDumpMessageFilter::AecDumpDelegate* delegate);
+
+  // IO task runner associated with this message filter.
+  scoped_refptr<base::SingleThreadTaskRunner> io_task_runner() const {
+    return io_task_runner_;
+  }
+
+ protected:
+  ~AecDumpMessageFilter() override;
+
+ private:
+  // Sends an IPC message using |sender_|.
+  void Send(IPC::Message* message);
+
+  // Registers a consumer of AEC dump in the browser process. This consumer will
+  // get a file handle when the AEC dump is enabled and a notification when it
+  // is disabled.
+  void RegisterAecDumpConsumer(int id);
+
+  // Unregisters a consumer of AEC dump in the browser process.
+  void UnregisterAecDumpConsumer(int id);
+
+  // IPC::MessageFilter override. Called on |io_task_runner|.
+  bool OnMessageReceived(const IPC::Message& message) override;
+  void OnFilterAdded(IPC::Channel* channel) override;
+  void OnFilterRemoved() override;
+  void OnChannelClosing() override;
+
+  // Accessed on |io_task_runner_|.
+  void OnEnableAecDump(int id, IPC::PlatformFileForTransit file_handle);
+  void OnDisableAecDump();
+
+  // Accessed on |main_task_runner_|.
+  void DoEnableAecDump(int id, IPC::PlatformFileForTransit file_handle);
+  void DoDisableAecDump();
+  void DoChannelClosingOnDelegates();
+  int GetIdForDelegate(AecDumpMessageFilter::AecDumpDelegate* delegate);
+
+  // Accessed on |io_task_runner_|.
+  IPC::Sender* sender_;
+
+  // The delgates for this filter. Must only be accessed on
+  // |main_task_runner_|.
+  using DelegateMap = std::map<int, AecDumpMessageFilter::AecDumpDelegate*>;
+  DelegateMap delegates_;
+
+  // Counter for generating unique IDs to delegates. Accessed on
+  // |main_task_runner_|.
+  int delegate_id_counter_;
+
+  // Task runner which IPC calls are executed.
+  const scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_;
+
+  // Main task runner.
+  const scoped_refptr<base::SingleThreadTaskRunner> main_task_runner_;
+
+  // The singleton instance for this filter.
+  static AecDumpMessageFilter* g_filter;
+
+  DISALLOW_COPY_AND_ASSIGN(AecDumpMessageFilter);
+};
+
+}  // namespace content
+
+#endif  // CONTENT_RENDERER_MEDIA_STREAM_AEC_DUMP_MESSAGE_FILTER_H_
diff --git a/content/renderer/media/stream/audio_service_audio_processor_proxy.cc b/content/renderer/media/stream/audio_service_audio_processor_proxy.cc
index a17ed83..dd66e79 100644
--- a/content/renderer/media/stream/audio_service_audio_processor_proxy.cc
+++ b/content/renderer/media/stream/audio_service_audio_processor_proxy.cc
@@ -31,6 +31,7 @@
     scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner)
     : main_thread_runner_(std::move(main_thread_task_runner)),
       target_stats_interval_(kMaxStatsInterval),
+      aec_dump_message_filter_(AecDumpMessageFilter::Get()),
       weak_ptr_factory_(this) {
   DCHECK(main_thread_runner_->BelongsToCurrentThread());
 }
@@ -43,7 +44,10 @@
 void AudioServiceAudioProcessorProxy::Stop() {
   DCHECK(main_thread_runner_->BelongsToCurrentThread());
 
-  aec_dump_agent_impl_.reset();
+  if (aec_dump_message_filter_.get()) {
+    aec_dump_message_filter_->RemoveDelegate(this);
+    aec_dump_message_filter_ = nullptr;
+  }
 
   if (processor_controls_) {
     processor_controls_->StopEchoCancellationDump();
@@ -53,25 +57,33 @@
   stats_update_timer_.Stop();
 }
 
-void AudioServiceAudioProcessorProxy::OnStartDump(base::File dump_file) {
+void AudioServiceAudioProcessorProxy::OnAecDumpFile(
+    const IPC::PlatformFileForTransit& file_handle) {
   DCHECK(main_thread_runner_->BelongsToCurrentThread());
-  DCHECK(dump_file.IsValid());
+  base::File file = IPC::PlatformFileForTransitToFile(file_handle);
+  DCHECK(file.IsValid());
   if (processor_controls_) {
-    processor_controls_->StartEchoCancellationDump(std::move(dump_file));
+    processor_controls_->StartEchoCancellationDump(std::move(file));
   } else {
     // Post the file close to avoid blocking the main thread.
     base::PostTaskWithTraits(
         FROM_HERE, {base::TaskPriority::LOWEST, base::MayBlock()},
-        base::BindOnce([](base::File) {}, std::move(dump_file)));
+        base::BindOnce([](base::File) {}, std::move(file)));
   }
 }
 
-void AudioServiceAudioProcessorProxy::OnStopDump() {
+void AudioServiceAudioProcessorProxy::OnDisableAecDump() {
   DCHECK(main_thread_runner_->BelongsToCurrentThread());
   if (processor_controls_)
     processor_controls_->StopEchoCancellationDump();
 }
 
+void AudioServiceAudioProcessorProxy::OnIpcClosing() {
+  DCHECK(main_thread_runner_->BelongsToCurrentThread());
+  aec_dump_message_filter_->RemoveDelegate(this);
+  aec_dump_message_filter_ = nullptr;
+}
+
 void AudioServiceAudioProcessorProxy::SetControls(
     media::AudioProcessorControls* controls) {
   DCHECK(main_thread_runner_->BelongsToCurrentThread());
@@ -84,9 +96,11 @@
   last_stats_request_time_ = base::TimeTicks::Now();
   stats_update_timer_.SetTaskRunner(main_thread_runner_);
   RescheduleStatsUpdateTimer(target_stats_interval_);
-
-  // Can be null in unit tests. That's okay.
-  aec_dump_agent_impl_ = AecDumpAgentImpl::Create(this);
+  // In unit tests not creating a message filter, |aec_dump_message_filter_|
+  // will be null. We can just ignore that. Other unit tests and browser tests
+  // ensure that we do get the filter when we should.
+  if (aec_dump_message_filter_)
+    aec_dump_message_filter_->AddDelegate(this);
 }
 
 webrtc::AudioProcessorInterface::AudioProcessorStatistics
diff --git a/content/renderer/media/stream/audio_service_audio_processor_proxy.h b/content/renderer/media/stream/audio_service_audio_processor_proxy.h
index 2e2b5ac..4fed003 100644
--- a/content/renderer/media/stream/audio_service_audio_processor_proxy.h
+++ b/content/renderer/media/stream/audio_service_audio_processor_proxy.h
@@ -14,7 +14,7 @@
 #include "base/threading/thread_checker.h"
 #include "base/timer/timer.h"
 #include "content/common/content_export.h"
-#include "content/renderer/media/stream/aec_dump_agent_impl.h"
+#include "content/renderer/media/stream/aec_dump_message_filter.h"
 #include "media/base/audio_processing.h"
 #include "media/webrtc/audio_processor_controls.h"
 #include "third_party/webrtc/api/media_stream_interface.h"
@@ -31,7 +31,7 @@
 // calculation code should be encapsulated in a class.
 class CONTENT_EXPORT AudioServiceAudioProcessorProxy
     : public webrtc::AudioProcessorInterface,
-      public AecDumpAgentImpl::Delegate {
+      public AecDumpMessageFilter::AecDumpDelegate {
  public:
   // All methods (including constructor and destructor) must be called on the
   // main thread except for GetStats.
@@ -45,10 +45,11 @@
   // This method is called on the libjingle thread.
   AudioProcessorStatistics GetStats(bool has_remote_tracks) override;
 
-  // AecDumpAgentImpl::Delegate implementation.
+  // AecDumpMessageFilter::AecDumpDelegate implementation.
   // Called on the main render thread.
-  void OnStartDump(base::File file) override;
-  void OnStopDump() override;
+  void OnAecDumpFile(const IPC::PlatformFileForTransit& file_handle) override;
+  void OnDisableAecDump() override;
+  void OnIpcClosing() override;
 
   // Set the AudioProcessorControls which to proxy to. Must only be called once
   // and |controls| cannot be nullptr.
@@ -77,7 +78,7 @@
   AudioProcessorStatistics latest_stats_ = {};
 
   // Communication with browser for AEC dump.
-  std::unique_ptr<AecDumpAgentImpl> aec_dump_agent_impl_;
+  scoped_refptr<AecDumpMessageFilter> aec_dump_message_filter_;
 
   base::WeakPtrFactory<AudioServiceAudioProcessorProxy> weak_ptr_factory_;
 
diff --git a/content/renderer/media/stream/media_stream_audio_processor.cc b/content/renderer/media/stream/media_stream_audio_processor.cc
index 05603d0..4f99d26b 100644
--- a/content/renderer/media/stream/media_stream_audio_processor.cc
+++ b/content/renderer/media/stream/media_stream_audio_processor.cc
@@ -21,8 +21,6 @@
 #include "base/optional.h"
 #include "base/single_thread_task_runner.h"
 #include "base/strings/string_number_conversions.h"
-#include "base/task/post_task.h"
-#include "base/task/task_traits.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "base/trace_event/trace_event.h"
 #include "build/build_config.h"
@@ -278,13 +276,19 @@
       main_thread_runner_(base::ThreadTaskRunnerHandle::Get()),
       audio_mirroring_(false),
       typing_detected_(false),
-      aec_dump_agent_impl_(AecDumpAgentImpl::Create(this)),
+      aec_dump_message_filter_(AecDumpMessageFilter::Get()),
       stopped_(false) {
   DCHECK(main_thread_runner_);
   DETACH_FROM_THREAD(capture_thread_checker_);
   DETACH_FROM_THREAD(render_thread_checker_);
 
   InitializeAudioProcessingModule(properties);
+
+  // In unit tests not creating a message filter, |aec_dump_message_filter_|
+  // will be null. We can just ignore that. Other unit tests and browser tests
+  // ensure that we do get the filter when we should.
+  if (aec_dump_message_filter_.get())
+    aec_dump_message_filter_->AddDelegate(this);
 }
 
 MediaStreamAudioProcessor::~MediaStreamAudioProcessor() {
@@ -365,7 +369,10 @@
 
   stopped_ = true;
 
-  aec_dump_agent_impl_.reset();
+  if (aec_dump_message_filter_.get()) {
+    aec_dump_message_filter_->RemoveDelegate(this);
+    aec_dump_message_filter_ = nullptr;
+  }
 
   if (!audio_processing_.get())
     return;
@@ -387,10 +394,12 @@
   return output_format_;
 }
 
-void MediaStreamAudioProcessor::OnStartDump(base::File dump_file) {
+void MediaStreamAudioProcessor::OnAecDumpFile(
+    const IPC::PlatformFileForTransit& file_handle) {
   DCHECK(main_thread_runner_->BelongsToCurrentThread());
 
-  DCHECK(dump_file.IsValid());
+  base::File file = IPC::PlatformFileForTransitToFile(file_handle);
+  DCHECK(file.IsValid());
 
   if (audio_processing_) {
     if (!worker_queue_) {
@@ -400,17 +409,14 @@
     // Here tasks will be posted on the |worker_queue_|. It must be
     // kept alive until StopEchoCancellationDump is called or the
     // webrtc::AudioProcessing instance is destroyed.
-    blink::StartEchoCancellationDump(audio_processing_.get(),
-                                     std::move(dump_file), worker_queue_.get());
+    blink::StartEchoCancellationDump(audio_processing_.get(), std::move(file),
+                                     worker_queue_.get());
   } else {
-    // Post the file close to avoid blocking the main thread.
-    base::PostTaskWithTraits(
-        FROM_HERE, {base::TaskPriority::LOWEST, base::MayBlock()},
-        base::BindOnce([](base::File) {}, std::move(dump_file)));
+    file.Close();
   }
 }
 
-void MediaStreamAudioProcessor::OnStopDump() {
+void MediaStreamAudioProcessor::OnDisableAecDump() {
   DCHECK(main_thread_runner_->BelongsToCurrentThread());
   if (audio_processing_)
     blink::StopEchoCancellationDump(audio_processing_.get());
@@ -420,6 +426,11 @@
   worker_queue_.reset(nullptr);
 }
 
+void MediaStreamAudioProcessor::OnIpcClosing() {
+  DCHECK(main_thread_runner_->BelongsToCurrentThread());
+  aec_dump_message_filter_ = nullptr;
+}
+
 // static
 bool MediaStreamAudioProcessor::WouldModifyAudio(
     const blink::AudioProcessingProperties& properties) {
diff --git a/content/renderer/media/stream/media_stream_audio_processor.h b/content/renderer/media/stream/media_stream_audio_processor.h
index 04da8552..dc200497 100644
--- a/content/renderer/media/stream/media_stream_audio_processor.h
+++ b/content/renderer/media/stream/media_stream_audio_processor.h
@@ -18,7 +18,7 @@
 #include "base/threading/thread_checker.h"
 #include "base/time/time.h"
 #include "content/common/content_export.h"
-#include "content/renderer/media/stream/aec_dump_agent_impl.h"
+#include "content/renderer/media/stream/aec_dump_message_filter.h"
 #include "content/renderer/media/webrtc/webrtc_audio_device_impl.h"
 #include "media/base/audio_converter.h"
 #include "media/webrtc/audio_delay_stats_reporter.h"
@@ -51,7 +51,7 @@
 class CONTENT_EXPORT MediaStreamAudioProcessor
     : public WebRtcPlayoutDataSource::Sink,
       public AudioProcessorInterface,
-      public AecDumpAgentImpl::Delegate {
+      public AecDumpMessageFilter::AecDumpDelegate {
  public:
   // |playout_data_source| is used to register this class as a sink to the
   // WebRtc playout data for processing AEC. If clients do not enable AEC,
@@ -105,10 +105,11 @@
   // Accessor to check if the audio processing is enabled or not.
   bool has_audio_processing() const { return audio_processing_ != NULL; }
 
-  // AecDumpAgentImpl::Delegate implementation.
+  // AecDumpMessageFilter::AecDumpDelegate implementation.
   // Called on the main render thread.
-  void OnStartDump(base::File dump_file) override;
-  void OnStopDump() override;
+  void OnAecDumpFile(const IPC::PlatformFileForTransit& file_handle) override;
+  void OnDisableAecDump() override;
+  void OnIpcClosing() override;
 
   // Returns true if MediaStreamAudioProcessor would modify the audio signal,
   // based on |properties|. If the audio signal would not be modified, there is
@@ -204,7 +205,7 @@
   base::subtle::Atomic32 typing_detected_;
 
   // Communication with browser for AEC dump.
-  std::unique_ptr<AecDumpAgentImpl> aec_dump_agent_impl_;
+  scoped_refptr<AecDumpMessageFilter> aec_dump_message_filter_;
 
   // Flag to avoid executing Stop() more than once.
   bool stopped_;
diff --git a/content/renderer/media/stream/media_stream_audio_processor_unittest.cc b/content/renderer/media/stream/media_stream_audio_processor_unittest.cc
index 5d878dc1..2e3e8d6a 100644
--- a/content/renderer/media/stream/media_stream_audio_processor_unittest.cc
+++ b/content/renderer/media/stream/media_stream_audio_processor_unittest.cc
@@ -276,6 +276,29 @@
   audio_processor->Stop();
 }
 
+// Test that if we have an AEC dump message filter created, we are getting it
+// correctly in MSAP. Any IPC messages will be deleted since no sender in the
+// filter will be created.
+TEST_F(MediaStreamAudioProcessorTest, GetAecDumpMessageFilter) {
+  scoped_refptr<AecDumpMessageFilter> aec_dump_message_filter_(
+      new AecDumpMessageFilter(
+          blink::scheduler::GetSingleThreadTaskRunnerForTesting(),
+          blink::scheduler::GetSingleThreadTaskRunnerForTesting()));
+
+  scoped_refptr<WebRtcAudioDeviceImpl> webrtc_audio_device(
+      new rtc::RefCountedObject<WebRtcAudioDeviceImpl>());
+  blink::AudioProcessingProperties properties;
+  scoped_refptr<MediaStreamAudioProcessor> audio_processor(
+      new rtc::RefCountedObject<MediaStreamAudioProcessor>(
+          properties, webrtc_audio_device.get()));
+
+  EXPECT_TRUE(audio_processor->aec_dump_message_filter_.get());
+
+  // Stop |audio_processor| so that it removes itself from
+  // |webrtc_audio_device| and clears its pointer to it.
+  audio_processor->Stop();
+}
+
 TEST_F(MediaStreamAudioProcessorTest, StartStopAecDump) {
   scoped_refptr<WebRtcAudioDeviceImpl> webrtc_audio_device(
       new rtc::RefCountedObject<WebRtcAudioDeviceImpl>());
@@ -292,13 +315,13 @@
             properties, webrtc_audio_device.get()));
 
     // Start and stop recording.
-    audio_processor->OnStartDump(base::File(
-        temp_file_path, base::File::FLAG_WRITE | base::File::FLAG_OPEN));
-    audio_processor->OnStopDump();
+    audio_processor->OnAecDumpFile(IPC::TakePlatformFileForTransit(base::File(
+        temp_file_path, base::File::FLAG_WRITE | base::File::FLAG_OPEN)));
+    audio_processor->OnDisableAecDump();
 
     // Start and wait for d-tor.
-    audio_processor->OnStartDump(base::File(
-        temp_file_path, base::File::FLAG_WRITE | base::File::FLAG_OPEN));
+    audio_processor->OnAecDumpFile(IPC::TakePlatformFileForTransit(base::File(
+        temp_file_path, base::File::FLAG_WRITE | base::File::FLAG_OPEN)));
   }
 
   // Check that dump file is non-empty after audio processor has been
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
index a1ceab0..476c27d 100644
--- a/content/renderer/render_thread_impl.cc
+++ b/content/renderer/render_thread_impl.cc
@@ -89,6 +89,7 @@
 #include "content/renderer/media/audio/audio_renderer_mixer_manager.h"
 #include "content/renderer/media/gpu/gpu_video_accelerator_factories_impl.h"
 #include "content/renderer/media/render_media_client.h"
+#include "content/renderer/media/stream/aec_dump_message_filter.h"
 #include "content/renderer/media/stream/media_stream_center.h"
 #include "content/renderer/media/video_capture/video_capture_impl_manager.h"
 #include "content/renderer/media/webrtc/peer_connection_dependency_factory.h"
@@ -755,6 +756,11 @@
   peer_connection_factory_.reset(
       new PeerConnectionDependencyFactory(p2p_socket_dispatcher_.get()));
 
+  aec_dump_message_filter_ =
+      new AecDumpMessageFilter(GetIOTaskRunner(), main_thread_runner());
+
+  AddFilter(aec_dump_message_filter_.get());
+
   unfreezable_message_filter_ = new UnfreezableMessageFilter(this);
   AddFilter(unfreezable_message_filter_.get());
 
diff --git a/content/renderer/render_thread_impl.h b/content/renderer/render_thread_impl.h
index 649f7a6..90c62a7 100644
--- a/content/renderer/render_thread_impl.h
+++ b/content/renderer/render_thread_impl.h
@@ -112,6 +112,7 @@
 }  // namespace viz
 
 namespace content {
+class AecDumpMessageFilter;
 class AudioRendererMixerManager;
 class BrowserPluginManager;
 class CategorizedWorkerPool;
@@ -592,6 +593,12 @@
   // Dispatches all P2P sockets.
   scoped_refptr<P2PSocketDispatcher> p2p_socket_dispatcher_;
 
+  // Used for communicating registering AEC dump consumers with the browser and
+  // receving AEC dump file handles when AEC dump is enabled. An AEC dump is
+  // diagnostic audio data for WebRTC stored locally when enabled by the user in
+  // chrome://webrtc-internals.
+  scoped_refptr<AecDumpMessageFilter> aec_dump_message_filter_;
+
   // Filter out unfreezable messages and pass it to unfreezable task runners.
   scoped_refptr<UnfreezableMessageFilter> unfreezable_message_filter_;
 
diff --git a/content/renderer/service_worker/service_worker_subresource_loader.cc b/content/renderer/service_worker/service_worker_subresource_loader.cc
index c33fce0..ddd5351 100644
--- a/content/renderer/service_worker/service_worker_subresource_loader.cc
+++ b/content/renderer/service_worker/service_worker_subresource_loader.cc
@@ -381,15 +381,17 @@
   // preflight logic is implemented in Blink. So we return a "fallback required"
   // response to Blink.
   // TODO(falken): Remove this mechanism after OOB-CORS ships.
-  if ((resource_request_.fetch_request_mode ==
-           network::mojom::FetchRequestMode::kCors ||
-       resource_request_.fetch_request_mode ==
-           network::mojom::FetchRequestMode::kCorsWithForcedPreflight) &&
-      (!resource_request_.request_initiator.has_value() ||
-       !resource_request_.request_initiator->IsSameOriginWith(
-           url::Origin::Create(resource_request_.url)))) {
+  if (!network::features::ShouldEnableOutOfBlinkCors() &&
+      ((resource_request_.fetch_request_mode ==
+            network::mojom::FetchRequestMode::kCors ||
+        resource_request_.fetch_request_mode ==
+            network::mojom::FetchRequestMode::kCorsWithForcedPreflight) &&
+       (!resource_request_.request_initiator.has_value() ||
+        !resource_request_.request_initiator->IsSameOriginWith(
+            url::Origin::Create(resource_request_.url))))) {
     TRACE_EVENT_WITH_FLOW0(
-        "ServiceWorker", "ServiceWorkerSubresourceLoader::OnFallback",
+        "ServiceWorker",
+        "ServiceWorkerSubresourceLoader::OnFallback - CORS workaround",
         TRACE_ID_WITH_SCOPE(kServiceWorkerSubresourceLoaderScope,
                             TRACE_ID_LOCAL(request_id_)),
         TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT);
diff --git a/content/renderer/service_worker/service_worker_subresource_loader_unittest.cc b/content/renderer/service_worker/service_worker_subresource_loader_unittest.cc
index a30af48..5294460f 100644
--- a/content/renderer/service_worker/service_worker_subresource_loader_unittest.cc
+++ b/content/renderer/service_worker/service_worker_subresource_loader_unittest.cc
@@ -1306,7 +1306,10 @@
 }
 
 // Test when the service worker responds with network fallback to CORS request.
-TEST_F(ServiceWorkerSubresourceLoaderTest, CorsFallbackResponse) {
+TEST_F(ServiceWorkerSubresourceLoaderTest, CorsFallbackResponseWithoutOORCors) {
+  base::test::ScopedFeatureList test_features;
+  test_features.InitAndDisableFeature(network::features::kOutOfBlinkCors);
+
   fake_controller_.RespondWithFallback();
 
   network::mojom::URLLoaderFactoryPtr factory =
diff --git a/content/test/gpu/gpu_tests/test_expectations/trace_test_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/trace_test_expectations.txt
index 602cd91..be0a6a19 100644
--- a/content/test/gpu/gpu_tests/test_expectations/trace_test_expectations.txt
+++ b/content/test/gpu/gpu_tests/test_expectations/trace_test_expectations.txt
@@ -8,10 +8,13 @@
 # Device traces are not supported on all machines.
 DeviceTraceTest_* [ Skip ]
 
-# We do not have software H.264 decoding on Android, so it can't survive a
-# context loss which results in hardware decoder loss.
-crbug.com/580386 [ android ] TraceTest_Video_Context_Loss_MP4 [ Skip ]
-crbug.com/580386 [ android ] DeviceTraceTest_Video_Context_Loss_MP4 [ Skip ]
+# The TraceTest versions of the pixel tests' Video_Context_Loss tests
+# appear flaky on multiple platforms. These are mainly meant to run as
+# pixel tests so they're being skipped in this test suite.
+crbug.com/974077 TraceTest_Video_Context_Loss_MP4 [ Skip ]
+crbug.com/974077 DeviceTraceTest_Video_Context_Loss_MP4 [ Skip ]
+crbug.com/974077 TraceTest_Video_Context_Loss_VP9 [ Skip ]
+crbug.com/974077 DeviceTraceTest_Video_Context_Loss_VP9 [ Skip ]
 
 # Skip on platforms where DirectComposition isn't supported
 crbug.com/867136 [ mac ] VideoPathTraceTest_* [ Skip ]
@@ -33,5 +36,4 @@
 
 # Flaky for unknown reason.
 crbug.com/960007 [ win10 nvidia ] OverlayModeTraceTest_DirectComposition_Nonroot [ RetryOnFailure ]
-crbug.com/965730 [ android qualcomm-adreno-(tm)-418 ] TraceTest_Video_Context_Loss_VP9 [ Skip ]
 crbug.com/969117 [ win10 intel ] OverlayModeTraceTest_DirectComposition_Video_MP4_FourColors_Aspect_4x3 [ RetryOnFailure ]
diff --git a/device/bluetooth/test/mock_bluetooth_gatt_service.cc b/device/bluetooth/test/mock_bluetooth_gatt_service.cc
index 5c5c8387..2539fb6 100644
--- a/device/bluetooth/test/mock_bluetooth_gatt_service.cc
+++ b/device/bluetooth/test/mock_bluetooth_gatt_service.cc
@@ -35,6 +35,10 @@
       .WillByDefault(Invoke([this](const std::string& id) {
         return BluetoothRemoteGattService::GetCharacteristic(id);
       }));
+  ON_CALL(*this, GetCharacteristicsByUUID(_))
+      .WillByDefault(Invoke([this](const BluetoothUUID& uuid) {
+        return BluetoothRemoteGattService::GetCharacteristicsByUUID(uuid);
+      }));
 }
 
 MockBluetoothGattService::~MockBluetoothGattService() = default;
diff --git a/device/bluetooth/test/mock_bluetooth_gatt_service.h b/device/bluetooth/test/mock_bluetooth_gatt_service.h
index c84ba88..5c0c424e 100644
--- a/device/bluetooth/test/mock_bluetooth_gatt_service.h
+++ b/device/bluetooth/test/mock_bluetooth_gatt_service.h
@@ -40,6 +40,9 @@
                      std::vector<BluetoothRemoteGattService*>());
   MOCK_CONST_METHOD1(GetCharacteristic,
                      BluetoothRemoteGattCharacteristic*(const std::string&));
+  MOCK_CONST_METHOD1(
+      GetCharacteristicsByUUID,
+      std::vector<BluetoothRemoteGattCharacteristic*>(const BluetoothUUID&));
   MOCK_METHOD1(AddIncludedService, bool(BluetoothRemoteGattService*));
   MOCK_METHOD2(Register, void(const base::Closure&, const ErrorCallback&));
   MOCK_METHOD2(Unregister, void(const base::Closure&, const ErrorCallback&));
diff --git a/docs/infra/cq_builders.md b/docs/infra/cq_builders.md
index 5b43151..a5f14c9 100644
--- a/docs/infra/cq_builders.md
+++ b/docs/infra/cq_builders.md
@@ -319,12 +319,6 @@
 
   * Experimental percentage: 10
 
-* [linux-goma-rbe-staging-rel](https://ci.chromium.org/p/chromium/builders/luci.chromium.try/linux-goma-rbe-staging-rel) ([`commit-queue.cfg` entry](https://cs.chromium.org/search/?q=package:%5Echromium$+file:commit-queue.cfg+chromium/try/linux-goma-rbe-staging-rel)) ([matching builders](https://cs.chromium.org/search/?q=file:trybots.py+linux-goma-rbe-staging-rel))
-
-  https://crbug.com/855319
-
-  * Experimental percentage: 40
-
 * [win7_chromium_rel_loc_exp](https://ci.chromium.org/p/chromium/builders/luci.chromium.try/win7_chromium_rel_loc_exp) ([`commit-queue.cfg` entry](https://cs.chromium.org/search/?q=package:%5Echromium$+file:commit-queue.cfg+chromium/try/win7_chromium_rel_loc_exp)) ([matching builders](https://cs.chromium.org/search/?q=file:trybots.py+win7_chromium_rel_loc_exp))
 
   * Experimental percentage: 20
diff --git a/docs/testing/writing_js_unit_tests.md b/docs/testing/writing_js_unit_tests.md
index 50ad875..522f754 100644
--- a/docs/testing/writing_js_unit_tests.md
+++ b/docs/testing/writing_js_unit_tests.md
@@ -28,23 +28,21 @@
   'awesome.js'  // Include the file under test.
 ]);
 
-function AwesomeUnitTest() {}
-
-AwesomeUnitTest.prototype = {
-  __proto__: testing.Test.prototype
-};
+AwesomeUnitTest = class extends testing.Test {}
 
 const EXPECTED_AWESOME_NUMBER = 1e6;
 
-TEST_F(AwesomeUnitTest, 'HowAwesomeExactly', function () {
+TEST_F('AwesomeUnitTest', 'HowAwesomeExactly', function () {
   // Some asserts to make sure the file under test is working as expected.
   assertEquals(EXPECTED_AWESOME_NUMBER, awesome.find_awesome_number(), 'If this fails, contact Larry');
 });
 ```
 
-Since ECMAScript 6, there is an alternative but equivalent syntax that uses the
-class keyword instead of prototype. Codesearch shows that existing unitjs tests
-use either syntax.
+Note: This example shows the shorter way of writing a test, using the class
+keyword (available since ECMAScript 6). There is an alternative but equivalent
+syntax that uses the prototype keyword instead, which has a bit more
+boilerplate. Codesearch shows that the prototype has been used more often in
+the past, but prefer to use the shorter class syntax going forward.
 
 ### Writing the BUILD rules
 
@@ -104,7 +102,7 @@
   'awesome.js',
 ]);
 
-function AwesomeUnitTest() {}
+AwesomeUnitTest = class extends testing.Test {}
 // ... etc ...
 ```
 
@@ -124,6 +122,12 @@
 # ... etc ...
 ```
 
+See
+[SamlTimestampsTest](https://cs.chromium.org/chromium/src/chrome/browser/resources/chromeos/login/saml_timestamps_test.unitjs?q=//ui/webui/resources/js/cr.js)
+and its
+[BUILD rule](https://cs.chromium.org/chromium/src/chrome/browser/resources/chromeos/login/BUILD.gn?q=//ui/webui/resources/js/cr.js)
+for an example of how it includes the `cr.js` library.
+
 ## Testing JS code which depends on the browser / the DOM {#browser-dep}
 
 The tests above are run using a V8 interpreter. However, they are not run from
@@ -136,10 +140,9 @@
 XML parser to be available.
 
 If you are creating an web-based UI, what you are now writing is called a
-`webui` test. Ideally, you should read documentation specifically for writing
-and testing web UI components.
-
-FIXME: Is there any documentation for writing and testing web UI components?
+`webui` test. This document is about how to write JS unit tests generally -
+to test UI in particular, see
+[Testing WebUI with Mocha](https://www.chromium.org/developers/updating-webui-for-material-design/testing-webui-with-mocha).
 
 If on the other hand, you are writing some JS functionality that just happens to
 use a feature that is part of the browser, and not the language (such as the XML
@@ -147,20 +150,25 @@
 best-practice is to write your unit test as before, but to declare it as a
 `webui` test and add it to the `browser_tests` build rule. Ideally there would
 be a different category for unit tests that don't have any UI and so aren't
-webui, but simply need a particular browser feature, but using `webui` works for
+webui, but simply need a particular browser feature, but using webui works for
 now.
 
 ### Changes to your test to make it a webui test
 
-```js {highlight="lines:4,7"}
-AwesomeUnitTest.prototype = {
-  __proto__: testing.Test.prototype,
+```js
+AwesomeUnitTest = class extends testing.Test {
 
-  browsePreload: DUMMY_URL,
+  /** @override */
+  get browsePreload() {
+    return DUMMY_URL;
+  }
 
   // No need to run these checks unless you are testing an actual user interface.
-  runAccessibilityChecks: false,
-};
+  /** @override */
+  get runAccessibilityChecks() {
+    return false;
+  }
+}
 ```
 
 ### Changes to your build rule to make it a webui test
diff --git a/extensions/browser/api/serial/serial_api.cc b/extensions/browser/api/serial/serial_api.cc
index 98b5f7aa..d5a04f3 100644
--- a/extensions/browser/api/serial/serial_api.cc
+++ b/extensions/browser/api/serial/serial_api.cc
@@ -172,7 +172,7 @@
     // If a SerialConnection encountered a mojo connection error, it just
     // becomes useless, we won't try to re-connect it but just remove it
     // completely.
-    GetSerialConnection(id)->set_connection_error_handler(base::BindOnce(
+    GetSerialConnection(id)->SetConnectionErrorHandler(base::BindOnce(
         [](scoped_refptr<ApiResourceManager<SerialConnection>::ApiResourceData>
                connections,
            std::string extension_id, int api_resource_id) {
@@ -320,7 +320,7 @@
   }
 
   if (params_->paused != connection->paused()) {
-    connection->set_paused(params_->paused);
+    connection->SetPaused(params_->paused);
   }
 
   results_ = serial::SetPaused::Results::Create();
diff --git a/extensions/browser/api/serial/serial_connection.cc b/extensions/browser/api/serial/serial_connection.cc
index 0e337f2..0a2f010 100644
--- a/extensions/browser/api/serial/serial_connection.cc
+++ b/extensions/browser/api/serial/serial_connection.cc
@@ -205,7 +205,7 @@
   send_timeout_ = send_timeout;
 }
 
-void SerialConnection::set_paused(bool paused) {
+void SerialConnection::SetPaused(bool paused) {
   DCHECK(serial_port_);
   if (paused_ == paused)
     return;
@@ -225,7 +225,7 @@
   }
 }
 
-void SerialConnection::set_connection_error_handler(
+void SerialConnection::SetConnectionErrorHandler(
     base::OnceClosure connection_error_handler) {
   if (serial_port_.encountered_error()) {
     // Already being disconnected, run client's error handler immediatelly.
@@ -397,7 +397,7 @@
   DCHECK(receive_event_cb_);
   DCHECK(receive_pipe_);
   DCHECK(paused_);
-  set_paused(false);
+  SetPaused(false);
 }
 
 bool SerialConnection::Send(const std::vector<uint8_t>& data,
diff --git a/extensions/browser/api/serial/serial_connection.h b/extensions/browser/api/serial/serial_connection.h
index 4e57c80..22b4a0a 100644
--- a/extensions/browser/api/serial/serial_connection.h
+++ b/extensions/browser/api/serial/serial_connection.h
@@ -91,10 +91,10 @@
   void set_send_timeout(int send_timeout);
   int send_timeout() const { return send_timeout_; }
 
-  void set_paused(bool paused);
+  void SetPaused(bool paused);
   bool paused() const { return paused_; }
 
-  void set_connection_error_handler(base::OnceClosure connection_error_handler);
+  void SetConnectionErrorHandler(base::OnceClosure connection_error_handler);
 
   // Initiates an asynchronous Open of the device. It is the caller's
   // responsibility to ensure that this SerialConnection stays alive
diff --git a/extensions/browser/api/serial/serial_port_manager.cc b/extensions/browser/api/serial/serial_port_manager.cc
index f47311b..85a8507 100644
--- a/extensions/browser/api/serial/serial_port_manager.cc
+++ b/extensions/browser/api/serial/serial_port_manager.cc
@@ -137,7 +137,7 @@
       SerialConnection* connection =
           params.connections->Get(params.extension_id, params.connection_id);
       if (connection)
-        connection->set_paused(true);
+        connection->SetPaused(true);
     }
   }
 }
diff --git a/extensions/browser/api/storage/storage_frontend.cc b/extensions/browser/api/storage/storage_frontend.cc
index a536670..49a67a1 100644
--- a/extensions/browser/api/storage/storage_frontend.cc
+++ b/extensions/browser/api/storage/storage_frontend.cc
@@ -161,8 +161,9 @@
 
 ValueStoreCache* StorageFrontend::GetValueStoreCache(
     settings_namespace::Namespace settings_namespace) const {
-  // TODO(crbug.com/933874): DCHECK for BrowserThread::UI once the old codepath,
-  // including GetSyncableService() is deleted.
+  // TODO(crbug.com/933874): We should DCHECK for BrowserThread::UI here, but
+  // currently that breaks ExtensionSettingsSyncTest which calls this on the
+  // backend sequence.
   auto it = caches_.find(settings_namespace);
   if (it != caches_.end())
     return it->second;
diff --git a/extensions/browser/api/webcam_private/visca_webcam.cc b/extensions/browser/api/webcam_private/visca_webcam.cc
index 99ce663..83455202 100644
--- a/extensions/browser/api/webcam_private/visca_webcam.cc
+++ b/extensions/browser/api/webcam_private/visca_webcam.cc
@@ -290,7 +290,7 @@
     response.swap(data_buffer_);
     base::PostTaskWithTraits(FROM_HERE, {BrowserThread::UI},
                              base::BindOnce(callback, false, response));
-    serial_connection_->set_paused(true);
+    serial_connection_->SetPaused(true);
     return;
   }
 
@@ -308,13 +308,13 @@
       (static_cast<int>(response[1]) & 0xF0) == kViscaResponseError) {
     base::PostTaskWithTraits(FROM_HERE, {BrowserThread::UI},
                              base::BindOnce(callback, false, response));
-    serial_connection_->set_paused(true);
+    serial_connection_->SetPaused(true);
   } else if ((static_cast<int>(response[1]) & 0xF0) != kViscaResponseAck &&
              (static_cast<int>(response[1]) & 0xFF) !=
                  kViscaResponseNetworkChange) {
     base::PostTaskWithTraits(FROM_HERE, {BrowserThread::UI},
                              base::BindOnce(callback, true, response));
-    serial_connection_->set_paused(true);
+    serial_connection_->SetPaused(true);
   }
 }
 
diff --git a/extensions/browser/api/webcam_private/visca_webcam_unittest.cc b/extensions/browser/api/webcam_private/visca_webcam_unittest.cc
index cb2cb1e..30a9f5e 100644
--- a/extensions/browser/api/webcam_private/visca_webcam_unittest.cc
+++ b/extensions/browser/api/webcam_private/visca_webcam_unittest.cc
@@ -40,7 +40,7 @@
   }
 
   void StartPolling(const ReceiveEventCallback& callback) override {
-    set_paused(false);
+    SetPaused(false);
     callback.Run(std::move(receive_buffer_), api::serial::RECEIVE_ERROR_NONE);
     receive_buffer_.clear();
   }
diff --git a/google_apis/BUILD.gn b/google_apis/BUILD.gn
index e343daf..84abf02 100644
--- a/google_apis/BUILD.gn
+++ b/google_apis/BUILD.gn
@@ -110,6 +110,8 @@
       "gaia/oauth2_access_token_fetcher_immediate_error.h",
       "gaia/oauth2_access_token_fetcher_impl.cc",
       "gaia/oauth2_access_token_fetcher_impl.h",
+      "gaia/oauth2_access_token_manager.cc",
+      "gaia/oauth2_access_token_manager.h",
       "gaia/oauth2_api_call_flow.cc",
       "gaia/oauth2_api_call_flow.h",
       "gaia/oauth2_id_token_decoder.cc",
diff --git a/google_apis/gaia/OWNERS b/google_apis/gaia/OWNERS
index c14b79e..753faee 100644
--- a/google_apis/gaia/OWNERS
+++ b/google_apis/gaia/OWNERS
@@ -2,4 +2,8 @@
 msarda@chromium.org
 rogerta@chromium.org
 
+# Solely for the duration of the refactoring of OAuth2TokenService
+# (https://crbug.com/950159). Do not choose for any other reviews.
+blundell@chromium.org
+
 # COMPONENT: Services>SignIn
diff --git a/google_apis/gaia/core_account_id.h b/google_apis/gaia/core_account_id.h
index c2d1911..af5c138 100644
--- a/google_apis/gaia/core_account_id.h
+++ b/google_apis/gaia/core_account_id.h
@@ -45,4 +45,13 @@
 
 std::ostream& operator<<(std::ostream& out, const CoreAccountId& a);
 
+namespace std {
+template <>
+struct hash<CoreAccountId> {
+  size_t operator()(const CoreAccountId& account_id) const {
+    return std::hash<std::string>()(account_id.id);
+  }
+};
+}  // namespace std
+
 #endif  // GOOGLE_APIS_GAIA_CORE_ACCOUNT_ID_H_
diff --git a/google_apis/gaia/oauth2_access_token_manager.cc b/google_apis/gaia/oauth2_access_token_manager.cc
new file mode 100644
index 0000000..4373c650
--- /dev/null
+++ b/google_apis/gaia/oauth2_access_token_manager.cc
@@ -0,0 +1,37 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "google_apis/gaia/oauth2_access_token_manager.h"
+
+#include "base/time/time.h"
+
+OAuth2AccessTokenManager::OAuth2AccessTokenManager() = default;
+
+OAuth2AccessTokenManager::~OAuth2AccessTokenManager() = default;
+
+void OAuth2AccessTokenManager::RegisterTokenResponse(
+    const std::string& client_id,
+    const CoreAccountId& account_id,
+    const OAuth2TokenService::ScopeSet& scopes,
+    const OAuth2AccessTokenConsumer::TokenResponse& token_response) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+
+  token_cache_[OAuth2TokenService::RequestParameters(client_id, account_id,
+                                                     scopes)] = token_response;
+}
+
+const OAuth2AccessTokenConsumer::TokenResponse*
+OAuth2AccessTokenManager::GetCachedTokenResponse(
+    const OAuth2TokenService::RequestParameters& request_parameters) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  OAuth2TokenService::TokenCache::iterator token_iterator =
+      token_cache_.find(request_parameters);
+  if (token_iterator == token_cache_.end())
+    return nullptr;
+  if (token_iterator->second.expiration_time <= base::Time::Now()) {
+    token_cache_.erase(token_iterator);
+    return nullptr;
+  }
+  return &token_iterator->second;
+}
diff --git a/google_apis/gaia/oauth2_access_token_manager.h b/google_apis/gaia/oauth2_access_token_manager.h
new file mode 100644
index 0000000..c808466
--- /dev/null
+++ b/google_apis/gaia/oauth2_access_token_manager.h
@@ -0,0 +1,50 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef GOOGLE_APIS_GAIA_OAUTH2_ACCESS_TOKEN_MANAGER_H_
+#define GOOGLE_APIS_GAIA_OAUTH2_ACCESS_TOKEN_MANAGER_H_
+
+#include "base/sequence_checker.h"
+#include "google_apis/gaia/core_account_id.h"
+#include "google_apis/gaia/oauth2_access_token_consumer.h"
+// TODO(https://crbug.com/967598): Remove this once OAuth2AccessTokenManager's
+// separated from OAuth2TokenService.
+#include "google_apis/gaia/oauth2_token_service.h"
+
+// Class that manages requests for OAuth2 access tokens.
+class OAuth2AccessTokenManager {
+ public:
+  OAuth2AccessTokenManager();
+  virtual ~OAuth2AccessTokenManager();
+
+  // Add a new entry to the cache.
+  void RegisterTokenResponse(
+      const std::string& client_id,
+      const CoreAccountId& account_id,
+      const OAuth2TokenService::ScopeSet& scopes,
+      const OAuth2AccessTokenConsumer::TokenResponse& token_response);
+
+  // Returns a currently valid OAuth2 access token for the given set of scopes,
+  // or NULL if none have been cached. Note the user of this method should
+  // ensure no entry with the same |client_scopes| is added before the usage of
+  // the returned entry is done.
+  const OAuth2AccessTokenConsumer::TokenResponse* GetCachedTokenResponse(
+      const OAuth2TokenService::RequestParameters& client_scopes);
+
+ private:
+  // TODO(https://crbug.com/967598): Remove this once |token_cache_| management
+  // is moved to OAuth2AccessTokenManager.
+  friend class OAuth2TokenService;
+
+  OAuth2TokenService::TokenCache& token_cache() { return token_cache_; }
+
+  // The cache of currently valid tokens.
+  OAuth2TokenService::TokenCache token_cache_;
+
+  SEQUENCE_CHECKER(sequence_checker_);
+
+  DISALLOW_COPY_AND_ASSIGN(OAuth2AccessTokenManager);
+};
+
+#endif  // GOOGLE_APIS_GAIA_OAUTH2_ACCESS_TOKEN_MANAGER_H_
diff --git a/google_apis/gaia/oauth2_token_service.cc b/google_apis/gaia/oauth2_token_service.cc
index 7a7a8702..87f998b 100644
--- a/google_apis/gaia/oauth2_token_service.cc
+++ b/google_apis/gaia/oauth2_token_service.cc
@@ -23,6 +23,7 @@
 #include "google_apis/gaia/gaia_urls.h"
 #include "google_apis/gaia/google_service_auth_error.h"
 #include "google_apis/gaia/oauth2_access_token_fetcher_impl.h"
+#include "google_apis/gaia/oauth2_access_token_manager.h"
 #include "google_apis/gaia/oauth2_token_service_delegate.h"
 #include "services/network/public/cpp/shared_url_loader_factory.h"
 
@@ -393,6 +394,7 @@
     : delegate_(std::move(delegate)), all_credentials_loaded_(false) {
   DCHECK(delegate_);
   AddObserver(this);
+  token_manager_ = std::make_unique<OAuth2AccessTokenManager>();
 }
 
 OAuth2TokenService::~OAuth2TokenService() {
@@ -410,6 +412,10 @@
   return delegate_.get();
 }
 
+OAuth2TokenService::TokenCache& OAuth2TokenService::token_cache() {
+  return token_manager_->token_cache();
+}
+
 void OAuth2TokenService::AddObserver(OAuth2TokenServiceObserver* observer) {
   delegate_->AddObserver(observer);
 }
@@ -718,28 +724,21 @@
 OAuth2TokenService::GetCachedTokenResponse(
     const RequestParameters& request_parameters) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  TokenCache::iterator token_iterator = token_cache_.find(request_parameters);
-  if (token_iterator == token_cache_.end())
-    return nullptr;
-  if (token_iterator->second.expiration_time <= base::Time::Now()) {
-    token_cache_.erase(token_iterator);
-    return nullptr;
-  }
-  return &token_iterator->second;
+  return token_manager_->GetCachedTokenResponse(request_parameters);
 }
 
 bool OAuth2TokenService::RemoveCachedTokenResponse(
     const RequestParameters& request_parameters,
     const std::string& token_to_remove) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  TokenCache::iterator token_iterator = token_cache_.find(request_parameters);
-  if (token_iterator != token_cache_.end() &&
+  TokenCache::iterator token_iterator = token_cache().find(request_parameters);
+  if (token_iterator != token_cache().end() &&
       token_iterator->second.access_token == token_to_remove) {
     for (auto& observer : diagnostics_observer_list_) {
       observer.OnAccessTokenRemoved(request_parameters.account_id,
                                     request_parameters.scopes);
     }
-    token_cache_.erase(token_iterator);
+    token_cache().erase(token_iterator);
     return true;
   }
   return false;
@@ -760,30 +759,29 @@
     const ScopeSet& scopes,
     const OAuth2AccessTokenConsumer::TokenResponse& token_response) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-
-  token_cache_[RequestParameters(client_id, account_id, scopes)] =
-      token_response;
+  token_manager_->RegisterTokenResponse(client_id, account_id, scopes,
+                                        token_response);
 }
 
 void OAuth2TokenService::ClearCache() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  for (const auto& entry : token_cache_) {
+  for (const auto& entry : token_cache()) {
     for (auto& observer : diagnostics_observer_list_)
       observer.OnAccessTokenRemoved(entry.first.account_id, entry.first.scopes);
   }
 
-  token_cache_.clear();
+  token_cache().clear();
 }
 
 void OAuth2TokenService::ClearCacheForAccount(const CoreAccountId& account_id) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  for (TokenCache::iterator iter = token_cache_.begin();
-       iter != token_cache_.end();
+  for (TokenCache::iterator iter = token_cache().begin();
+       iter != token_cache().end();
        /* iter incremented in body */) {
     if (iter->first.account_id == account_id) {
       for (auto& observer : diagnostics_observer_list_)
         observer.OnAccessTokenRemoved(account_id, iter->first.scopes);
-      token_cache_.erase(iter++);
+      token_cache().erase(iter++);
     } else {
       ++iter;
     }
diff --git a/google_apis/gaia/oauth2_token_service.h b/google_apis/gaia/oauth2_token_service.h
index e51f108..4e29c5c 100644
--- a/google_apis/gaia/oauth2_token_service.h
+++ b/google_apis/gaia/oauth2_token_service.h
@@ -30,13 +30,10 @@
 class SharedURLLoaderFactory;
 }
 
-namespace network {
-class SharedURLLoaderFactory;
-}
-
 class GoogleServiceAuthError;
 class OAuth2AccessTokenFetcher;
 class OAuth2TokenServiceDelegate;
+class OAuth2AccessTokenManager;
 
 // Abstract base class for a service that fetches and caches OAuth2 access
 // tokens. Concrete subclasses should implement GetRefreshToken to return
@@ -130,6 +127,25 @@
         const std::string& source) {}
   };
 
+  // The parameters used to fetch an OAuth2 access token.
+  struct RequestParameters {
+    RequestParameters(const std::string& client_id,
+                      const std::string& account_id,
+                      const ScopeSet& scopes);
+    RequestParameters(const RequestParameters& other);
+    ~RequestParameters();
+    bool operator<(const RequestParameters& params) const;
+
+    // OAuth2 client id.
+    std::string client_id;
+    // Account id for which the request is made.
+    std::string account_id;
+    // URL scopes for the requested access token.
+    ScopeSet scopes;
+  };
+  typedef std::map<RequestParameters, OAuth2AccessTokenConsumer::TokenResponse>
+      TokenCache;
+
   explicit OAuth2TokenService(
       std::unique_ptr<OAuth2TokenServiceDelegate> delegate);
   ~OAuth2TokenService() override;
@@ -239,6 +255,10 @@
   OAuth2TokenServiceDelegate* GetDelegate();
   const OAuth2TokenServiceDelegate* GetDelegate() const;
 
+  // TODO(https://crbug.com/967598): Remove this. It's opened only for
+  // OAuth2TokenServiceTest.
+  OAuth2TokenService::TokenCache& token_cache();
+
  protected:
   // Implements a cancelable |OAuth2TokenService::Request|, which should be
   // operated on the UI thread.
@@ -334,23 +354,6 @@
   friend class Fetcher;
   friend class OAuth2TokenServiceDelegate;
 
-  // The parameters used to fetch an OAuth2 access token.
-  struct RequestParameters {
-    RequestParameters(const std::string& client_id,
-                      const std::string& account_id,
-                      const ScopeSet& scopes);
-    RequestParameters(const RequestParameters& other);
-    ~RequestParameters();
-    bool operator<(const RequestParameters& params) const;
-
-    // OAuth2 client id.
-    std::string client_id;
-    // Account id for which the request is made.
-    std::string account_id;
-    // URL scopes for the requested access token.
-    ScopeSet scopes;
-  };
-
   // Provide a URLLoaderFactory used for fetching access tokens with the
   // |StartRequest| method.
   scoped_refptr<network::SharedURLLoaderFactory> GetURLLoaderFactory() const;
@@ -390,11 +393,6 @@
   // Called when a number of fetchers need to be canceled.
   void CancelFetchers(std::vector<Fetcher*> fetchers_to_cancel);
 
-  // The cache of currently valid tokens.
-  typedef std::map<RequestParameters, OAuth2AccessTokenConsumer::TokenResponse>
-      TokenCache;
-  TokenCache token_cache_;
-
   std::unique_ptr<OAuth2TokenServiceDelegate> delegate_;
 
   // A map from fetch parameters to a fetcher that is fetching an OAuth2 access
@@ -411,6 +409,8 @@
   // Whether all credentials have been loaded.
   bool all_credentials_loaded_;
 
+  std::unique_ptr<OAuth2AccessTokenManager> token_manager_;
+
   // Maximum number of retries in fetching an OAuth2 access token.
   static int max_fetch_retry_num_;
 
diff --git a/google_apis/gaia/oauth2_token_service_unittest.cc b/google_apis/gaia/oauth2_token_service_unittest.cc
index 582a763..23230ff 100644
--- a/google_apis/gaia/oauth2_token_service_unittest.cc
+++ b/google_apis/gaia/oauth2_token_service_unittest.cc
@@ -810,11 +810,11 @@
   EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
   EXPECT_EQ(0, consumer_.number_of_errors_);
   EXPECT_EQ("token", consumer_.last_token_);
-  EXPECT_EQ(1, (int)oauth2_service_->token_cache_.size());
+  EXPECT_EQ(1, (int)oauth2_service_->token_cache().size());
 
   oauth2_service_->ClearCache();
 
-  EXPECT_EQ(0, (int)oauth2_service_->token_cache_.size());
+  EXPECT_EQ(0, (int)oauth2_service_->token_cache().size());
   oauth2_service_->GetFakeOAuth2TokenServiceDelegate()->UpdateCredentials(
       kEmail, "refreshToken");
   SimulateOAuthTokenResponse(GetValidTokenResponse("another token", 3600));
@@ -823,7 +823,7 @@
   EXPECT_EQ(2, consumer_.number_of_successful_tokens_);
   EXPECT_EQ(0, consumer_.number_of_errors_);
   EXPECT_EQ("another token", consumer_.last_token_);
-  EXPECT_EQ(1, (int)oauth2_service_->token_cache_.size());
+  EXPECT_EQ(1, (int)oauth2_service_->token_cache().size());
 }
 
 TEST_F(OAuth2TokenServiceTest, FixRequestErrorIfPossible) {
diff --git a/infra/config/commit-queue.cfg b/infra/config/commit-queue.cfg
index 389193c..a314f74 100644
--- a/infra/config/commit-queue.cfg
+++ b/infra/config/commit-queue.cfg
@@ -362,11 +362,6 @@
         name: "chromium/try/linux-coverage-rel"
         experiment_percentage: 10
       }
-      # https://crbug.com/855319
-      builders {
-        name: "chromium/try/linux-goma-rbe-staging-rel"
-        experiment_percentage: 40
-      }
       builders {
         name: "chromium/try/win7_chromium_rel_loc_exp"
         experiment_percentage: 20
diff --git a/infra/config/cr-buildbucket.cfg b/infra/config/cr-buildbucket.cfg
index 25216a81..255cf3b 100644
--- a/infra/config/cr-buildbucket.cfg
+++ b/infra/config/cr-buildbucket.cfg
@@ -429,6 +429,7 @@
   mixins: "clang-ci"
   mixins: "mac"
   dimensions: "cores:24"
+  dimensions: "ssd:1"
 }
 
 builder_mixins {
@@ -905,6 +906,7 @@
   name: "builderless"
   auto_builder_dimension: NO
   dimensions: "builderless:1"
+  dimensions: "ssd:0"
 }
 
 buckets {
@@ -1490,6 +1492,8 @@
     builders {
       name: "Leak Detection Linux"
       mixins: "linux-ci-goma-rbe-prod"
+      mixins: "linux-xenial"
+      mixins: "builderless"
     }
 
     builders {
@@ -1511,6 +1515,8 @@
       name: "Linux ASan Tests (sandboxed)"
       mixins: "linux"
       mixins: "memory-ci"
+      mixins: "linux-xenial"
+      mixins: "builderless"
     }
 
     builders {
@@ -1529,8 +1535,9 @@
 
     builders {
       name: "linux-blink-animation-use-time-delta"
-      dimensions: "os:Ubuntu-14.04"
       mixins: "fyi-ci"
+      mixins: "linux-xenial"
+      mixins: "builderless"
     }
 
     builders {
@@ -1544,17 +1551,23 @@
       name: "linux-blink-heap-verification"
       mixins: "fyi-ci"
       mixins: "linux"
+      mixins: "linux-xenial"
+      mixins: "builderless"
     }
 
     builders {
       name: "linux-blink-heap-unified-gc"
       mixins: "fyi-ci"
       mixins: "linux"
+      mixins: "linux-xenial"
+      mixins: "builderless"
     }
 
     builders {
       name: "linux_chromium_component_updater"
       mixins: "linux-ci"
+      mixins: "linux-xenial"
+      mixins: "builderless"
       recipe {
         name: "findit/chromium/update_components"
       }
@@ -1565,17 +1578,23 @@
       name: "linux-chromium-tests-staging-builder"
       mixins: "fyi-ci"
       mixins: "linux"
+      mixins: "linux-xenial"
+      mixins: "builderless"
     }
 
     builders {
       name: "linux-chromium-tests-staging-tests"
       mixins: "fyi-ci"
       mixins: "linux"
+      mixins: "linux-xenial"
+      mixins: "builderless"
     }
 
     builders {
       name: "linux-gcc-rel"
       mixins: "linux-ci"
+      mixins: "linux-xenial"
+      mixins: "builderless"
     }
 
     builders {
@@ -1588,6 +1607,8 @@
     builders {
       name: "linux-ozone-rel"
       mixins: "linux-ci"
+      mixins: "linux-xenial"
+      mixins: "builderless"
     }
 
     builders {
@@ -1620,6 +1641,8 @@
     builders {
       name: "Linux Tests (dbg)(1)(32)"
       mixins: "linux-ci"
+      mixins: "linux-xenial"
+      mixins: "builderless"
     }
 
     builders {
@@ -2456,8 +2479,9 @@
     }
     builders {
       name: "WebKit Linux MSAN"
-      dimensions: "os:Ubuntu-14.04"
       mixins: "memory-ci-goma-rbe-prod"
+      mixins: "linux-xenial"
+      mixins: "builderless"
     }
     builders {
       name: "Mac ASAN Release Media"
@@ -2491,8 +2515,9 @@
     }
     builders {
       name: "WebKit Linux ASAN"
-      dimensions: "os:Ubuntu-14.04"
       mixins: "memory-ci-goma-rbe-prod"
+      mixins: "linux-xenial"
+      mixins: "builderless"
     }
     builders {
       name: "Libfuzzer Upload Mac ASan"
@@ -2555,8 +2580,9 @@
     }
     builders {
       name: "WebKit Linux Leak"
-      dimensions: "os:Ubuntu-14.04"
       mixins: "memory-ci-goma-rbe-prod"
+      mixins: "linux-xenial"
+      mixins: "builderless"
     }
     builders {
       name: "Linux ChromiumOS MSan Tests"
@@ -2742,10 +2768,11 @@
     }
     builders {
       name: "linux-archive-dbg"
-      dimensions: "os:Ubuntu-14.04"
       # Bump to 32 if needed.
       dimensions: "cores:8"
       mixins: "chromium-ci"
+      mixins: "linux-xenial"
+      mixins: "builderless"
     }
     builders {
       name: "linux-archive-rel"
@@ -3791,7 +3818,12 @@
       name: "linux-chromeos-rel"
     }
 
-    builders { mixins: "linux-try" name: "cast_shell_audio_linux" }
+    builders {
+      mixins: "linux-try"
+      name: "cast_shell_audio_linux"
+      mixins: "linux-xenial"
+      mixins: "builderless"
+    }
     builders {
       mixins: "linux-try"
       name: "cast_shell_linux"
@@ -3816,6 +3848,8 @@
       recipe {
         name: "closure_compilation"
       }
+      mixins: "linux-xenial"
+      mixins: "builderless"
     }
 
     builders { mixins: "linux-dawn-try" name: "dawn-linux-x64-deps-rel" }
@@ -3898,6 +3932,8 @@
       mixins: "linux-try"
       mixins: "goma-rbe-prod"
       name: "leak_detection_linux"
+      mixins: "linux-xenial"
+      mixins: "builderless"
     }
     builders { mixins: "linux-angle-try" name: "fuchsia-angle-rel" }
     builders {
@@ -3917,20 +3953,24 @@
       mixins: "linux-try"
       name: "linux-blink-heap-concurrent-marking-tsan-rel"
     }
-    builders { mixins: "linux-try" name: "linux-blink-heap-verification-try" }
+    builders {
+      mixins: "linux-try"
+      name: "linux-blink-heap-verification-try"
+      mixins: "linux-xenial"
+      mixins: "builderless"
+    }
     builders {
       mixins: "linux-try"
       mixins: "goma-rbe-prod"
       name: "linux-dcheck-off-rel"
-    }
-    builders {
-      mixins: "linux-try"
-      mixins: "goma-j150"
-      name: "linux-goma-rbe-staging-rel"
+      mixins: "linux-xenial"
+      mixins: "builderless"
     }
     builders {
       mixins: "linux-try"
       name: "linux-gcc-rel"
+      mixins: "linux-xenial"
+      mixins: "builderless"
     }
     builders {
       mixins: "linux-try"
@@ -3956,14 +3996,28 @@
       mixins: "linux-try"
       mixins: "goma-rbe-prod"
       name: "linux-webkit-msan-rel"
+      mixins: "linux-xenial"
+      mixins: "builderless"
     }
     builders {
       mixins: "linux-try"
       mixins: "goma-rbe-prod-ats"
       name: "linux_arm"
+      mixins: "linux-xenial"
+      mixins: "builderless"
     }
-    builders { mixins: "linux-try" name: "linux_chromium_analysis" }
-    builders { mixins: "linux-try" name: "linux_chromium_archive_rel_ng" }
+    builders {
+      mixins: "linux-try"
+      name: "linux_chromium_analysis"
+      mixins: "linux-xenial"
+      mixins: "builderless"
+    }
+    builders {
+      mixins: "linux-try"
+      name: "linux_chromium_archive_rel_ng"
+      mixins: "linux-xenial"
+      mixins: "builderless"
+    }
     builders {
       mixins: "linux-try"
       mixins: "linux-xenial"
@@ -3994,9 +4048,21 @@
       name: "linux_chromium_clobber_deterministic",
       mixins: "linux-try"
       mixins: "deterministic"
+      mixins: "linux-xenial"
+      mixins: "builderless"
     }
-    builders { mixins: "linux-try" name: "linux_chromium_clobber_rel_ng" }
-    builders { mixins: "linux-try" name: "linux_chromium_compile_dbg_32_ng" }
+    builders {
+      mixins: "linux-try"
+      name: "linux_chromium_clobber_rel_ng"
+      mixins: "linux-xenial"
+      mixins: "builderless"
+    }
+    builders {
+      mixins: "linux-try"
+      name: "linux_chromium_compile_dbg_32_ng"
+      mixins: "linux-xenial"
+      mixins: "builderless"
+    }
     builders {
       mixins: "linux-try"
       mixins: "linux-debug-cache"
@@ -4009,11 +4075,15 @@
       mixins: "linux-try"
       mixins: "goma-rbe-prod"
       name: "linux_chromium_compile_rel_ng"
+      mixins: "linux-xenial"
+      mixins: "builderless"
     }
     builders {
       mixins: "linux-try"
       mixins: "goma-rbe-prod"
       name: "linux_chromium_dbg_32_ng"
+      mixins: "linux-xenial"
+      mixins: "builderless"
     }
     builders {
       mixins: "builderless"
@@ -4027,11 +4097,15 @@
       mixins: "linux-try"
       mixins: "goma-rbe-prod-j150"
       name: "linux_chromium_msan_rel_ng"
+      mixins: "linux-xenial"
+      mixins: "builderless"
     }
     builders {
       mixins: "linux-try"
       mixins: "goma-j150"
       name: "linux-coverage-rel"
+      mixins: "linux-xenial"
+      mixins: "builderless"
     }
     builders {
       mixins: "linux-try"
@@ -4047,18 +4121,35 @@
       mixins: "builderless"
       name: "linux_chromium_tsan_rel_ng"
     }
-    builders { mixins: "linux-try" name: "linux_chromium_ubsan_rel_ng" }
+    builders {
+      mixins: "linux-try"
+      name: "linux_chromium_ubsan_rel_ng"
+      mixins: "linux-xenial"
+      mixins: "builderless"
+    }
     builders {
       mixins: "linux-dawn-try"
       mixins: "goma-rbe-prod"
       name: "linux-dawn-rel"
     }
-    builders { mixins: "linux-try" name: "linux_layout_tests_composite_after_paint" }
-    builders { mixins: "linux-try" name: "linux_layout_tests_layout_ng" }
+    builders {
+      mixins: "linux-try"
+      name: "linux_layout_tests_composite_after_paint"
+      mixins: "linux-xenial"
+      mixins: "builderless"
+    }
+    builders {
+      mixins: "linux-try"
+      name: "linux_layout_tests_layout_ng"
+      mixins: "linux-xenial"
+      mixins: "builderless"
+    }
     builders {
       mixins: "linux-try"
       mixins: "goma-rbe-prod"
       name: "linux_mojo"
+      mixins: "linux-xenial"
+      mixins: "builderless"
     }
     builders {
       mixins: "linux-try"
@@ -4344,14 +4435,16 @@
     }
     builders {
       name: "linux-annotator-rel"
-      dimensions: "os:Ubuntu-14.04"
       mixins: "linux-try"
+      mixins: "linux-xenial"
+      mixins: "builderless"
     }
     builders {
       name: "linux_vr"
-      dimensions: "os:Ubuntu-14.04"
       mixins: "linux-try"
       mixins: "goma-rbe-prod"
+      mixins: "linux-xenial"
+      mixins: "builderless"
     }
     builders {
       name: "android_compile_rel"
@@ -4379,9 +4472,10 @@
     }
     builders {
       name: "layout_test_leak_detection"
-      dimensions: "os:Ubuntu-14.04"
       mixins: "linux-try"
       mixins: "goma-rbe-prod"
+      mixins: "linux-xenial"
+      mixins: "builderless"
     }
     builders {
       name: "android_cfi_rel_ng"
diff --git a/infra/config/luci-milo.cfg b/infra/config/luci-milo.cfg
index 52ef6cae..944c6ed 100644
--- a/infra/config/luci-milo.cfg
+++ b/infra/config/luci-milo.cfg
@@ -4182,9 +4182,6 @@
     name: "buildbucket/luci.chromium.try/linux-gcc-rel"
   }
   builders {
-    name: "buildbucket/luci.chromium.try/linux-goma-rbe-staging-rel"
-  }
-  builders {
     name: "buildbucket/luci.chromium.try/linux-libfuzzer-asan-rel"
   }
   builders {
diff --git a/ios/chrome/app/main_controller.mm b/ios/chrome/app/main_controller.mm
index 5122e1c..b0b65df4 100644
--- a/ios/chrome/app/main_controller.mm
+++ b/ios/chrome/app/main_controller.mm
@@ -1683,10 +1683,6 @@
     baseViewController = self.currentBVC;
   }
   DCHECK(![baseViewController presentedViewController]);
-  if ([self currentBrowserState]->IsOffTheRecord()) {
-    NOTREACHED();
-    return;
-  }
   if (_settingsNavigationController) {
     // Navigate to the Google services settings if the settings dialog is
     // already opened.
@@ -1695,8 +1691,10 @@
     return;
   }
 
+  ios::ChromeBrowserState* originalBrowserState =
+      self.currentBrowserState->GetOriginalChromeBrowserState();
   _settingsNavigationController = [SettingsNavigationController
-      newGoogleServicesController:self.currentBrowserState
+      newGoogleServicesController:originalBrowserState
                          delegate:self];
   [baseViewController presentViewController:_settingsNavigationController
                                    animated:YES
diff --git a/ios/chrome/browser/feature_engagement/feature_engagement_egtest.mm b/ios/chrome/browser/feature_engagement/feature_engagement_egtest.mm
index f8817842..ca30445 100644
--- a/ios/chrome/browser/feature_engagement/feature_engagement_egtest.mm
+++ b/ios/chrome/browser/feature_engagement/feature_engagement_egtest.mm
@@ -449,7 +449,8 @@
 }
 
 // Verifies that the New Tab Tip appears when all conditions are met.
-- (void)testNewTabTipPromoShouldShow {
+// Flaky. See crbug.com/974152
+- (void)DISABLED_testNewTabTipPromoShouldShow {
   base::test::ScopedFeatureList scoped_feature_list;
 
   EnableNewTabTipTriggering(scoped_feature_list);
diff --git a/ios/chrome/browser/ui/omnibox/popup/BUILD.gn b/ios/chrome/browser/ui/omnibox/popup/BUILD.gn
index cd608bdc..2d60b34 100644
--- a/ios/chrome/browser/ui/omnibox/popup/BUILD.gn
+++ b/ios/chrome/browser/ui/omnibox/popup/BUILD.gn
@@ -83,6 +83,7 @@
     "//ios/chrome/browser/ui/colors",
     "//ios/chrome/browser/ui/commands",
     "//ios/chrome/browser/ui/elements",
+    "//ios/chrome/browser/ui/ntp_tile_views",
     "//ios/chrome/browser/ui/omnibox:omnibox_popup_shared",
     "//ios/chrome/browser/ui/omnibox:omnibox_suggestion_icon_util",
     "//ios/chrome/browser/ui/toolbar/buttons",
diff --git a/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_base_view_controller+internal.h b/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_base_view_controller+internal.h
index 3238dda..9e179d6 100644
--- a/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_base_view_controller+internal.h
+++ b/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_base_view_controller+internal.h
@@ -11,7 +11,7 @@
 //
 // TODO (crbug.com/943521): This is only for subclassing during migration of
 // OmniboxPopupViewController and should be removed when that is done.
-@interface OmniboxPopupBaseViewController (Internal)
+@interface OmniboxPopupBaseViewController (Internal) <UITableViewDelegate>
 
 // Alignment of omnibox text. Popup text should match this alignment.
 @property(nonatomic, assign) NSTextAlignment alignment;
diff --git a/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_base_view_controller.mm b/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_base_view_controller.mm
index b3c7770..fddd493 100644
--- a/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_base_view_controller.mm
+++ b/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_base_view_controller.mm
@@ -7,6 +7,7 @@
 
 #include "base/metrics/histogram_macros.h"
 #include "base/time/time.h"
+#import "ios/chrome/browser/ui/ntp_tile_views/ntp_tile_layout_util.h"
 #include "ios/chrome/browser/ui/omnibox/omnibox_constants.h"
 #include "ios/chrome/browser/ui/omnibox/popup/omnibox_popup_row.h"
 #include "ios/chrome/browser/ui/omnibox/popup/self_sizing_table_view.h"
@@ -23,8 +24,7 @@
 const CGFloat kTopAndBottomPadding = 8.0;
 }  // namespace
 
-@interface OmniboxPopupBaseViewController () <UITableViewDelegate,
-                                              UITableViewDataSource>
+@interface OmniboxPopupBaseViewController () <UITableViewDataSource>
 
 #pragma mark Redeclaration of Internal properties
 
@@ -52,6 +52,8 @@
 // view controller was on screen.
 @property(nonatomic, assign) base::TimeTicks viewAppearanceTime;
 
+@property(nonatomic, strong) NSLayoutConstraint* shortcutsViewEdgeConstraint;
+
 @end
 
 @implementation OmniboxPopupBaseViewController
@@ -114,6 +116,33 @@
   [self updateBackgroundColor];
 }
 
+- (void)viewWillTransitionToSize:(CGSize)size
+       withTransitionCoordinator:
+           (id<UIViewControllerTransitionCoordinator>)coordinator {
+  [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
+
+  // Update the leading edge constraints for the shortcuts cell when the view
+  // rotates.
+  if (self.shortcutsEnabled && self.currentResult.count == 0) {
+    __weak __typeof(self) weakSelf = self;
+    [coordinator
+        animateAlongsideTransition:^(
+            id<UIViewControllerTransitionCoordinatorContext> _Nonnull context) {
+          __typeof(self) strongSelf = weakSelf;
+          if (!strongSelf) {
+            return;
+          }
+          CGFloat widthInsets = CenteredTilesMarginForWidth(
+              strongSelf.traitCollection,
+              size.width - strongSelf.view.safeAreaInsets.left -
+                  strongSelf.view.safeAreaInsets.right);
+          strongSelf.shortcutsViewEdgeConstraint.constant = widthInsets;
+          [strongSelf.shortcutsCell layoutIfNeeded];
+        }
+                        completion:nil];
+  }
+}
+
 #pragma mark - View lifecycle
 
 - (void)viewDidAppear:(BOOL)animated {
@@ -156,7 +185,18 @@
   [cell.contentView addSubview:self.shortcutsViewController.view];
   self.shortcutsViewController.view.translatesAutoresizingMaskIntoConstraints =
       NO;
-  AddSameConstraints(self.shortcutsViewController.view, cell.contentView);
+  AddSameConstraintsToSides(self.shortcutsViewController.view, cell.contentView,
+                            (LayoutSides::kTop | LayoutSides::kBottom));
+  AddSameCenterXConstraint(self.shortcutsViewController.view, cell.contentView);
+  self.shortcutsViewEdgeConstraint =
+      [self.shortcutsViewController.view.leadingAnchor
+          constraintEqualToAnchor:cell.contentView.safeAreaLayoutGuide
+                                      .leadingAnchor];
+  // When the device is rotating, the constraints are slightly off for one
+  // runloop. Lower the priority here to prevent unable to satisfy constraints
+  // warning.
+  self.shortcutsViewEdgeConstraint.priority = UILayoutPriorityRequired - 1;
+  self.shortcutsViewEdgeConstraint.active = YES;
   [self.shortcutsViewController didMoveToParentViewController:self];
   cell.accessibilityIdentifier = kShortcutsAccessibilityIdentifier;
   return cell;
@@ -292,6 +332,27 @@
   [self.delegate autocompleteResultConsumer:self didSelectRow:row];
 }
 
+- (void)tableView:(UITableView*)tableView
+      willDisplayCell:(UITableViewCell*)cell
+    forRowAtIndexPath:(NSIndexPath*)indexPath {
+  // Update the leading edge constraints for the shortcuts cell before it is
+  // displayed.
+  if (self.shortcutsEnabled && indexPath.row == 0 &&
+      self.currentResult.count == 0) {
+    CGFloat widthInsets = CenteredTilesMarginForWidth(
+        self.traitCollection, self.view.bounds.size.width -
+                                  self.view.safeAreaInsets.left -
+                                  self.view.safeAreaInsets.right);
+    if (widthInsets != self.shortcutsViewEdgeConstraint.constant) {
+      self.shortcutsViewEdgeConstraint.constant = widthInsets;
+      // If the insets have changed, the collection view (and thus the table
+      // view) may have changed heights.
+      [self.shortcutsViewController.collectionView layoutIfNeeded];
+      [self.tableView reloadData];
+    }
+  }
+}
+
 #pragma mark - UIScrollViewDelegate
 
 - (void)scrollViewDidScroll:(UIScrollView*)scrollView {
@@ -321,6 +382,7 @@
   }
   return self.currentResult.count;
 }
+
 // Customize the appearance of table view cells.
 - (UITableViewCell*)tableView:(UITableView*)tableView
         cellForRowAtIndexPath:(NSIndexPath*)indexPath {
diff --git a/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_presenter.mm b/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_presenter.mm
index 646ed615..f53562d5 100644
--- a/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_presenter.mm
+++ b/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_presenter.mm
@@ -131,7 +131,6 @@
     topConstraint,
   ]];
 
-  [popup layoutIfNeeded];
   [[popup superview] layoutIfNeeded];
 }
 
diff --git a/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_view_controller.mm b/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_view_controller.mm
index e175d5e..2e4878f6 100644
--- a/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_view_controller.mm
+++ b/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_view_controller.mm
@@ -64,6 +64,7 @@
 - (void)tableView:(UITableView*)tableView
       willDisplayCell:(UITableViewCell*)cell
     forRowAtIndexPath:(NSIndexPath*)indexPath {
+  [super tableView:tableView willDisplayCell:cell forRowAtIndexPath:indexPath];
   if ([cell isKindOfClass:[OmniboxPopupRowCell class]]) {
     OmniboxPopupRowCell* rowCell =
         base::mac::ObjCCastStrict<OmniboxPopupRowCell>(cell);
diff --git a/ios/chrome/browser/ui/omnibox/popup/shortcuts/shortcuts_view_controller.mm b/ios/chrome/browser/ui/omnibox/popup/shortcuts/shortcuts_view_controller.mm
index a9ebcb1..89142ec 100644
--- a/ios/chrome/browser/ui/omnibox/popup/shortcuts/shortcuts_view_controller.mm
+++ b/ios/chrome/browser/ui/omnibox/popup/shortcuts/shortcuts_view_controller.mm
@@ -46,8 +46,10 @@
 #pragma mark - initializers
 
 - (instancetype)init {
-  self = [super
-      initWithCollectionViewLayout:[[UICollectionViewFlowLayout alloc] init]];
+  UICollectionViewFlowLayout* layout =
+      [[UICollectionViewFlowLayout alloc] init];
+  layout.sectionInset = UIEdgeInsetsMake(kTopInset, 0, 0, 0);
+  self = [super initWithCollectionViewLayout:layout];
   if (self) {
     self.collectionView.backgroundColor = [UIColor clearColor];
     [self.collectionView registerClass:[MostVisitedShortcutCell class]
@@ -68,27 +70,16 @@
   // Promote the latest most visited items to the displayed ones and reload the
   // collection view data.
   self.displayedMostVisitedItems = self.latestMostVisitedItems;
-  [self.collectionView reloadData];
 
   [self configureLayout:base::mac::ObjCCastStrict<UICollectionViewFlowLayout>(
-                            self.collectionViewLayout)
-             targetSize:self.view.bounds.size];
+                            self.collectionViewLayout)];
 }
 
-- (void)viewWillTransitionToSize:(CGSize)size
-       withTransitionCoordinator:
-           (id<UIViewControllerTransitionCoordinator>)coordinator {
-  [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
+- (void)traitCollectionDidChange:(UITraitCollection*)previousTraitCollection {
+  [super traitCollectionDidChange:previousTraitCollection];
 
-  [coordinator
-      animateAlongsideTransition:^(
-          id<UIViewControllerTransitionCoordinatorContext> context) {
-        [self configureLayout:base::mac::ObjCCastStrict<
-                                  UICollectionViewFlowLayout>(
-                                  self.collectionViewLayout)
-                   targetSize:self.view.bounds.size];
-      }
-                      completion:nil];
+  [self configureLayout:base::mac::ObjCCastStrict<UICollectionViewFlowLayout>(
+                            self.collectionViewLayout)];
 }
 
 #pragma mark - ShortcutsConsumer
@@ -255,19 +246,12 @@
 
 #pragma mark - Private
 
-- (void)configureLayout:(UICollectionViewFlowLayout*)layout
-             targetSize:(CGSize)size {
-  // Calculate insets to center the items in the view.
-  CGFloat widthInsets =
-      CenteredTilesMarginForWidth(self.traitCollection, size.width);
-
+- (void)configureLayout:(UICollectionViewFlowLayout*)layout {
   layout.minimumLineSpacing = kNtpTilesVerticalSpacing;
   layout.minimumInteritemSpacing =
       NtpTilesHorizontalSpacing(self.traitCollection);
   layout.itemSize =
       MostVisitedCellSize(self.traitCollection.preferredContentSizeCategory);
-  layout.sectionInset =
-      UIEdgeInsetsMake(kTopInset, widthInsets, 0, widthInsets);
 }
 
 @end
diff --git a/ios/web/navigation/BUILD.gn b/ios/web/navigation/BUILD.gn
index 0be37f14..5cb90844 100644
--- a/ios/web/navigation/BUILD.gn
+++ b/ios/web/navigation/BUILD.gn
@@ -25,6 +25,7 @@
     "//ios/web/public",
     "//ios/web/public/deprecated",
     "//ios/web/public/download",
+    "//ios/web/public/js_messaging",
     "//ios/web/public/security",
     "//ios/web/public/session",
     "//ios/web/security",
@@ -39,6 +40,8 @@
   ]
 
   sources = [
+    "crw_js_navigation_handler.h",
+    "crw_js_navigation_handler.mm",
     "crw_navigation_item_holder.h",
     "crw_navigation_item_holder.mm",
     "crw_pending_navigation_info.h",
diff --git a/ios/web/navigation/crw_js_navigation_handler.h b/ios/web/navigation/crw_js_navigation_handler.h
new file mode 100644
index 0000000..3d51f27
--- /dev/null
+++ b/ios/web/navigation/crw_js_navigation_handler.h
@@ -0,0 +1,43 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef IOS_WEB_NAVIGATION_CRW_JS_NAVIGATION_HANDLER_H_
+#define IOS_WEB_NAVIGATION_CRW_JS_NAVIGATION_HANDLER_H_
+
+#import <Foundation/Foundation.h>
+
+namespace web {
+class WebStateImpl;
+}
+@class CRWJSNavigationHandler;
+
+@protocol CRWJSNavigationHandlerDelegate
+
+// Returns the WebStateImpl associated with this handler.
+- (web::WebStateImpl*)webStateImplForJSNavigationHandler:
+    (CRWJSNavigationHandler*)navigationHandler;
+
+@end
+
+// Handles JS messages related to navigation(e.g. window.history.forward).
+@interface CRWJSNavigationHandler : NSObject
+
+- (instancetype)init NS_UNAVAILABLE;
+- (instancetype)initWithDelegate:(id<CRWJSNavigationHandlerDelegate>)delegate
+    NS_DESIGNATED_INITIALIZER;
+
+// Set to YES when a hashchange event is manually dispatched for same-document
+// history navigations.
+@property(nonatomic, assign) BOOL dispatchingSameDocumentHashChangeEvent;
+
+// Whether the web page is currently performing window.history.pushState or
+// window.history.replaceState.
+@property(nonatomic, assign) BOOL changingHistoryState;
+
+// Instructs this handler to stop handling js navigation messages.
+- (void)close;
+
+@end
+
+#endif  // IOS_WEB_NAVIGATION_CRW_JS_NAVIGATION_HANDLER_H_
diff --git a/ios/web/navigation/crw_js_navigation_handler.mm b/ios/web/navigation/crw_js_navigation_handler.mm
new file mode 100644
index 0000000..c68f840
--- /dev/null
+++ b/ios/web/navigation/crw_js_navigation_handler.mm
@@ -0,0 +1,98 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "ios/web/navigation/crw_js_navigation_handler.h"
+
+#import "ios/web/navigation/navigation_item_impl.h"
+#import "ios/web/navigation/navigation_manager_impl.h"
+#include "ios/web/public/js_messaging/web_frame.h"
+#import "ios/web/web_state/web_state_impl.h"
+
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
+namespace {
+const char kCommandPrefix[] = "navigation";
+}  // namespace
+
+@interface CRWJSNavigationHandler ()
+
+@property(nonatomic, weak) id<CRWJSNavigationHandlerDelegate> delegate;
+@property(nonatomic, readonly, assign) web::WebStateImpl* webStateImpl;
+@property(nonatomic, readonly, assign)
+    web::NavigationManagerImpl* navigationManagerImpl;
+
+@end
+
+@implementation CRWJSNavigationHandler
+
+#pragma mark - Public
+
+- (instancetype)initWithDelegate:(id<CRWJSNavigationHandlerDelegate>)delegate {
+  if (self = [super init]) {
+    _delegate = delegate;
+
+    __weak CRWJSNavigationHandler* weakSelf = self;
+    auto navigationStateCallback =
+        ^bool(const base::DictionaryValue& message, const GURL&,
+              bool /* is_main_frame */, bool /* user_is_interacting */,
+              web::WebFrame* senderFrame) {
+          const std::string* command = message.FindStringKey("command");
+          DCHECK(command);
+          if (*command == "navigation.hashchange") {
+            [weakSelf handleWindowHashChangeInFrame:senderFrame];
+            return true;
+          } else if (*command == "navigation.willChangeState") {
+            [weakSelf handleWindowWillChangeStateInFrame:senderFrame];
+            return true;
+          }
+          return false;
+        };
+
+    self.webStateImpl->AddScriptCommandCallback(
+        base::BindRepeating(navigationStateCallback), kCommandPrefix);
+  }
+  return self;
+}
+
+- (void)close {
+  self.webStateImpl->RemoveScriptCommandCallback(kCommandPrefix);
+}
+
+#pragma mark - Private
+
+- (web::WebStateImpl*)webStateImpl {
+  return [self.delegate webStateImplForJSNavigationHandler:self];
+}
+
+- (web::NavigationManagerImpl*)navigationManagerImpl {
+  return &(self.webStateImpl->GetNavigationManagerImpl());
+}
+
+// Handles the navigation.hashchange event emitted from |senderFrame|.
+- (void)handleWindowHashChangeInFrame:(web::WebFrame*)senderFrame {
+  if (!senderFrame->IsMainFrame())
+    return;
+
+  // Record that the current NavigationItem was created by a hash change, but
+  // ignore hashchange events that are manually dispatched for same-document
+  // navigations.
+  if (self.dispatchingSameDocumentHashChangeEvent) {
+    self.dispatchingSameDocumentHashChangeEvent = NO;
+  } else {
+    web::NavigationItemImpl* item =
+        self.navigationManagerImpl->GetCurrentItemImpl();
+    item->SetIsCreatedFromHashChange(true);
+  }
+}
+
+// Handles the navigation.willChangeState message sent from |senderFrame|.
+- (void)handleWindowWillChangeStateInFrame:(web::WebFrame*)senderFrame {
+  if (senderFrame->IsMainFrame()) {
+    self.changingHistoryState = YES;
+  }
+}
+
+@end
diff --git a/ios/web/web_state/js/resources/navigation.js b/ios/web/web_state/js/resources/navigation.js
index 08d9cd6..e6d1571 100644
--- a/ios/web/web_state/js/resources/navigation.js
+++ b/ios/web/web_state/js/resources/navigation.js
@@ -19,7 +19,8 @@
 __gCrWeb['dispatchPopstateEvent'] = function(stateObject) {
   var popstateEvent = window.document.createEvent('HTMLEvents');
   popstateEvent.initEvent('popstate', true, false);
-  if (stateObject) popstateEvent.state = JSON.parse(stateObject);
+  if (stateObject)
+    popstateEvent.state = JSON.parse(stateObject);
 
   // setTimeout() is used in order to return immediately. Otherwise the
   // dispatchEvent call waits for all event handlers to return, which could
@@ -36,8 +37,10 @@
 __gCrWeb['dispatchHashchangeEvent'] = function(oldURL, newURL) {
   var hashchangeEvent = window.document.createEvent('HTMLEvents');
   hashchangeEvent.initEvent('hashchange', true, false);
-  if (oldURL) hashchangeEvent.oldURL = oldURL;
-  if (newURL) hashchangeEvent.newURL = newURL;
+  if (oldURL)
+    hashchangeEvent.oldURL = oldURL;
+  if (newURL)
+    hashchangeEvent.newURL = newURL;
 
   // setTimeout() is used in order to return immediately. Otherwise the
   // dispatchEvent call waits for all event handlers to return, which could
@@ -69,9 +72,9 @@
  * called for same-document navigation.
  */
 window.history.pushState = function(stateObject, pageTitle, pageUrl) {
-  __gCrWeb.message.invokeOnHost({'command': 'window.history.willChangeState'});
+  __gCrWeb.message.invokeOnHost({'command': 'navigation.willChangeState'});
   // Calling stringify() on undefined causes a JSON parse error.
-  var serializedState = typeof(stateObject) == 'undefined' ?
+  var serializedState = typeof (stateObject) == 'undefined' ?
       '' :
       __gCrWeb.common.JSONStringify(stateObject);
   pageUrl = pageUrl || window.location.href;
@@ -85,10 +88,10 @@
 };
 
 window.history.replaceState = function(stateObject, pageTitle, pageUrl) {
-  __gCrWeb.message.invokeOnHost({'command': 'window.history.willChangeState'});
+  __gCrWeb.message.invokeOnHost({'command': 'navigation.willChangeState'});
 
   // Calling stringify() on undefined causes a JSON parse error.
-  var serializedState = typeof(stateObject) == 'undefined' ?
+  var serializedState = typeof (stateObject) == 'undefined' ?
       '' :
       __gCrWeb.common.JSONStringify(stateObject);
   pageUrl = pageUrl || window.location.href;
@@ -110,12 +113,11 @@
     'favicons': __gCrWeb.common.getFavicons()
   });
 
-  __gCrWeb.message.invokeOnHost({'command': 'window.hashchange'});
+  __gCrWeb.message.invokeOnHost({'command': 'navigation.hashchange'});
 });
 
 /** Flush the message queue. */
 if (__gCrWeb.message) {
   __gCrWeb.message.invokeQueues();
 }
-
 }());  // End of anonymouse object
diff --git a/ios/web/web_state/ui/crw_web_controller.mm b/ios/web/web_state/ui/crw_web_controller.mm
index 558f126c..5e3bbc8 100644
--- a/ios/web/web_state/ui/crw_web_controller.mm
+++ b/ios/web/web_state/ui/crw_web_controller.mm
@@ -54,6 +54,7 @@
 #import "ios/web/js_messaging/crw_wk_script_message_router.h"
 #import "ios/web/js_messaging/web_frame_impl.h"
 #import "ios/web/js_messaging/web_frames_manager_impl.h"
+#import "ios/web/navigation/crw_js_navigation_handler.h"
 #import "ios/web/navigation/crw_navigation_item_holder.h"
 #import "ios/web/navigation/crw_pending_navigation_info.h"
 #import "ios/web/navigation/crw_web_view_navigation_observer.h"
@@ -184,6 +185,7 @@
                                 CRWWebControllerContainerViewDelegate,
                                 CRWWebViewNavigationObserverDelegate,
                                 CRWWebRequestControllerDelegate,
+                                CRWJSNavigationHandlerDelegate,
                                 CRWWebViewScrollViewProxyObserver,
                                 CRWWKNavigationHandlerDelegate,
                                 CRWWKUIHandlerDelegate,
@@ -215,14 +217,6 @@
   BOOL _webUsageEnabled;
   // Default URL (about:blank).
   GURL _defaultURL;
-  // Whether the web page is currently performing window.history.pushState or
-  // window.history.replaceState
-  // Set to YES on window.history.willChangeState message. To NO on
-  // window.history.didPushState or window.history.didReplaceState.
-  BOOL _changingHistoryState;
-  // Set to YES when a hashchange event is manually dispatched for same-document
-  // history navigations.
-  BOOL _dispatchingSameDocumentHashChangeEvent;
 
   // Updates SSLStatus for current navigation item.
   CRWSSLStatusUpdater* _SSLStatusUpdater;
@@ -239,6 +233,8 @@
 // The WKNavigationDelegate handler class.
 @property(nonatomic, readonly, strong)
     CRWWKNavigationHandler* navigationHandler;
+@property(nonatomic, readonly, strong)
+    CRWJSNavigationHandler* JSNavigationHandler;
 // The WKUIDelegate handler class.
 @property(nonatomic, readonly, strong) CRWWKUIHandler* UIHandler;
 
@@ -431,6 +427,9 @@
     _navigationHandler.delegate = self;
     _requestController.navigationHandler = _navigationHandler;
 
+    _JSNavigationHandler =
+        [[CRWJSNavigationHandler alloc] initWithDelegate:self];
+
     _UIHandler = [[CRWWKUIHandler alloc] init];
     _UIHandler.delegate = self;
 
@@ -723,6 +722,7 @@
 
   _SSLStatusUpdater = nil;
   [self.UIHandler close];
+  [self.JSNavigationHandler close];
 
   self.swipeRecognizerProvider = nil;
   [self.legacyNativeController close];
@@ -1605,7 +1605,8 @@
   // be reset when resonding to the hashchange message.  Note that resetting the
   // flag in the completion block below is too early, as that block is called
   // before hashchange event listeners have a chance to fire.
-  _dispatchingSameDocumentHashChangeEvent = shouldDispatchHashchange;
+  self.JSNavigationHandler.dispatchingSameDocumentHashChangeEvent =
+      shouldDispatchHashchange;
   // Inject the JavaScript to update the state on the browser side.
   [self injectHTML5HistoryScriptWithHashChange:shouldDispatchHashchange
                         sameDocumentNavigation:sameDocumentNavigation];
@@ -1831,12 +1832,8 @@
     (*handlers)["document.favicons"] =
         @selector(handleDocumentFaviconsMessage:context:);
     (*handlers)["window.error"] = @selector(handleWindowErrorMessage:context:);
-    (*handlers)["window.hashchange"] =
-        @selector(handleWindowHashChangeMessage:context:);
     (*handlers)["window.history.back"] =
         @selector(handleWindowHistoryBackMessage:context:);
-    (*handlers)["window.history.willChangeState"] =
-        @selector(handleWindowHistoryWillChangeStateMessage:context:);
     (*handlers)["window.history.didPushState"] =
         @selector(handleWindowHistoryDidPushStateMessage:context:);
     (*handlers)["window.history.didReplaceState"] =
@@ -2034,25 +2031,6 @@
   return YES;
 }
 
-// Handles 'window.hashchange' message.
-- (BOOL)handleWindowHashChangeMessage:(base::DictionaryValue*)message
-                              context:(NSDictionary*)context {
-  if (![context[kIsMainFrame] boolValue])
-    return NO;
-  // Record that the current NavigationItem was created by a hash change, but
-  // ignore hashchange events that are manually dispatched for same-document
-  // navigations.
-  if (_dispatchingSameDocumentHashChangeEvent) {
-    _dispatchingSameDocumentHashChangeEvent = NO;
-  } else {
-    web::NavigationItemImpl* item = self.currentNavItem;
-    DCHECK(item);
-    item->SetIsCreatedFromHashChange(true);
-  }
-
-  return YES;
-}
-
 // Handles 'window.history.back' message.
 - (BOOL)handleWindowHistoryBackMessage:(base::DictionaryValue*)message
                                context:(NSDictionary*)context {
@@ -2087,22 +2065,13 @@
   return NO;
 }
 
-// Handles 'window.history.willChangeState' message.
-- (BOOL)handleWindowHistoryWillChangeStateMessage:(base::DictionaryValue*)unused
-                                          context:(NSDictionary*)context {
-  if (![context[kIsMainFrame] boolValue])
-    return NO;
-  _changingHistoryState = YES;
-  return YES;
-}
-
 // Handles 'window.history.didPushState' message.
 - (BOOL)handleWindowHistoryDidPushStateMessage:(base::DictionaryValue*)message
                                        context:(NSDictionary*)context {
   if (![context[kIsMainFrame] boolValue])
     return NO;
-  DCHECK(_changingHistoryState);
-  _changingHistoryState = NO;
+  DCHECK(self.JSNavigationHandler.changingHistoryState);
+  self.JSNavigationHandler.changingHistoryState = NO;
 
   // If there is a pending entry, a new navigation has been registered but
   // hasn't begun loading.  Since the pushState message is coming from the
@@ -2181,8 +2150,8 @@
                                           context:(NSDictionary*)context {
   if (![context[kIsMainFrame] boolValue])
     return NO;
-  DCHECK(_changingHistoryState);
-  _changingHistoryState = NO;
+  DCHECK(self.JSNavigationHandler.changingHistoryState);
+  self.JSNavigationHandler.changingHistoryState = NO;
 
   std::string pageURL;
   std::string baseURL;
@@ -2996,7 +2965,7 @@
   // |newNavigationContext| only exists if this method has to create a new
   // context object.
   std::unique_ptr<web::NavigationContextImpl> newNavigationContext;
-  if (!_changingHistoryState) {
+  if (!self.JSNavigationHandler.changingHistoryState) {
     if ([self.navigationHandler
             contextForPendingMainFrameNavigationWithURL:newURL]) {
       // NavigationManager::LoadURLWithParams() was called with URL that has
@@ -3029,7 +2998,7 @@
 
   [self setDocumentURL:newURL context:newNavigationContext.get()];
 
-  if (!_changingHistoryState) {
+  if (!self.JSNavigationHandler.changingHistoryState) {
     // Pass either newly created context (if it exists) or context that already
     // existed before.
     web::NavigationContextImpl* navigationContext = newNavigationContext.get();
@@ -3225,6 +3194,13 @@
   }
 }
 
+#pragma mark - CRWJSNavigationHandlerDelegate
+
+- (web::WebStateImpl*)webStateImplForJSNavigationHandler:
+    (CRWJSNavigationHandler*)navigationHandler {
+  return self.webStateImpl;
+}
+
 #pragma mark - Testing-Only Methods
 
 - (void)injectWebViewContentView:(CRWWebViewContentView*)webViewContentView {
diff --git a/ipc/ipc_message_start.h b/ipc/ipc_message_start.h
index 480ae36..ec19b74 100644
--- a/ipc/ipc_message_start.h
+++ b/ipc/ipc_message_start.h
@@ -51,6 +51,7 @@
   ChromeExtensionMsgStart,
   GinJavaBridgeMsgStart,
   ChromeUtilityPrintingMsgStart,
+  AecDumpMsgStart,
   OzoneGpuMsgStart,
   WebTestMsgStart,
   NetworkHintsMsgStart,
diff --git a/media/capture/video/chromeos/camera_device_delegate.cc b/media/capture/video/chromeos/camera_device_delegate.cc
index 74804484..10c98ed 100644
--- a/media/capture/video/chromeos/camera_device_delegate.cc
+++ b/media/capture/video/chromeos/camera_device_delegate.cc
@@ -163,7 +163,6 @@
     scoped_refptr<base::SingleThreadTaskRunner> ipc_task_runner,
     ReprocessManager* reprocess_manager)
     : device_descriptor_(device_descriptor),
-      camera_id_(std::stoi(device_descriptor.device_id)),
       camera_hal_delegate_(std::move(camera_hal_delegate)),
       ipc_task_runner_(std::move(ipc_task_runner)),
       reprocess_manager_(reprocess_manager),
@@ -180,10 +179,41 @@
   device_context_ = device_context;
   device_context_->SetState(CameraDeviceContext::State::kStarting);
 
-  // We need to get the static camera metadata of the camera device first.
-  camera_hal_delegate_->GetCameraInfo(
-      camera_id_, BindToCurrentLoop(base::BindOnce(
-                      &CameraDeviceDelegate::OnGotCameraInfo, GetWeakPtr())));
+  auto camera_info = camera_hal_delegate_->GetCameraInfoFromDeviceId(
+      device_descriptor_.device_id);
+  if (camera_info.is_null()) {
+    device_context_->SetErrorState(
+        media::VideoCaptureError::kCrosHalV3DeviceDelegateFailedToGetCameraInfo,
+        FROM_HERE, "Failed to get camera info");
+    return;
+  }
+
+  SortCameraMetadata(&camera_info->static_camera_characteristics);
+  static_metadata_ = std::move(camera_info->static_camera_characteristics);
+
+  auto sensor_orientation = GetMetadataEntryAsSpan<int32_t>(
+      static_metadata_,
+      cros::mojom::CameraMetadataTag::ANDROID_SENSOR_ORIENTATION);
+  if (sensor_orientation.empty()) {
+    device_context_->SetErrorState(
+        media::VideoCaptureError::
+            kCrosHalV3DeviceDelegateMissingSensorOrientationInfo,
+        FROM_HERE, "Camera is missing required sensor orientation info");
+    return;
+  }
+  device_context_->SetSensorOrientation(sensor_orientation[0]);
+
+  // |device_ops_| is bound after the MakeRequest call.
+  cros::mojom::Camera3DeviceOpsRequest device_ops_request =
+      mojo::MakeRequest(&device_ops_);
+  device_ops_.set_connection_error_handler(base::BindOnce(
+      &CameraDeviceDelegate::OnMojoConnectionError, GetWeakPtr()));
+  camera_hal_delegate_->OpenDevice(
+      camera_hal_delegate_->GetCameraIdFromDeviceId(
+          device_descriptor_.device_id),
+      std::move(device_ops_request),
+      BindToCurrentLoop(
+          base::BindOnce(&CameraDeviceDelegate::OnOpenedDevice, GetWeakPtr())));
 }
 
 void CameraDeviceDelegate::StopAndDeAllocate(
@@ -411,56 +441,6 @@
   request_manager_.reset();
 }
 
-void CameraDeviceDelegate::OnGotCameraInfo(
-    int32_t result,
-    cros::mojom::CameraInfoPtr camera_info) {
-  DCHECK(ipc_task_runner_->BelongsToCurrentThread());
-
-  if (device_context_->GetState() != CameraDeviceContext::State::kStarting) {
-    DCHECK_EQ(device_context_->GetState(),
-              CameraDeviceContext::State::kStopping);
-    OnClosed(0);
-    return;
-  }
-
-  if (result) {
-    device_context_->SetErrorState(
-        media::VideoCaptureError::kCrosHalV3DeviceDelegateFailedToGetCameraInfo,
-        FROM_HERE, "Failed to get camera info");
-    return;
-  }
-
-  reprocess_manager_->UpdateCameraInfo(device_descriptor_.device_id,
-                                       camera_info);
-  SortCameraMetadata(&camera_info->static_camera_characteristics);
-  static_metadata_ = std::move(camera_info->static_camera_characteristics);
-
-  const cros::mojom::CameraMetadataEntryPtr* sensor_orientation =
-      GetMetadataEntry(
-          static_metadata_,
-          cros::mojom::CameraMetadataTag::ANDROID_SENSOR_ORIENTATION);
-  if (sensor_orientation) {
-    device_context_->SetSensorOrientation(
-        *reinterpret_cast<int32_t*>((*sensor_orientation)->data.data()));
-  } else {
-    device_context_->SetErrorState(
-        media::VideoCaptureError::
-            kCrosHalV3DeviceDelegateMissingSensorOrientationInfo,
-        FROM_HERE, "Camera is missing required sensor orientation info");
-    return;
-  }
-
-  // |device_ops_| is bound after the MakeRequest call.
-  cros::mojom::Camera3DeviceOpsRequest device_ops_request =
-      mojo::MakeRequest(&device_ops_);
-  device_ops_.set_connection_error_handler(base::BindOnce(
-      &CameraDeviceDelegate::OnMojoConnectionError, GetWeakPtr()));
-  camera_hal_delegate_->OpenDevice(
-      camera_id_, std::move(device_ops_request),
-      BindToCurrentLoop(
-          base::BindOnce(&CameraDeviceDelegate::OnOpenedDevice, GetWeakPtr())));
-}
-
 void CameraDeviceDelegate::OnOpenedDevice(int32_t result) {
   DCHECK(ipc_task_runner_->BelongsToCurrentThread());
 
diff --git a/media/capture/video/chromeos/camera_device_delegate.h b/media/capture/video/chromeos/camera_device_delegate.h
index b1d4c41..971a308 100644
--- a/media/capture/video/chromeos/camera_device_delegate.h
+++ b/media/capture/video/chromeos/camera_device_delegate.h
@@ -115,9 +115,6 @@
   // Resets the Mojo interface and bindings.
   void ResetMojoInterface();
 
-  // Sets |static_metadata_| from |camera_info|.
-  void OnGotCameraInfo(int32_t result, cros::mojom::CameraInfoPtr camera_info);
-
   // Creates the Mojo connection to the camera device.
   void OnOpenedDevice(int32_t result);
 
@@ -173,8 +170,6 @@
 
   const VideoCaptureDeviceDescriptor device_descriptor_;
 
-  int32_t camera_id_;
-
   // Current configured resolution of BLOB stream.
   gfx::Size current_blob_resolution_;
 
diff --git a/media/capture/video/chromeos/camera_device_delegate_unittest.cc b/media/capture/video/chromeos/camera_device_delegate_unittest.cc
index d27ec7c..16c7a86 100644
--- a/media/capture/video/chromeos/camera_device_delegate_unittest.cc
+++ b/media/capture/video/chromeos/camera_device_delegate_unittest.cc
@@ -19,6 +19,7 @@
 #include "media/capture/video/chromeos/camera_device_context.h"
 #include "media/capture/video/chromeos/camera_hal_delegate.h"
 #include "media/capture/video/chromeos/mock_camera_module.h"
+#include "media/capture/video/chromeos/mock_vendor_tag_ops.h"
 #include "media/capture/video/chromeos/mock_video_capture_client.h"
 #include "media/capture/video/chromeos/reprocess_manager.h"
 #include "media/capture/video/chromeos/video_capture_device_factory_chromeos.h"
@@ -101,11 +102,13 @@
 
 constexpr int32_t kJpegMaxBufferSize = 1024;
 constexpr size_t kDefaultWidth = 1280, kDefaultHeight = 720;
-const VideoCaptureDeviceDescriptor kDefaultDescriptor("Fake device", "0");
-const VideoCaptureFormat kDefaultCaptureFormat(gfx::Size(kDefaultWidth,
-                                                         kDefaultHeight),
-                                               30.0,
-                                               PIXEL_FORMAT_I420);
+
+VideoCaptureParams GetDefaultCaptureParams() {
+  VideoCaptureParams params;
+  params.requested_format = {gfx::Size(kDefaultWidth, kDefaultHeight), 30.0,
+                             PIXEL_FORMAT_I420};
+  return params;
+}
 
 }  // namespace
 
@@ -122,7 +125,9 @@
     hal_delegate_thread_.Start();
     camera_hal_delegate_ =
         new CameraHalDelegate(hal_delegate_thread_.task_runner());
-    reprocess_manager_ = std::make_unique<ReprocessManager>(base::DoNothing());
+    auto get_camera_info = base::BindRepeating(
+        &CameraHalDelegate::GetCameraInfoFromDeviceId, camera_hal_delegate_);
+    reprocess_manager_ = std::make_unique<ReprocessManager>(get_camera_info);
     camera_hal_delegate_->SetCameraModule(
         mock_camera_module_.GetInterfacePtrInfo());
   }
@@ -133,16 +138,30 @@
     hal_delegate_thread_.Stop();
   }
 
-  void AllocateDeviceWithDescriptor(VideoCaptureDeviceDescriptor descriptor) {
+  void AllocateDevice() {
     ASSERT_FALSE(device_delegate_thread_.IsRunning());
     ASSERT_FALSE(camera_device_delegate_);
+    VideoCaptureDeviceDescriptors descriptors;
+    camera_hal_delegate_->GetDeviceDescriptors(&descriptors);
+    ASSERT_EQ(descriptors.size(), 1u);
     device_delegate_thread_.Start();
     camera_device_delegate_ = std::make_unique<CameraDeviceDelegate>(
-        descriptor, camera_hal_delegate_, device_delegate_thread_.task_runner(),
-        reprocess_manager_.get());
+        descriptors[0], camera_hal_delegate_,
+        device_delegate_thread_.task_runner(), reprocess_manager_.get());
     num_streams_ = 0;
   }
 
+  void GetNumberOfFakeCameras(
+      cros::mojom::CameraModule::GetNumberOfCamerasCallback& cb) {
+    std::move(cb).Run(1);
+  }
+
+  void GetFakeVendorTagOps(
+      cros::mojom::VendorTagOpsRequest& vendor_tag_ops_request,
+      cros::mojom::CameraModule::GetVendorTagOpsCallback& cb) {
+    mock_vendor_tag_ops_.Bind(std::move(vendor_tag_ops_request));
+  }
+
   void GetFakeCameraInfo(uint32_t camera_id,
                          cros::mojom::CameraModule::GetCameraInfoCallback& cb) {
     cros::mojom::CameraInfoPtr camera_info = cros::mojom::CameraInfo::New();
@@ -285,10 +304,22 @@
     std::move(callback).Run(0);
   }
 
-  void SetUpExpectationUntilInitialized() {
+  void SetUpExpectationForHalDelegate() {
+    EXPECT_CALL(mock_camera_module_, DoGetNumberOfCameras(_))
+        .Times(1)
+        .WillOnce(
+            Invoke(this, &CameraDeviceDelegateTest::GetNumberOfFakeCameras));
+    EXPECT_CALL(mock_camera_module_, DoSetCallbacks(_, _)).Times(1);
+    EXPECT_CALL(mock_camera_module_, DoGetVendorTagOps(_, _))
+        .Times(1)
+        .WillOnce(Invoke(this, &CameraDeviceDelegateTest::GetFakeVendorTagOps));
     EXPECT_CALL(mock_camera_module_, DoGetCameraInfo(0, _))
         .Times(1)
         .WillOnce(Invoke(this, &CameraDeviceDelegateTest::GetFakeCameraInfo));
+  }
+
+  void SetUpExpectationUntilInitialized() {
+    SetUpExpectationForHalDelegate();
     EXPECT_CALL(mock_camera_module_, DoOpenDevice(0, _, _))
         .Times(1)
         .WillOnce(
@@ -399,8 +430,9 @@
   void ResetDevice() {
     ASSERT_TRUE(device_delegate_thread_.IsRunning());
     ASSERT_TRUE(camera_device_delegate_);
+    ASSERT_TRUE(device_delegate_thread_.task_runner()->DeleteSoon(
+        FROM_HERE, std::move(camera_device_delegate_)));
     device_delegate_thread_.Stop();
-    camera_device_delegate_.reset();
     num_streams_ = 0;
   }
 
@@ -432,6 +464,7 @@
   std::unique_ptr<CameraDeviceDelegate> camera_device_delegate_;
 
   testing::StrictMock<unittest_internal::MockCameraModule> mock_camera_module_;
+  testing::NiceMock<unittest_internal::MockVendorTagOps> mock_vendor_tag_ops_;
   unittest_internal::MockGpuMemoryBufferManager mock_gpu_memory_buffer_manager_;
 
   testing::StrictMock<MockCameraDevice> mock_camera_device_;
@@ -455,11 +488,6 @@
 // Test the complete capture flow: initialize, configure stream, capture one
 // frame, and close the device.
 TEST_F(CameraDeviceDelegateTest, AllocateCaptureAndStop) {
-  AllocateDeviceWithDescriptor(kDefaultDescriptor);
-
-  VideoCaptureParams params;
-  params.requested_format = kDefaultCaptureFormat;
-
   auto* mock_client = ResetDeviceContext();
   mock_client->SetFrameCb(BindToCurrentLoop(base::BindOnce(
       &CameraDeviceDelegateTest::QuitRunLoop, base::Unretained(this))));
@@ -468,9 +496,12 @@
   SetUpExpectationUntilCapturing(mock_client);
   SetUpExpectationForCaptureLoop();
 
+  AllocateDevice();
+
   device_delegate_thread_.task_runner()->PostTask(
       FROM_HERE, base::BindOnce(&CameraDeviceDelegate::AllocateAndStart,
-                                camera_device_delegate_->GetWeakPtr(), params,
+                                camera_device_delegate_->GetWeakPtr(),
+                                GetDefaultCaptureParams(),
                                 base::Unretained(device_context_.get())));
 
   // Wait until a frame is received.  MockVideoCaptureClient calls QuitRunLoop()
@@ -488,19 +519,17 @@
 // Test that the camera device delegate closes properly when StopAndDeAllocate
 // is called right after the device is initialized.
 TEST_F(CameraDeviceDelegateTest, StopAfterInitialized) {
-  AllocateDeviceWithDescriptor(kDefaultDescriptor);
-
-  VideoCaptureParams params;
-  params.requested_format = kDefaultCaptureFormat;
-
   auto* mock_client = ResetDeviceContext();
   mock_client->SetQuitCb(BindToCurrentLoop(base::BindOnce(
       &CameraDeviceDelegateTest::QuitRunLoop, base::Unretained(this))));
   SetUpExpectationUntilInitialized();
 
+  AllocateDevice();
+
   device_delegate_thread_.task_runner()->PostTask(
       FROM_HERE, base::BindOnce(&CameraDeviceDelegate::AllocateAndStart,
-                                camera_device_delegate_->GetWeakPtr(), params,
+                                camera_device_delegate_->GetWeakPtr(),
+                                GetDefaultCaptureParams(),
                                 base::Unretained(device_context_.get())));
 
   EXPECT_CALL(mock_camera_device_, DoConfigureStreams(_, _))
@@ -512,9 +541,8 @@
                      callback) {
             EXPECT_EQ(CameraDeviceContext::State::kInitialized,
                       this->GetState());
+            std::move(callback).Run(-ENODEV, {});
             this->QuitRunLoop();
-            std::move(callback).Run(
-                0, cros::mojom::Camera3StreamConfiguration::New());
           }));
 
   // Wait until the QuitRunLoop call in |mock_camera_device_->ConfigureStreams|.
@@ -530,19 +558,17 @@
 // Test that the camera device delegate closes properly when StopAndDeAllocate
 // is called right after the stream is configured.
 TEST_F(CameraDeviceDelegateTest, StopAfterStreamConfigured) {
-  AllocateDeviceWithDescriptor(kDefaultDescriptor);
-
-  VideoCaptureParams params;
-  params.requested_format = kDefaultCaptureFormat;
-
   auto* mock_client = ResetDeviceContext();
   mock_client->SetQuitCb(BindToCurrentLoop(base::BindOnce(
       &CameraDeviceDelegateTest::QuitRunLoop, base::Unretained(this))));
   SetUpExpectationUntilStreamConfigured();
 
+  AllocateDevice();
+
   device_delegate_thread_.task_runner()->PostTask(
       FROM_HERE, base::BindOnce(&CameraDeviceDelegate::AllocateAndStart,
-                                camera_device_delegate_->GetWeakPtr(), params,
+                                camera_device_delegate_->GetWeakPtr(),
+                                GetDefaultCaptureParams(),
                                 base::Unretained(device_context_.get())));
 
   EXPECT_CALL(mock_camera_device_, DoConstructDefaultRequestSettings(_, _))
@@ -553,8 +579,8 @@
                      callback) {
             EXPECT_EQ(CameraDeviceContext::State::kStreamConfigured,
                       this->GetState());
+            std::move(callback).Run({});
             this->QuitRunLoop();
-            std::move(callback).Run(cros::mojom::CameraMetadataPtr());
           }));
 
   // Wait until the QuitRunLoop call in |mock_camera_device_->ConfigureStreams|.
@@ -570,10 +596,9 @@
 // Test that the camera device delegate handles camera device open failures
 // correctly.
 TEST_F(CameraDeviceDelegateTest, FailToOpenDevice) {
-  AllocateDeviceWithDescriptor(kDefaultDescriptor);
+  SetUpExpectationForHalDelegate();
 
-  VideoCaptureParams params;
-  params.requested_format = kDefaultCaptureFormat;
+  AllocateDevice();
 
   auto* mock_client = ResetDeviceContext();
 
@@ -589,17 +614,16 @@
       .Times(AtLeast(1))
       .WillRepeatedly(InvokeWithoutArgs(stop_on_error));
 
-  EXPECT_CALL(mock_camera_module_, DoGetCameraInfo(0, _))
-      .Times(1)
-      .WillOnce(Invoke(this, &CameraDeviceDelegateTest::GetFakeCameraInfo));
-
+  // Hold the |device_ops_request| to make the behavior of CameraDeviceDelegate
+  // deterministic. Otherwise the connection error handler would race with the
+  // callback of OpenDevice(), because they are in different mojo channels.
+  cros::mojom::Camera3DeviceOpsRequest device_ops_request_holder;
   auto open_device_with_error_cb =
-      [](int32_t camera_id,
-         cros::mojom::Camera3DeviceOpsRequest& device_ops_request,
-         base::OnceCallback<void(int32_t)>& callback) {
+      [&](int32_t camera_id,
+          cros::mojom::Camera3DeviceOpsRequest& device_ops_request,
+          base::OnceCallback<void(int32_t)>& callback) {
+        device_ops_request_holder = std::move(device_ops_request);
         std::move(callback).Run(-ENODEV);
-        device_ops_request.ResetWithReason(-ENODEV,
-                                           "Failed to open camera device");
       };
   EXPECT_CALL(mock_camera_module_, DoOpenDevice(0, _, _))
       .Times(1)
@@ -607,7 +631,8 @@
 
   device_delegate_thread_.task_runner()->PostTask(
       FROM_HERE, base::BindOnce(&CameraDeviceDelegate::AllocateAndStart,
-                                camera_device_delegate_->GetWeakPtr(), params,
+                                camera_device_delegate_->GetWeakPtr(),
+                                GetDefaultCaptureParams(),
                                 base::Unretained(device_context_.get())));
 
   // Wait unitl |camera_device_delegate_->StopAndDeAllocate| calls the
@@ -620,11 +645,6 @@
 // Test that the class handles it correctly when StopAndDeAllocate is called
 // multiple times.
 TEST_F(CameraDeviceDelegateTest, DoubleStopAndDeAllocate) {
-  AllocateDeviceWithDescriptor(kDefaultDescriptor);
-
-  VideoCaptureParams params;
-  params.requested_format = kDefaultCaptureFormat;
-
   auto* mock_client = ResetDeviceContext();
   mock_client->SetFrameCb(BindToCurrentLoop(base::BindOnce(
       &CameraDeviceDelegateTest::QuitRunLoop, base::Unretained(this))));
@@ -633,9 +653,12 @@
   SetUpExpectationUntilCapturing(mock_client);
   SetUpExpectationForCaptureLoop();
 
+  AllocateDevice();
+
   device_delegate_thread_.task_runner()->PostTask(
       FROM_HERE, base::BindOnce(&CameraDeviceDelegate::AllocateAndStart,
-                                camera_device_delegate_->GetWeakPtr(), params,
+                                camera_device_delegate_->GetWeakPtr(),
+                                GetDefaultCaptureParams(),
                                 base::Unretained(device_context_.get())));
 
   // Wait until a frame is received.  MockVideoCaptureClient calls QuitRunLoop()
diff --git a/media/capture/video/chromeos/camera_hal_delegate.cc b/media/capture/video/chromeos/camera_hal_delegate.cc
index a4f2b17b..6990532c 100644
--- a/media/capture/video/chromeos/camera_hal_delegate.cc
+++ b/media/capture/video/chromeos/camera_hal_delegate.cc
@@ -15,6 +15,7 @@
 #include "base/posix/safe_strerror.h"
 #include "base/process/launch.h"
 #include "base/strings/strcat.h"
+#include "base/strings/string_number_conversions.h"
 #include "base/strings/string_piece.h"
 #include "base/strings/string_split.h"
 #include "base/system/system_monitor.h"
@@ -134,8 +135,8 @@
   if (!UpdateBuiltInCameraInfo()) {
     return capture_device;
   }
-  base::AutoLock lock(camera_info_lock_);
-  if (camera_info_.find(device_descriptor.device_id) == camera_info_.end()) {
+  int camera_id = GetCameraIdFromDeviceId(device_descriptor.device_id);
+  if (camera_id == -1) {
     LOG(ERROR) << "Invalid camera device: " << device_descriptor.device_id;
     return capture_device;
   }
@@ -153,11 +154,10 @@
   if (!UpdateBuiltInCameraInfo()) {
     return;
   }
-  std::string camera_id = device_descriptor.device_id;
   base::AutoLock lock(camera_info_lock_);
-  if (camera_info_.find(camera_id) == camera_info_.end() ||
-      camera_info_[camera_id].is_null()) {
-    LOG(ERROR) << "Invalid camera_id: " << camera_id;
+  int camera_id = GetCameraIdFromDeviceId(device_descriptor.device_id);
+  if (camera_id == -1 || camera_info_[camera_id].is_null()) {
+    LOG(ERROR) << "Invalid camera device: " << device_descriptor.device_id;
     return;
   }
   const cros::mojom::CameraInfoPtr& camera_info = camera_info_[camera_id];
@@ -230,24 +230,26 @@
     has_camera_connected_.TimedWait(base::TimeDelta::FromSeconds(1));
   }
 
-  base::AutoLock lock(camera_info_lock_);
+  base::AutoLock info_lock(camera_info_lock_);
+  base::AutoLock id_map_lock(device_id_to_camera_id_lock_);
   for (const auto& it : camera_info_) {
-    const std::string& camera_id = it.first;
+    int camera_id = it.first;
     const cros::mojom::CameraInfoPtr& camera_info = it.second;
     if (!camera_info) {
       continue;
     }
     VideoCaptureDeviceDescriptor desc;
-    desc.device_id = camera_id;
     desc.capture_api = VideoCaptureApi::ANDROID_API2_LIMITED;
     desc.transport_type = VideoCaptureTransportType::OTHER_TRANSPORT;
     switch (camera_info->facing) {
       case cros::mojom::CameraFacing::CAMERA_FACING_BACK:
         desc.facing = VideoFacingMode::MEDIA_VIDEO_FACING_ENVIRONMENT;
+        desc.device_id = base::NumberToString(camera_id);
         desc.set_display_name("Back Camera");
         break;
       case cros::mojom::CameraFacing::CAMERA_FACING_FRONT:
         desc.facing = VideoFacingMode::MEDIA_VIDEO_FACING_USER;
+        desc.device_id = base::NumberToString(camera_id);
         desc.set_display_name("Front Camera");
         break;
       case cros::mojom::CameraFacing::CAMERA_FACING_EXTERNAL: {
@@ -264,6 +266,12 @@
           return val.empty() ? nullptr : val.data();
         };
 
+        // The webcam_private api expects that |device_id| to be set as the
+        // corresponding device path for external cameras used in GVC system.
+        auto* path = get_vendor_string("com.google.usb.devicePath");
+        desc.device_id =
+            path != nullptr ? path : base::NumberToString(camera_id);
+
         auto* name = get_vendor_string("com.google.usb.modelName");
         desc.set_display_name(name != nullptr ? name : "External Camera");
 
@@ -277,6 +285,7 @@
         // about malformed values.
       }
     }
+    device_id_to_camera_id_[desc.device_id] = camera_id;
     device_descriptors->push_back(desc);
   }
   // TODO(shik): Report external camera first when lid is closed.
@@ -286,15 +295,18 @@
   DVLOG(1) << "Number of device descriptors: " << device_descriptors->size();
 }
 
-void CameraHalDelegate::GetCameraInfo(int32_t camera_id,
-                                      GetCameraInfoCallback callback) {
-  DCHECK(!ipc_task_runner_->BelongsToCurrentThread());
-  // This method may be called on any thread except |ipc_task_runner_|.
-  // Currently this method is used by CameraDeviceDelegate to query camera info.
-  camera_module_has_been_set_.Wait();
-  ipc_task_runner_->PostTask(
-      FROM_HERE, base::BindOnce(&CameraHalDelegate::GetCameraInfoOnIpcThread,
-                                this, camera_id, std::move(callback)));
+cros::mojom::CameraInfoPtr CameraHalDelegate::GetCameraInfoFromDeviceId(
+    const std::string& device_id) {
+  base::AutoLock lock(camera_info_lock_);
+  int camera_id = GetCameraIdFromDeviceId(device_id);
+  if (camera_id == -1) {
+    return {};
+  }
+  auto it = camera_info_.find(camera_id);
+  if (it == camera_info_.end()) {
+    return {};
+  }
+  return it->second.Clone();
 }
 
 void CameraHalDelegate::OpenDevice(
@@ -312,6 +324,15 @@
                      base::Passed(&device_ops_request), std::move(callback)));
 }
 
+int CameraHalDelegate::GetCameraIdFromDeviceId(const std::string& device_id) {
+  base::AutoLock lock(device_id_to_camera_id_lock_);
+  auto it = device_id_to_camera_id_.find(device_id);
+  if (it == device_id_to_camera_id_.end()) {
+    return -1;
+  }
+  return it->second;
+}
+
 void CameraHalDelegate::SetCameraModuleOnIpcThread(
     cros::mojom::CameraModulePtrInfo camera_module_ptr_info) {
   DCHECK(ipc_task_runner_->BelongsToCurrentThread());
@@ -441,14 +462,14 @@
   SortCameraMetadata(&camera_info->static_camera_characteristics);
 
   base::AutoLock lock(camera_info_lock_);
-  camera_info_[std::to_string(camera_id)] = std::move(camera_info);
+  camera_info_[camera_id] = std::move(camera_info);
 
   if (camera_id < base::checked_cast<int32_t>(num_builtin_cameras_)) {
     // |camera_info_| might contain some entries for external cameras as well,
     // we should check all built-in cameras explicitly.
     bool all_updated = [&]() {
       for (size_t i = 0; i < num_builtin_cameras_; i++) {
-        if (camera_info_.find(std::to_string(i)) == camera_info_.end()) {
+        if (camera_info_.find(i) == camera_info_.end()) {
           return false;
         }
       }
@@ -488,7 +509,7 @@
   DCHECK(ipc_task_runner_->BelongsToCurrentThread());
   VLOG(1) << "camera_id = " << camera_id << ", new_status = " << new_status;
   base::AutoLock lock(camera_info_lock_);
-  auto it = camera_info_.find(std::to_string(camera_id));
+  auto it = camera_info_.find(camera_id);
   switch (new_status) {
     case cros::mojom::CameraDeviceStatus::CAMERA_DEVICE_STATUS_PRESENT:
       if (it == camera_info_.end()) {
diff --git a/media/capture/video/chromeos/camera_hal_delegate.h b/media/capture/video/chromeos/camera_hal_delegate.h
index 395ff32..f8034c7 100644
--- a/media/capture/video/chromeos/camera_hal_delegate.h
+++ b/media/capture/video/chromeos/camera_hal_delegate.h
@@ -65,12 +65,6 @@
       VideoCaptureFormats* supported_formats);
   void GetDeviceDescriptors(VideoCaptureDeviceDescriptors* device_descriptors);
 
-  // Asynchronous method to get the camera info of |camera_id|.  This method may
-  // be called on any thread.
-  using GetCameraInfoCallback =
-      base::OnceCallback<void(int32_t, cros::mojom::CameraInfoPtr)>;
-  void GetCameraInfo(int32_t camera_id, GetCameraInfoCallback callback);
-
   // Asynchronous method to open the camera device designated by |camera_id|.
   // This method may be called on any thread; |callback| will run on
   // |ipc_task_runner_|.
@@ -79,6 +73,13 @@
                   cros::mojom::Camera3DeviceOpsRequest device_ops_request,
                   OpenDeviceCallback callback);
 
+  // Gets camera id from device id. Returns -1 on error.
+  int GetCameraIdFromDeviceId(const std::string& device_id);
+
+  // Gets the camera info of |device_id|. Returns null CameraInfoPtr on error.
+  cros::mojom::CameraInfoPtr GetCameraInfoFromDeviceId(
+      const std::string& device_id);
+
  private:
   friend class base::RefCountedThreadSafe<CameraHalDelegate>;
 
@@ -109,6 +110,8 @@
   // |vendor_tag_ops_delegate_|.
   void OnGotVendorTagOpsOnIpcThread();
 
+  using GetCameraInfoCallback =
+      base::OnceCallback<void(int32_t, cros::mojom::CameraInfoPtr)>;
   void GetCameraInfoOnIpcThread(int32_t camera_id,
                                 GetCameraInfoCallback callback);
   void OnGotCameraInfoOnIpcThread(int32_t camera_id,
@@ -151,10 +154,16 @@
   // UpdateBuiltInCameraInfo and |builtin_camera_info_updated_| to avoid race
   // conditions. For external cameras, the |camera_info_| would be read nad
   // updated in CameraDeviceStatusChange, which is also protected by
-  // |camera_info_lock|.
+  // |camera_info_lock_|.
   size_t num_builtin_cameras_;
   base::Lock camera_info_lock_;
-  std::unordered_map<std::string, cros::mojom::CameraInfoPtr> camera_info_;
+  std::unordered_map<int, cros::mojom::CameraInfoPtr> camera_info_;
+
+  // A map from |VideoCaptureDeviceDescriptor.device_id| to camera id, which is
+  // updated in GetDeviceDescriptors() and queried in
+  // GetCameraIdFromDeviceId().
+  base::Lock device_id_to_camera_id_lock_;
+  std::map<std::string, int> device_id_to_camera_id_;
 
   SEQUENCE_CHECKER(sequence_checker_);
 
diff --git a/media/capture/video/chromeos/camera_hal_delegate_unittest.cc b/media/capture/video/chromeos/camera_hal_delegate_unittest.cc
index 44dcb1e..f9b515e 100644
--- a/media/capture/video/chromeos/camera_hal_delegate_unittest.cc
+++ b/media/capture/video/chromeos/camera_hal_delegate_unittest.cc
@@ -25,6 +25,13 @@
 using testing::Invoke;
 using testing::Return;
 
+namespace {
+
+constexpr uint32_t kDevicePathTag = 0x80000000;
+constexpr char kFakeDevicePath[] = "/dev/video5566";
+
+}  // namespace
+
 namespace media {
 
 class CameraHalDelegateTest : public ::testing::Test {
@@ -114,6 +121,24 @@
         camera_info->orientation = 0;
         camera_info->static_camera_characteristics = std::move(static_metadata);
         break;
+      case 2:
+        entry = cros::mojom::CameraMetadataEntry::New();
+        entry->index = static_metadata->entry_count;
+        entry->tag =
+            static_cast<cros::mojom::CameraMetadataTag>(kDevicePathTag);
+        entry->type = cros::mojom::EntryType::TYPE_BYTE;
+        entry->count = sizeof(kFakeDevicePath);
+        entry->data.assign(std::begin(kFakeDevicePath),
+                           std::end(kFakeDevicePath));
+
+        static_metadata->entry_count++;
+        static_metadata->entry_capacity++;
+        static_metadata->entries->push_back(std::move(entry));
+
+        camera_info->facing = cros::mojom::CameraFacing::CAMERA_FACING_EXTERNAL;
+        camera_info->orientation = 0;
+        camera_info->static_camera_characteristics = std::move(static_metadata);
+        break;
       default:
         FAIL() << "Invalid camera id";
     }
@@ -122,10 +147,17 @@
 
   auto get_vendor_tag_ops_cb =
       [&](cros::mojom::VendorTagOpsRequest& vendor_tag_ops_request,
-          cros::mojom::CameraModule::GetVendorTagOpsCallback& cb) {
+          cros::mojom::CameraModule::GetVendorTagOpsCallback&) {
         mock_vendor_tag_ops_.Bind(std::move(vendor_tag_ops_request));
       };
 
+  auto set_callbacks_cb =
+      [&](cros::mojom::CameraModuleCallbacksPtr& callbacks,
+          cros::mojom::CameraModule::SetCallbacksCallback&) {
+        mock_camera_module_.NotifyCameraDeviceChange(
+            2, cros::mojom::CameraDeviceStatus::CAMERA_DEVICE_STATUS_PRESENT);
+      };
+
   EXPECT_CALL(mock_camera_module_, DoGetNumberOfCameras(_))
       .Times(1)
       .WillOnce(Invoke(get_number_of_cameras_cb));
@@ -133,7 +165,8 @@
       mock_camera_module_,
       DoSetCallbacks(A<cros::mojom::CameraModuleCallbacksPtr&>(),
                      A<cros::mojom::CameraModule::SetCallbacksCallback&>()))
-      .Times(1);
+      .Times(1)
+      .WillOnce(Invoke(set_callbacks_cb));
   EXPECT_CALL(mock_camera_module_,
               DoGetVendorTagOps(
                   A<cros::mojom::VendorTagOpsRequest&>(),
@@ -150,26 +183,29 @@
                   1, A<cros::mojom::CameraModule::GetCameraInfoCallback&>()))
       .Times(1)
       .WillOnce(Invoke(get_camera_info_cb));
+  EXPECT_CALL(mock_camera_module_,
+              DoGetCameraInfo(
+                  2, A<cros::mojom::CameraModule::GetCameraInfoCallback&>()))
+      .Times(1)
+      .WillOnce(Invoke(get_camera_info_cb));
 
   EXPECT_CALL(mock_vendor_tag_ops_, DoGetTagCount())
       .Times(1)
       .WillOnce(Return(1));
 
-  const uint32_t kFakeTag = 0x80000000;
-
   EXPECT_CALL(mock_vendor_tag_ops_, DoGetAllTags())
       .Times(1)
-      .WillOnce(Return(std::vector<uint32_t>{kFakeTag}));
+      .WillOnce(Return(std::vector<uint32_t>{kDevicePathTag}));
 
-  EXPECT_CALL(mock_vendor_tag_ops_, DoGetSectionName(kFakeTag))
+  EXPECT_CALL(mock_vendor_tag_ops_, DoGetSectionName(kDevicePathTag))
       .Times(1)
       .WillOnce(Return("com.google"));
 
-  EXPECT_CALL(mock_vendor_tag_ops_, DoGetTagName(kFakeTag))
+  EXPECT_CALL(mock_vendor_tag_ops_, DoGetTagName(kDevicePathTag))
       .Times(1)
-      .WillOnce(Return("fake.foo.bar"));
+      .WillOnce(Return("usb.devicePath"));
 
-  EXPECT_CALL(mock_vendor_tag_ops_, DoGetTagType(kFakeTag))
+  EXPECT_CALL(mock_vendor_tag_ops_, DoGetTagType(kDevicePathTag))
       .Times(1)
       .WillOnce(
           Return(static_cast<int32_t>(cros::mojom::EntryType::TYPE_BYTE)));
@@ -177,13 +213,15 @@
   VideoCaptureDeviceDescriptors descriptors;
   camera_hal_delegate_->GetDeviceDescriptors(&descriptors);
 
-  ASSERT_EQ(2U, descriptors.size());
+  ASSERT_EQ(3u, descriptors.size());
   // We have workaround to always put front camera at first.
   ASSERT_EQ(std::to_string(1), descriptors[0].device_id);
   ASSERT_EQ(VideoFacingMode::MEDIA_VIDEO_FACING_USER, descriptors[0].facing);
   ASSERT_EQ(std::to_string(0), descriptors[1].device_id);
   ASSERT_EQ(VideoFacingMode::MEDIA_VIDEO_FACING_ENVIRONMENT,
             descriptors[1].facing);
+  ASSERT_EQ(kFakeDevicePath, descriptors[2].device_id);
+  ASSERT_EQ(VideoFacingMode::MEDIA_VIDEO_FACING_NONE, descriptors[2].facing);
 
   // TODO(shik): Test external camera. Check the fields |display_name| and
   // |model_id| are set properly according to the vendor tags.
diff --git a/media/capture/video/chromeos/mock_camera_module.cc b/media/capture/video/chromeos/mock_camera_module.cc
index 9f0d04e..b7da84d 100644
--- a/media/capture/video/chromeos/mock_camera_module.cc
+++ b/media/capture/video/chromeos/mock_camera_module.cc
@@ -3,11 +3,12 @@
 // found in the LICENSE file.
 
 #include "media/capture/video/chromeos/mock_camera_module.h"
-#include "base/bind.h"
 
 #include <memory>
 #include <utility>
 
+#include "base/bind.h"
+
 namespace media {
 namespace unittest_internal {
 
@@ -66,6 +67,20 @@
   std::move(callback).Run();
 }
 
+void MockCameraModule::NotifyCameraDeviceChange(
+    int camera_id,
+    cros::mojom::CameraDeviceStatus status) {
+  mock_module_thread_.task_runner()->PostTask(
+      FROM_HERE, base::Bind(&MockCameraModule::NotifyCameraDeviceChangeOnThread,
+                            base::Unretained(this), camera_id, status));
+}
+
+void MockCameraModule::NotifyCameraDeviceChangeOnThread(
+    int camera_id,
+    cros::mojom::CameraDeviceStatus status) {
+  callbacks_->CameraDeviceStatusChange(camera_id, status);
+}
+
 cros::mojom::CameraModulePtrInfo MockCameraModule::GetInterfacePtrInfo() {
   base::WaitableEvent done(base::WaitableEvent::ResetPolicy::MANUAL,
                            base::WaitableEvent::InitialState::NOT_SIGNALED);
@@ -82,6 +97,9 @@
   if (binding_.is_bound()) {
     binding_.Close();
   }
+  if (callbacks_.is_bound()) {
+    callbacks_.reset();
+  }
 }
 
 void MockCameraModule::BindOnThread(
diff --git a/media/capture/video/chromeos/mock_camera_module.h b/media/capture/video/chromeos/mock_camera_module.h
index 2063b4c1..f10d2b7 100644
--- a/media/capture/video/chromeos/mock_camera_module.h
+++ b/media/capture/video/chromeos/mock_camera_module.h
@@ -63,9 +63,15 @@
                void(cros::mojom::VendorTagOpsRequest& vendor_tag_ops_request,
                     GetVendorTagOpsCallback& callback));
 
+  void NotifyCameraDeviceChange(int camera_id,
+                                cros::mojom::CameraDeviceStatus status);
+
   cros::mojom::CameraModulePtrInfo GetInterfacePtrInfo();
 
  private:
+  void NotifyCameraDeviceChangeOnThread(int camera_id,
+                                        cros::mojom::CameraDeviceStatus status);
+
   void CloseBindingOnThread();
 
   void BindOnThread(base::WaitableEvent* done,
diff --git a/media/capture/video/chromeos/reprocess_manager.cc b/media/capture/video/chromeos/reprocess_manager.cc
index ed5e466..9fce50d 100644
--- a/media/capture/video/chromeos/reprocess_manager.cc
+++ b/media/capture/video/chromeos/reprocess_manager.cc
@@ -44,10 +44,11 @@
   return kReprocessSuccess;
 }
 
-ReprocessManager::ReprocessManager(UpdateCameraInfoCallback callback)
+ReprocessManager::ReprocessManager(CameraInfoGetter get_camera_info)
     : sequenced_task_runner_(base::CreateSequencedTaskRunnerWithTraits(
           {base::TaskPriority::USER_VISIBLE})),
-      impl(new ReprocessManager::ReprocessManagerImpl(std::move(callback))) {}
+      impl(std::make_unique<ReprocessManager::ReprocessManagerImpl>(
+          std::move(get_camera_info))) {}
 
 ReprocessManager::~ReprocessManager() {
   sequenced_task_runner_->DeleteSoon(FROM_HERE, std::move(impl));
@@ -95,19 +96,9 @@
                      std::move(callback)));
 }
 
-void ReprocessManager::UpdateCameraInfo(
-    const std::string& device_id,
-    const cros::mojom::CameraInfoPtr& camera_info) {
-  sequenced_task_runner_->PostTask(
-      FROM_HERE,
-      base::BindOnce(&ReprocessManager::ReprocessManagerImpl::UpdateCameraInfo,
-                     base::Unretained(impl.get()), device_id,
-                     camera_info.Clone()));
-}
-
 ReprocessManager::ReprocessManagerImpl::ReprocessManagerImpl(
-    UpdateCameraInfoCallback callback)
-    : update_camera_info_callback_(std::move(callback)) {}
+    CameraInfoGetter get_camera_info)
+    : get_camera_info_(std::move(get_camera_info)) {}
 
 ReprocessManager::ReprocessManagerImpl::~ReprocessManagerImpl() = default;
 
@@ -165,24 +156,7 @@
 void ReprocessManager::ReprocessManagerImpl::GetCameraInfo(
     const std::string& device_id,
     GetCameraInfoCallback callback) {
-  if (camera_info_map_[device_id]) {
-    std::move(callback).Run(camera_info_map_[device_id].Clone());
-  } else {
-    get_camera_info_callback_queue_map_[device_id].push(std::move(callback));
-    update_camera_info_callback_.Run(device_id);
-  }
-}
-
-void ReprocessManager::ReprocessManagerImpl::UpdateCameraInfo(
-    const std::string& device_id,
-    cros::mojom::CameraInfoPtr camera_info) {
-  camera_info_map_[device_id] = std::move(camera_info);
-
-  auto& callback_queue = get_camera_info_callback_queue_map_[device_id];
-  while (!callback_queue.empty()) {
-    std::move(callback_queue.front()).Run(camera_info_map_[device_id].Clone());
-    callback_queue.pop();
-  }
+  std::move(callback).Run(get_camera_info_.Run(device_id));
 }
 
 }  // namespace media
diff --git a/media/capture/video/chromeos/reprocess_manager.h b/media/capture/video/chromeos/reprocess_manager.h
index 2f362471..c7dea66 100644
--- a/media/capture/video/chromeos/reprocess_manager.h
+++ b/media/capture/video/chromeos/reprocess_manager.h
@@ -47,14 +47,14 @@
 // sequentialize to a single sequence.
 class CAPTURE_EXPORT ReprocessManager {
  public:
+  using CameraInfoGetter = base::RepeatingCallback<cros::mojom::CameraInfoPtr(
+      const std::string& device_id)>;
   using GetCameraInfoCallback =
       base::OnceCallback<void(cros::mojom::CameraInfoPtr camera_info)>;
-  using UpdateCameraInfoCallback =
-      base::RepeatingCallback<void(const std::string& device_id)>;
 
   class ReprocessManagerImpl {
    public:
-    ReprocessManagerImpl(UpdateCameraInfoCallback callback);
+    ReprocessManagerImpl(CameraInfoGetter get_camera_info);
     ~ReprocessManagerImpl();
 
     void SetReprocessOption(
@@ -73,19 +73,11 @@
     void GetCameraInfo(const std::string& device_id,
                        GetCameraInfoCallback callback);
 
-    void UpdateCameraInfo(const std::string& device_id,
-                          cros::mojom::CameraInfoPtr camera_info);
-
    private:
     base::flat_map<std::string, base::queue<ReprocessTask>>
         reprocess_task_queue_map_;
 
-    base::flat_map<std::string, cros::mojom::CameraInfoPtr> camera_info_map_;
-
-    base::flat_map<std::string, base::queue<GetCameraInfoCallback>>
-        get_camera_info_callback_queue_map_;
-
-    UpdateCameraInfoCallback update_camera_info_callback_;
+    CameraInfoGetter get_camera_info_;
 
     DISALLOW_COPY_AND_ASSIGN(ReprocessManagerImpl);
   };
@@ -93,7 +85,7 @@
   static int GetReprocessReturnCode(
       cros::mojom::Effect effect,
       const cros::mojom::CameraMetadataPtr* metadata);
-  ReprocessManager(UpdateCameraInfoCallback callback);
+  ReprocessManager(CameraInfoGetter callback);
   ~ReprocessManager();
 
   // Sets the reprocess option for given device id and effect. Each reprocess
@@ -118,10 +110,6 @@
   void GetCameraInfo(const std::string& device_id,
                      GetCameraInfoCallback callback);
 
-  // Updates camera information for given device.
-  void UpdateCameraInfo(const std::string& device_id,
-                        const cros::mojom::CameraInfoPtr& camera_info);
-
  private:
   scoped_refptr<base::SequencedTaskRunner> sequenced_task_runner_;
   std::unique_ptr<ReprocessManagerImpl> impl;
diff --git a/media/capture/video/chromeos/video_capture_device_factory_chromeos.cc b/media/capture/video/chromeos/video_capture_device_factory_chromeos.cc
index e3777da..03c20618 100644
--- a/media/capture/video/chromeos/video_capture_device_factory_chromeos.cc
+++ b/media/capture/video/chromeos/video_capture_device_factory_chromeos.cc
@@ -26,10 +26,11 @@
       camera_hal_ipc_thread_("CameraHalIpcThread"),
       initialized_(Init()),
       weak_ptr_factory_(this) {
-  auto callback =
+  auto get_camera_info =
       base::BindRepeating(&VideoCaptureDeviceFactoryChromeOS::GetCameraInfo,
                           base::Unretained(this));
-  reprocess_manager_ = std::make_unique<ReprocessManager>(std::move(callback));
+  reprocess_manager_ =
+      std::make_unique<ReprocessManager>(std::move(get_camera_info));
   cros_image_capture_ =
       std::make_unique<CrosImageCaptureImpl>(reprocess_manager_.get());
 }
@@ -97,23 +98,12 @@
   return true;
 }
 
-void VideoCaptureDeviceFactoryChromeOS::GetCameraInfo(
+cros::mojom::CameraInfoPtr VideoCaptureDeviceFactoryChromeOS::GetCameraInfo(
     const std::string& device_id) {
   if (!initialized_) {
-    return;
+    return {};
   }
-  camera_hal_delegate_->GetCameraInfo(
-      std::stoi(device_id),
-      BindToCurrentLoop(
-          base::BindOnce(&VideoCaptureDeviceFactoryChromeOS::OnGotCameraInfo,
-                         weak_ptr_factory_.GetWeakPtr(), device_id)));
-}
-
-void VideoCaptureDeviceFactoryChromeOS::OnGotCameraInfo(
-    const std::string& device_id,
-    int32_t result,
-    cros::mojom::CameraInfoPtr camera_info) {
-  reprocess_manager_->UpdateCameraInfo(device_id, std::move(camera_info));
+  return camera_hal_delegate_->GetCameraInfoFromDeviceId(device_id);
 }
 
 void VideoCaptureDeviceFactoryChromeOS::BindCrosImageCaptureRequest(
diff --git a/media/capture/video/chromeos/video_capture_device_factory_chromeos.h b/media/capture/video/chromeos/video_capture_device_factory_chromeos.h
index 616eb3e..9f72384 100644
--- a/media/capture/video/chromeos/video_capture_device_factory_chromeos.h
+++ b/media/capture/video/chromeos/video_capture_device_factory_chromeos.h
@@ -51,13 +51,9 @@
   // succeeds.
   bool Init();
 
-  // Actively request camera static metadata for given |device_id|.
-  void GetCameraInfo(const std::string& device_id);
-
-  // Callback when receiving |camera_info| that contains camera static metadata.
-  void OnGotCameraInfo(const std::string& device_id,
-                       int32_t result,
-                       cros::mojom::CameraInfoPtr camera_info);
+  // Gets camera info for the given |device_id|. Returns null CameraInfoPtr on
+  // error.
+  cros::mojom::CameraInfoPtr GetCameraInfo(const std::string& device_id);
 
   const scoped_refptr<base::SingleThreadTaskRunner>
       task_runner_for_screen_observer_;
diff --git a/media/gpu/v4l2/v4l2_decode_surface.cc b/media/gpu/v4l2/v4l2_decode_surface.cc
index ae98f68..5756f98 100644
--- a/media/gpu/v4l2/v4l2_decode_surface.cc
+++ b/media/gpu/v4l2/v4l2_decode_surface.cc
@@ -21,6 +21,19 @@
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 }
 
+V4L2DecodeSurface::V4L2DecodeSurface(V4L2WritableBufferRef input_buffer,
+                                     V4L2WritableBufferRef output_buffer,
+                                     scoped_refptr<VideoFrame> frame,
+                                     base::OnceClosure release_cb)
+    : V4L2DecodeSurface(input_buffer.BufferId(),
+                        output_buffer.BufferId(),
+                        std::move(release_cb)) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  input_buffer_ = std::move(input_buffer);
+  output_buffer_ = std::move(output_buffer);
+  video_frame_ = std::move(frame);
+}
+
 V4L2DecodeSurface::~V4L2DecodeSurface() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
diff --git a/media/gpu/v4l2/v4l2_decode_surface.h b/media/gpu/v4l2/v4l2_decode_surface.h
index 8382516..617ac5f 100644
--- a/media/gpu/v4l2/v4l2_decode_surface.h
+++ b/media/gpu/v4l2/v4l2_decode_surface.h
@@ -11,6 +11,7 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/sequence_checker.h"
+#include "media/gpu/v4l2/v4l2_device.h"
 #include "ui/gfx/geometry/rect.h"
 
 struct v4l2_ext_controls;
@@ -31,10 +32,16 @@
   // that corresponds to this instance.
   // |release_cb| is the callback function that will be called when the instance
   // is destroyed.
+  // DEPRECATED: use the other constructor for new code.
   V4L2DecodeSurface(int input_record,
                     int output_record,
                     base::OnceClosure release_cb);
 
+  V4L2DecodeSurface(V4L2WritableBufferRef input_buffer,
+                    V4L2WritableBufferRef output_buffer,
+                    scoped_refptr<VideoFrame> frame,
+                    base::OnceClosure release_cb);
+
   // Mark the surface as decoded. This will also release all surfaces used for
   // reference, as they are not needed anymore and execute the done callback,
   // if not null.
@@ -64,7 +71,16 @@
 
   bool decoded() const { return decoded_; }
   int input_record() const { return input_record_; }
+  V4L2WritableBufferRef& input_buffer() {
+    DCHECK(input_buffer_.IsValid());
+    return input_buffer_;
+  }
   int output_record() const { return output_record_; }
+  V4L2WritableBufferRef& output_buffer() {
+    DCHECK(output_buffer_.IsValid());
+    return output_buffer_;
+  }
+  scoped_refptr<VideoFrame> video_frame() const { return video_frame_; }
   gfx::Rect visible_rect() const { return visible_rect_; }
 
   std::string ToString() const;
@@ -78,8 +94,11 @@
  private:
   // The index of the corresponding input record.
   const int input_record_;
+  V4L2WritableBufferRef input_buffer_;
   // The index of the corresponding output record.
   const int output_record_;
+  V4L2WritableBufferRef output_buffer_;
+  scoped_refptr<VideoFrame> video_frame_;
   // The visible size of the buffer.
   gfx::Rect visible_rect_;
 
@@ -107,6 +126,17 @@
       : V4L2DecodeSurface(input_record, output_record, std::move(release_cb)),
         config_store_(input_record + 1) {}
 
+  V4L2ConfigStoreDecodeSurface(V4L2WritableBufferRef input_buffer,
+                               V4L2WritableBufferRef output_buffer,
+                               scoped_refptr<VideoFrame> frame,
+                               base::OnceClosure release_cb)
+      : V4L2DecodeSurface(std::move(input_buffer),
+                          std::move(output_buffer),
+                          std::move(frame),
+                          std::move(release_cb)),
+        // config store IDs are arbitrarily defined to be buffer ID + 1
+        config_store_(this->input_buffer().BufferId() + 1) {}
+
   void PrepareSetCtrls(struct v4l2_ext_controls* ctrls) const override;
   void PrepareQueueBuffer(struct v4l2_buffer* buffer) const override;
   uint64_t GetReferenceID() const override;
diff --git a/media/gpu/v4l2/v4l2_device.cc b/media/gpu/v4l2/v4l2_device.cc
index 73235433..4441a84c 100644
--- a/media/gpu/v4l2/v4l2_device.cc
+++ b/media/gpu/v4l2/v4l2_device.cc
@@ -21,6 +21,8 @@
 #include "media/base/video_types.h"
 #include "media/gpu/macros.h"
 #include "media/gpu/v4l2/generic_v4l2_device.h"
+#include "media/gpu/v4l2/v4l2_decode_surface.h"
+
 #if defined(ARCH_CPU_ARMEL)
 #include "media/gpu/v4l2/tegra_v4l2_device.h"
 #endif
diff --git a/media/gpu/v4l2/v4l2_device.h b/media/gpu/v4l2/v4l2_device.h
index 0a7ccd1d..7c69ad14 100644
--- a/media/gpu/v4l2/v4l2_device.h
+++ b/media/gpu/v4l2/v4l2_device.h
@@ -24,7 +24,6 @@
 #include "media/base/video_frame.h"
 #include "media/base/video_frame_layout.h"
 #include "media/gpu/media_gpu_export.h"
-#include "media/gpu/v4l2/v4l2_decode_surface.h"
 #include "media/video/video_decode_accelerator.h"
 #include "media/video/video_encode_accelerator.h"
 #include "ui/gfx/geometry/size.h"
@@ -47,6 +46,7 @@
 class V4L2Queue;
 class V4L2BufferRefBase;
 class V4L2BuffersList;
+class V4L2DecodeSurface;
 
 // A unique reference to a buffer for clients to prepare and submit.
 //
diff --git a/media/gpu/v4l2/v4l2_slice_video_decoder.cc b/media/gpu/v4l2/v4l2_slice_video_decoder.cc
index fb6cc855..54fc3e6 100644
--- a/media/gpu/v4l2/v4l2_slice_video_decoder.cc
+++ b/media/gpu/v4l2/v4l2_slice_video_decoder.cc
@@ -60,29 +60,6 @@
 
 }  // namespace
 
-struct V4L2SliceVideoDecoder::InputRecord {
-  // The writable buffer got from V4L2 input queue. The value is valid from the
-  // time the surface is created, until the input buffer is enqueued into V4L2
-  // device.
-  V4L2WritableBufferRef input_buf;
-
-  explicit InputRecord(V4L2WritableBufferRef buf) : input_buf(std::move(buf)) {}
-};
-
-struct V4L2SliceVideoDecoder::OutputRecord {
-  // The DMA-buf VideoFrame. The DMA-buf will be enqueued into V4L2 device.
-  // After dequeued from V4L2 device, the frame will be sent to the client
-  // of the VideoDecoder.
-  scoped_refptr<VideoFrame> frame;
-  // The writable buffer got from V4L2 output queue. The value is valid from
-  // the time the surface is created, until the buffer is enqueued into V4L2
-  // device.
-  V4L2WritableBufferRef output_buf;
-
-  OutputRecord(scoped_refptr<VideoFrame> f, V4L2WritableBufferRef buf)
-      : frame(std::move(f)), output_buf(std::move(buf)) {}
-};
-
 struct V4L2SliceVideoDecoder::OutputRequest {
   enum OutputRequestType {
     // The surface to be outputted.
@@ -379,7 +356,6 @@
                                   base::BindOnce(std::move(init_cb), false));
     return;
   }
-  input_record_map_.clear();
 
   // Call init_cb
   output_cb_ = output_cb;
@@ -654,12 +630,9 @@
 
       case OutputRequest::kSurface:
         scoped_refptr<V4L2DecodeSurface> surface = std::move(request.surface);
-        auto surface_it = output_record_map_.find(surface->output_record());
-        DCHECK(surface_it != output_record_map_.end());
-        OutputRecord* output_record = surface_it->second.get();
 
-        DCHECK_NE(output_record->frame, nullptr);
-        RunOutputCB(output_record->frame);
+        DCHECK(surface->video_frame());
+        RunOutputCB(surface->video_frame());
         break;
     }
   }
@@ -676,12 +649,10 @@
   DCHECK(decoder_task_runner_->RunsTasksInCurrentSequence());
   DCHECK_EQ(state_, State::kPause);
   // We change resolution after outputting all pending surfaces, there should
-  // be no V4L2DecodeSurface left. Also, the corresponding OutputRecord in
-  // |output_record_map_| is erased when the surface is released. Therefore
-  // |output_record_map_| should also be empty.
+  // be no V4L2DecodeSurface left.
   DCHECK(surfaces_at_device_.empty());
-  DCHECK(output_record_map_.empty());
-  DCHECK(input_record_map_.empty());
+  DCHECK_EQ(input_queue_->QueuedBuffersCount(), 0u);
+  DCHECK_EQ(output_queue_->QueuedBuffersCount(), 0u);
 
   DCHECK(output_request_queue_.empty());
   if (!StopStreamV4L2Queue())
@@ -767,29 +738,15 @@
     return nullptr;
   }
 
-  // Record the frame and V4L2 buffers to the input and output records.
-  int input_record_id = input_buf.BufferId();
-  DCHECK(input_record_map_.find(input_record_id) == input_record_map_.end());
-  input_record_map_.insert(std::make_pair(
-      input_record_id, std::make_unique<InputRecord>(std::move(input_buf))));
-
-  int output_record_id = output_buf.BufferId();
-  DCHECK(output_record_map_.find(output_record_id) == output_record_map_.end());
-  output_record_map_.insert(std::make_pair(
-      output_record_id,
-      std::make_unique<OutputRecord>(std::move(frame), std::move(output_buf))));
-
   return scoped_refptr<V4L2DecodeSurface>(new V4L2ConfigStoreDecodeSurface(
-      input_record_id, output_record_id, base::DoNothing()));
+      std::move(input_buf), std::move(output_buf), std::move(frame),
+      base::DoNothing()));
 }
 
 void V4L2SliceVideoDecoder::ReuseOutputBuffer(V4L2ReadableBufferRef buffer) {
   DCHECK(decoder_task_runner_->RunsTasksInCurrentSequence());
   DVLOGF(3) << "Reuse output surface #" << buffer->BufferId();
 
-  // Release the VideoFrame and V4L2 output buffer in the output record.
-  output_record_map_.erase(buffer->BufferId());
-
   // Resume decoding in case of ran out of surface.
   if (state_ == State::kDecoding) {
     decoder_task_runner_->PostTask(
@@ -805,12 +762,8 @@
   DCHECK(decoder_task_runner_->RunsTasksInCurrentSequence());
   DVLOGF(3);
 
-  auto surface_it = input_record_map_.find(dec_surface->input_record());
-  DCHECK(surface_it != input_record_map_.end());
-  InputRecord* input_record = surface_it->second.get();
-
-  size_t plane_size = input_record->input_buf.GetPlaneSize(0);
-  size_t bytes_used = input_record->input_buf.GetPlaneBytesUsed(0);
+  size_t plane_size = dec_surface->input_buffer().GetPlaneSize(0);
+  size_t bytes_used = dec_surface->input_buffer().GetPlaneBytesUsed(0);
   if (size > plane_size - bytes_used) {
     VLOGF(1) << "The size of submitted slice(" << size
              << ") is larger than the remaining buffer size("
@@ -819,9 +772,9 @@
     return false;
   }
 
-  void* mapping = input_record->input_buf.GetPlaneMapping(0);
+  void* mapping = dec_surface->input_buffer().GetPlaneMapping(0);
   memcpy(reinterpret_cast<uint8_t*>(mapping) + bytes_used, data, size);
-  input_record->input_buf.SetPlaneBytesUsed(0, bytes_used + size);
+  dec_surface->input_buffer().SetPlaneBytesUsed(0, bytes_used + size);
   return true;
 }
 
@@ -831,26 +784,19 @@
   DVLOGF(3);
 
   // Enqueue input_buf and output_buf
-  auto input_it = input_record_map_.find(dec_surface->input_record());
-  DCHECK(input_it != input_record_map_.end());
-  InputRecord* input_record = input_it->second.get();
-  input_record->input_buf.PrepareQueueBuffer(dec_surface);
-  if (!std::move(input_record->input_buf).QueueMMap()) {
+  dec_surface->input_buffer().PrepareQueueBuffer(dec_surface);
+  if (!std::move(dec_surface->input_buffer()).QueueMMap()) {
     SetState(State::kError);
     return;
   }
-  input_record_map_.erase(input_it);
 
-  auto surface_it = output_record_map_.find(dec_surface->output_record());
-  DCHECK(surface_it != output_record_map_.end());
-  OutputRecord* output_record = surface_it->second.get();
-  if (!IsValidFrameForQueueDMABuf(output_record->frame.get(),
+  if (!IsValidFrameForQueueDMABuf(dec_surface->video_frame().get(),
                                   num_output_planes_)) {
     SetState(State::kError);
     return;
   }
-  if (!std::move(output_record->output_buf)
-           .QueueDMABuf(output_record->frame->DmabufFds())) {
+  if (!std::move(dec_surface->output_buffer())
+           .QueueDMABuf(dec_surface->video_frame()->DmabufFds())) {
     SetState(State::kError);
     return;
   }
@@ -928,12 +874,10 @@
   // Streamoff input queue.
   if (input_queue_->IsStreaming())
     input_queue_->Streamoff();
-  input_record_map_.clear();
 
   // Streamoff output queue.
   if (output_queue_->IsStreaming())
     output_queue_->Streamoff();
-  output_record_map_.clear();
   while (!surfaces_at_device_.empty())
     surfaces_at_device_.pop();
 
diff --git a/media/gpu/v4l2/v4l2_slice_video_decoder.h b/media/gpu/v4l2/v4l2_slice_video_decoder.h
index 1cdc0ad..5b2f5e9 100644
--- a/media/gpu/v4l2/v4l2_slice_video_decoder.h
+++ b/media/gpu/v4l2/v4l2_slice_video_decoder.h
@@ -80,10 +80,6 @@
   ~V4L2SliceVideoDecoder() override;
   void Destroy() override;
 
-  // Record for the V4L2 input buffer.
-  struct InputRecord;
-  // Record for the V4L2 output buffer.
-  struct OutputRecord;
   // Request for decoding buffer. Every Decode() call generates 1 DecodeRequest.
   struct DecodeRequest {
     // The decode buffer passed from Decode().
@@ -215,10 +211,6 @@
   // V4L2 input and output queue.
   scoped_refptr<V4L2Queue> input_queue_;
   scoped_refptr<V4L2Queue> output_queue_;
-  // Mapping from input_record() of surface to its InputRecord.
-  std::map<size_t, std::unique_ptr<InputRecord>> input_record_map_;
-  // Mapping from output_record() of surface to its OutputRecord.
-  std::map<size_t, std::unique_ptr<OutputRecord>> output_record_map_;
 
   // Queue of pending decode request.
   base::queue<DecodeRequest> decode_request_queue_;
diff --git a/printing/printing_context_win_unittest.cc b/printing/printing_context_win_unittest.cc
index 09ae599..59aabfc 100644
--- a/printing/printing_context_win_unittest.cc
+++ b/printing/printing_context_win_unittest.cc
@@ -8,7 +8,7 @@
 #include <stdint.h>
 
 #include "base/bind.h"
-#include "base/message_loop/message_loop.h"
+#include "base/test/scoped_task_environment.h"
 #include "base/win/scoped_handle.h"
 #include "base/win/scoped_hdc.h"
 #include "printing/backend/printing_info_win.h"
@@ -145,7 +145,7 @@
   if (IsTestCaseDisabled())
     return;
 
-  base::MessageLoop message_loop;
+  base::test::ScopedTaskEnvironment scoped_task_environment;
   MockPrintingContextWin context(this);
   context.AskUserForSettings(
       123, false, false,
@@ -160,7 +160,7 @@
   if (IsTestCaseDisabled())
     return;
 
-  base::MessageLoop message_loop;
+  base::test::ScopedTaskEnvironment scoped_task_environment;
   MockPrintingContextWin context(this);
   context.AskUserForSettings(
       123, false, false,
diff --git a/remoting/host/heartbeat_sender.cc b/remoting/host/heartbeat_sender.cc
index fc9e95f8..72a7bba 100644
--- a/remoting/host/heartbeat_sender.cc
+++ b/remoting/host/heartbeat_sender.cc
@@ -75,39 +75,35 @@
     false,
 };
 
-using HeartbeatResponseCallback =
-    base::OnceCallback<void(const grpc::Status&,
-                            const apis::v1::HeartbeatResponse&)>;
-
 }  // namespace
 
-class HeartbeatSender::HeartbeatClient final {
+class HeartbeatSender::HeartbeatClientImpl final
+    : public HeartbeatSender::HeartbeatClient {
  public:
-  HeartbeatClient(OAuthTokenGetter* oauth_token_getter);
-  ~HeartbeatClient();
+  explicit HeartbeatClientImpl(OAuthTokenGetter* oauth_token_getter);
+  ~HeartbeatClientImpl() override;
 
   void Heartbeat(const apis::v1::HeartbeatRequest& request,
-                 HeartbeatResponseCallback callback);
-  void CancelPendingRequests();
-  void SetChannelForTest(GrpcChannelSharedPtr channel);
+                 HeartbeatResponseCallback callback) override;
+  void CancelPendingRequests() override;
 
  private:
   using DirectoryService = apis::v1::RemotingDirectoryService;
   std::unique_ptr<DirectoryService::Stub> directory_;
   GrpcAuthenticatedExecutor executor_;
-  DISALLOW_COPY_AND_ASSIGN(HeartbeatClient);
+  DISALLOW_COPY_AND_ASSIGN(HeartbeatClientImpl);
 };
 
-HeartbeatSender::HeartbeatClient::HeartbeatClient(
+HeartbeatSender::HeartbeatClientImpl::HeartbeatClientImpl(
     OAuthTokenGetter* oauth_token_getter)
     : executor_(oauth_token_getter) {
   directory_ = DirectoryService::NewStub(CreateSslChannelForEndpoint(
       ServiceUrls::GetInstance()->remoting_server_endpoint()));
 }
 
-HeartbeatSender::HeartbeatClient::~HeartbeatClient() = default;
+HeartbeatSender::HeartbeatClientImpl::~HeartbeatClientImpl() = default;
 
-void HeartbeatSender::HeartbeatClient::Heartbeat(
+void HeartbeatSender::HeartbeatClientImpl::Heartbeat(
     const apis::v1::HeartbeatRequest& request,
     HeartbeatResponseCallback callback) {
   std::string host_offline_reason_or_empty_log =
@@ -129,16 +125,11 @@
   executor_.ExecuteRpc(std::move(async_request));
 }
 
-void HeartbeatSender::HeartbeatClient::CancelPendingRequests() {
+void HeartbeatSender::HeartbeatClientImpl::CancelPendingRequests() {
   executor_.CancelPendingRequests();
 }
 
-void HeartbeatSender::HeartbeatClient::SetChannelForTest(
-    GrpcChannelSharedPtr channel) {
-  directory_ = DirectoryService::NewStub(channel);
-}
-
-// end of HeartbeatSender::HeartbeatClient
+// end of HeartbeatSender::HeartbeatClientImpl
 
 HeartbeatSender::HeartbeatSender(
     base::OnceClosure on_heartbeat_successful_callback,
@@ -146,7 +137,6 @@
     base::OnceClosure on_auth_error,
     const std::string& host_id,
     MuxingSignalStrategy* signal_strategy,
-    const scoped_refptr<const RsaKeyPair>& host_key_pair,
     OAuthTokenGetter* oauth_token_getter,
     LogToServer* log_to_server)
     : on_heartbeat_successful_callback_(
@@ -155,12 +145,10 @@
       on_auth_error_(std::move(on_auth_error)),
       host_id_(host_id),
       signal_strategy_(signal_strategy),
-      host_key_pair_(host_key_pair),
-      client_(std::make_unique<HeartbeatClient>(oauth_token_getter)),
+      client_(std::make_unique<HeartbeatClientImpl>(oauth_token_getter)),
       log_to_server_(log_to_server),
       oauth_token_getter_(oauth_token_getter),
       backoff_(&kBackoffPolicy) {
-  DCHECK(host_key_pair_.get());
   DCHECK(log_to_server_);
 
   signal_strategy_->AddListener(this);
@@ -188,10 +176,6 @@
   }
 }
 
-void HeartbeatSender::SetGrpcChannelForTest(GrpcChannelSharedPtr channel) {
-  client_->SetChannelForTest(channel);
-}
-
 void HeartbeatSender::OnSignalStrategyStateChange(SignalStrategy::State state) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   switch (state) {
@@ -250,7 +234,6 @@
   client_->Heartbeat(
       CreateHeartbeatRequest(),
       base::BindOnce(&HeartbeatSender::OnResponse, base::Unretained(this)));
-  ++sequence_id_;
 
   // Send a heartbeat log
   std::unique_ptr<ServerLogEntry> log_entry = MakeLogEntryForHeartbeat();
@@ -362,11 +345,9 @@
     }
   }
   heartbeat.set_host_id(host_id_);
-  heartbeat.set_sequence_id(sequence_id_);
   if (!host_offline_reason_.empty()) {
     heartbeat.set_host_offline_reason(host_offline_reason_);
   }
-  heartbeat.set_signature(CreateSignature(signaling_id));
   // Append host version.
   heartbeat.set_host_version(STRINGIZE(VERSION));
   // If we have not recorded a heartbeat success, continue sending host OS info.
@@ -379,10 +360,4 @@
   return heartbeat;
 }
 
-std::string HeartbeatSender::CreateSignature(const std::string& signaling_id) {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  std::string message = signaling_id + ' ' + base::NumberToString(sequence_id_);
-  return host_key_pair_->SignMessage(message);
-}
-
 }  // namespace remoting
diff --git a/remoting/host/heartbeat_sender.h b/remoting/host/heartbeat_sender.h
index fb1bfac..91b3cbf9 100644
--- a/remoting/host/heartbeat_sender.h
+++ b/remoting/host/heartbeat_sender.h
@@ -11,12 +11,9 @@
 #include "base/callback.h"
 #include "base/gtest_prod_util.h"
 #include "base/macros.h"
-#include "base/memory/ref_counted.h"
 #include "base/sequence_checker.h"
 #include "base/timer/timer.h"
 #include "net/base/backoff_entry.h"
-#include "remoting/base/grpc_support/grpc_channel.h"
-#include "remoting/base/rsa_key_pair.h"
 #include "remoting/proto/remoting/v1/directory_messages.pb.h"
 #include "remoting/signaling/muxing_signal_strategy.h"
 
@@ -32,7 +29,6 @@
 
 class LogToServer;
 class OAuthTokenGetter;
-class RsaKeyPair;
 
 // HeartbeatSender periodically sends heartbeat to the directory service. See
 // the HeartbeatRequest message in directory_messages.proto for more details.
@@ -45,18 +41,6 @@
 // host_exit_codes.cc (i.e. "INVALID_HOST_CONFIGURATION" string) or one of
 // kHostOfflineReasonXxx constants (i.e. "POLICY_READ_ERROR" string).
 //
-// The sequence_id field of the heartbeat is a zero-based incrementally
-// increasing integer unique to each heartbeat from a single host.
-// The server checks the value, and if it is incorrect, includes the
-// correct value in the result stanza. The host should then send another
-// heartbeat, with the correct sequence-id, and increment the sequence-id in
-// susbequent heartbeats.
-// The signature is a base-64 encoded SHA-1 hash, signed with the host's
-// private RSA key. The message being signed is the full Jid concatenated with
-// the sequence-id, separated by one space. For example, for the heartbeat
-// stanza above, the message that is signed is
-// "user@gmail.com/chromoting_ftl_abc123 456".
-//
 // The sends a HeartbeatResponse in response to each successful heartbeat.
 class HeartbeatSender final : public SignalStrategy::Listener {
  public:
@@ -78,7 +62,6 @@
                   base::OnceClosure on_auth_error,
                   const std::string& host_id,
                   MuxingSignalStrategy* signal_strategy,
-                  const scoped_refptr<const RsaKeyPair>& host_key_pair,
                   OAuthTokenGetter* oauth_token_getter,
                   LogToServer* log_to_server);
   ~HeartbeatSender() override;
@@ -97,12 +80,23 @@
       base::OnceCallback<void(bool success)> ack_callback);
 
  private:
-  class HeartbeatClient;
+  class HeartbeatClient {
+   public:
+    using HeartbeatResponseCallback =
+        base::OnceCallback<void(const grpc::Status&,
+                                const apis::v1::HeartbeatResponse&)>;
+
+    virtual ~HeartbeatClient() = default;
+
+    virtual void Heartbeat(const apis::v1::HeartbeatRequest& request,
+                           HeartbeatResponseCallback callback) = 0;
+    virtual void CancelPendingRequests() = 0;
+  };
+
+  class HeartbeatClientImpl;
 
   friend class HeartbeatSenderTest;
 
-  void SetGrpcChannelForTest(GrpcChannelSharedPtr channel);
-
   // SignalStrategy::Listener interface.
   void OnSignalStrategyStateChange(SignalStrategy::State state) override;
   bool OnSignalStrategyIncomingStanza(
@@ -120,14 +114,12 @@
 
   // Helper methods used by DoSendStanza() to generate heartbeat stanzas.
   apis::v1::HeartbeatRequest CreateHeartbeatRequest();
-  std::string CreateSignature(const std::string& signaling_id);
 
   base::OnceClosure on_heartbeat_successful_callback_;
   base::OnceClosure on_unknown_host_id_error_;
   base::OnceClosure on_auth_error_;
   std::string host_id_;
   MuxingSignalStrategy* const signal_strategy_;
-  scoped_refptr<const RsaKeyPair> host_key_pair_;
   std::unique_ptr<HeartbeatClient> client_;
   LogToServer* const log_to_server_;
   OAuthTokenGetter* const oauth_token_getter_;
@@ -136,7 +128,6 @@
 
   net::BackoffEntry backoff_;
 
-  int sequence_id_ = 0;
   bool heartbeat_succeeded_ = false;
 
   // Fields to send and indicate completion of sending host-offline-reason.
diff --git a/remoting/host/heartbeat_sender_unittest.cc b/remoting/host/heartbeat_sender_unittest.cc
index 4f8c3a4..365eb16 100644
--- a/remoting/host/heartbeat_sender_unittest.cc
+++ b/remoting/host/heartbeat_sender_unittest.cc
@@ -18,9 +18,6 @@
 #include "base/threading/sequenced_task_runner_handle.h"
 #include "base/time/time.h"
 #include "remoting/base/fake_oauth_token_getter.h"
-#include "remoting/base/grpc_test_support/grpc_test_server.h"
-#include "remoting/base/rsa_key_pair.h"
-#include "remoting/base/test_rsa_key_pair.h"
 #include "remoting/proto/remoting/v1/directory_service.grpc.pb.h"
 #include "remoting/signaling/fake_signal_strategy.h"
 #include "remoting/signaling/log_to_server.h"
@@ -35,6 +32,12 @@
 
 using testing::_;
 using testing::AtMost;
+using testing::InSequence;
+using testing::Return;
+
+using HeartbeatResponseCallback =
+    base::OnceCallback<void(const grpc::Status&,
+                            const apis::v1::HeartbeatResponse&)>;
 
 constexpr char kOAuthAccessToken[] = "fake_access_token";
 constexpr char kHostId[] = "fake_host_id";
@@ -45,8 +48,6 @@
 
 constexpr int32_t kGoodIntervalSeconds = 300;
 
-constexpr int kExpectedSequenceIdUnset = -1;
-
 constexpr base::TimeDelta kWaitForAllStrategiesConnectedTimeout =
     base::TimeDelta::FromSecondsD(5.5);
 constexpr base::TimeDelta kOfflineReasonTimeout =
@@ -54,24 +55,11 @@
 constexpr base::TimeDelta kTestHeartbeatDelay =
     base::TimeDelta::FromSeconds(350);
 
-class MockDirectoryService final
-    : public apis::v1::RemotingDirectoryService::Service {
- public:
-  MOCK_METHOD3(Heartbeat,
-               grpc::Status(grpc::ServerContext*,
-                            const apis::v1::HeartbeatRequest*,
-                            apis::v1::HeartbeatResponse*));
-};
-
 void ValidateHeartbeat(const apis::v1::HeartbeatRequest& request,
                        bool expects_ftl_id,
                        bool expects_jabber_id,
-                       int expected_sequence_id,
                        const std::string& expected_host_offline_reason = {}) {
   ASSERT_TRUE(request.has_host_version());
-  if (expected_sequence_id != kExpectedSequenceIdUnset) {
-    ASSERT_EQ(expected_sequence_id, request.sequence_id());
-  }
   if (expected_host_offline_reason.empty()) {
     ASSERT_FALSE(request.has_host_offline_reason());
   } else {
@@ -90,27 +78,19 @@
       signaling_id = kJabberId;
     }
   }
-
-  auto key_pair = RsaKeyPair::FromString(kTestRsaKeyPair);
-  EXPECT_TRUE(key_pair.get());
-
-  std::string expected_signature =
-      key_pair->SignMessage(std::string(signaling_id) + ' ' +
-                            base::NumberToString(request.sequence_id()));
-  ASSERT_EQ(expected_signature, request.signature());
 }
 
 decltype(auto) DoValidateHeartbeatAndRespondOk(
     bool expects_ftl_id,
     bool expects_jabber_id,
-    int expected_sequence_id,
     const std::string& expected_host_offline_reason = {}) {
-  return [=](grpc::ServerContext*, const apis::v1::HeartbeatRequest* request,
-             apis::v1::HeartbeatResponse* response) {
-    ValidateHeartbeat(*request, expects_ftl_id, expects_jabber_id,
-                      expected_sequence_id, expected_host_offline_reason);
-    response->set_set_interval_seconds(kGoodIntervalSeconds);
-    return grpc::Status::OK;
+  return [=](const apis::v1::HeartbeatRequest& request,
+             HeartbeatResponseCallback callback) {
+    ValidateHeartbeat(request, expects_ftl_id, expects_jabber_id,
+                      expected_host_offline_reason);
+    apis::v1::HeartbeatResponse response;
+    response.set_set_interval_seconds(kGoodIntervalSeconds);
+    std::move(callback).Run(grpc::Status::OK, response);
   };
 }
 
@@ -133,16 +113,14 @@
     muxing_signal_strategy_ = std::make_unique<MuxingSignalStrategy>(
         std::move(ftl_signal_strategy), std::move(xmpp_signal_strategy));
 
-    auto key_pair = RsaKeyPair::FromString(kTestRsaKeyPair);
-    EXPECT_TRUE(key_pair.get());
-
     heartbeat_sender_ = std::make_unique<HeartbeatSender>(
         mock_heartbeat_successful_callback_.Get(),
         mock_unknown_host_id_error_callback_.Get(),
         mock_unauthenticated_error_callback_.Get(), kHostId,
-        muxing_signal_strategy_.get(), key_pair, &oauth_token_getter_, this);
-    heartbeat_sender_->SetGrpcChannelForTest(
-        test_server_.CreateInProcessChannel());
+        muxing_signal_strategy_.get(), &oauth_token_getter_, this);
+    auto heartbeat_client = std::make_unique<MockHeartbeatClient>();
+    mock_client_ = heartbeat_client.get();
+    heartbeat_sender_->client_ = std::move(heartbeat_client);
   }
 
   ~HeartbeatSenderTest() override {
@@ -152,6 +130,17 @@
   }
 
  protected:
+  class MockHeartbeatClient : public HeartbeatSender::HeartbeatClient {
+   public:
+    MOCK_METHOD2(Heartbeat,
+                 void(const apis::v1::HeartbeatRequest&,
+                      HeartbeatResponseCallback));
+
+    void CancelPendingRequests() override {
+      // We just don't care about this method being called.
+    }
+  };
+
   HeartbeatSender* heartbeat_sender() { return heartbeat_sender_.get(); }
 
   const net::BackoffEntry& GetBackoff() const {
@@ -159,8 +148,9 @@
   }
 
   base::test::ScopedTaskEnvironment scoped_task_environment_{
-      base::test::ScopedTaskEnvironment::MainThreadType::MOCK_TIME};
-  test::GrpcTestServer<MockDirectoryService> test_server_;
+      base::test::ScopedTaskEnvironment::MainThreadType::MOCK_TIME,
+      base::test::ScopedTaskEnvironment::NowSource::MAIN_THREAD_MOCK_TIME};
+  MockHeartbeatClient* mock_client_;
 
   FakeSignalStrategy* ftl_signal_strategy_;
   FakeSignalStrategy* xmpp_signal_strategy_;
@@ -189,128 +179,79 @@
 };
 
 TEST_F(HeartbeatSenderTest, SendHeartbeat_OnlyXmpp) {
-  base::RunLoop run_loop;
-
-  EXPECT_CALL(*test_server_, Heartbeat(_, _, _))
+  EXPECT_CALL(*mock_client_, Heartbeat(_, _))
       .WillOnce(DoValidateHeartbeatAndRespondOk(/* ftl */ false,
-                                                /* xmpp */ true, 0));
+                                                /* xmpp */ true));
 
-  EXPECT_CALL(mock_heartbeat_successful_callback_, Run()).WillOnce([&]() {
-    run_loop.Quit();
-  });
+  EXPECT_CALL(mock_heartbeat_successful_callback_, Run()).Times(1);
 
-  base::SequencedTaskRunnerHandle::Get()->PostTask(
-      FROM_HERE,
-      base::BindLambdaForTesting([&]() { xmpp_signal_strategy_->Connect(); }));
-  run_loop.Run();
+  xmpp_signal_strategy_->Connect();
+  scoped_task_environment_.FastForwardBy(kWaitForAllStrategiesConnectedTimeout);
 }
 
 TEST_F(HeartbeatSenderTest, SendHeartbeat_OnlyFtl) {
-  base::RunLoop run_loop;
-
-  EXPECT_CALL(*test_server_, Heartbeat(_, _, _))
+  EXPECT_CALL(*mock_client_, Heartbeat(_, _))
       .WillOnce(DoValidateHeartbeatAndRespondOk(/* ftl */ true,
-                                                /* xmpp */ false, 0));
+                                                /* xmpp */ false));
 
-  EXPECT_CALL(mock_heartbeat_successful_callback_, Run()).WillOnce([&]() {
-    run_loop.Quit();
-  });
+  EXPECT_CALL(mock_heartbeat_successful_callback_, Run()).Times(1);
 
-  base::SequencedTaskRunnerHandle::Get()->PostTask(
-      FROM_HERE,
-      base::BindLambdaForTesting([&]() { ftl_signal_strategy_->Connect(); }));
-  run_loop.Run();
+  ftl_signal_strategy_->Connect();
+  scoped_task_environment_.FastForwardBy(kWaitForAllStrategiesConnectedTimeout);
 }
 
 TEST_F(HeartbeatSenderTest, SendHeartbeat_XmppAndFtl) {
-  base::RunLoop run_loop;
-
-  EXPECT_CALL(*test_server_, Heartbeat(_, _, _))
+  EXPECT_CALL(*mock_client_, Heartbeat(_, _))
       .WillOnce(DoValidateHeartbeatAndRespondOk(/* ftl */ true,
-                                                /* xmpp */ true, 0));
+                                                /* xmpp */ true));
 
-  EXPECT_CALL(mock_heartbeat_successful_callback_, Run()).WillOnce([&]() {
-    run_loop.Quit();
-  });
+  EXPECT_CALL(mock_heartbeat_successful_callback_, Run()).Times(1);
 
-  base::SequencedTaskRunnerHandle::Get()->PostTask(
-      FROM_HERE, base::BindLambdaForTesting([&]() {
-        ftl_signal_strategy_->Connect();
-        xmpp_signal_strategy_->Connect();
-      }));
-  run_loop.Run();
+  ftl_signal_strategy_->Connect();
+  xmpp_signal_strategy_->Connect();
 }
 
 TEST_F(HeartbeatSenderTest, SendHeartbeat_SendFtlThenBoth) {
   base::RunLoop run_loop;
 
-  EXPECT_CALL(*test_server_, Heartbeat(_, _, _))
+  EXPECT_CALL(*mock_client_, Heartbeat(_, _))
       .WillOnce(DoValidateHeartbeatAndRespondOk(/* ftl */ true,
-                                                /* xmpp */ false, 0))
-      .WillOnce([&](grpc::ServerContext*,
-                    const apis::v1::HeartbeatRequest* request,
-                    apis::v1::HeartbeatResponse* response) {
-        ValidateHeartbeat(*request, /* ftl */ true, /* xmpp */ true, 1);
-        run_loop.QuitWhenIdle();
-        return grpc::Status::OK;
-      });
+                                                /* xmpp */ false))
+      .WillOnce(DoValidateHeartbeatAndRespondOk(/* ftl */ true,
+                                                /* xmpp */ true));
 
-  // This may or may not be called depending on when the first heartbeat
-  // response is delivered.
-  EXPECT_CALL(mock_heartbeat_successful_callback_, Run()).Times(AtMost(1));
+  EXPECT_CALL(mock_heartbeat_successful_callback_, Run()).Times(1);
 
-  base::SequencedTaskRunnerHandle::Get()->PostTask(
-      FROM_HERE, base::BindLambdaForTesting([&]() {
-        ftl_signal_strategy_->Connect();
-        scoped_task_environment_.FastForwardBy(
-            kWaitForAllStrategiesConnectedTimeout);
-        xmpp_signal_strategy_->Connect();
-      }));
-  run_loop.Run();
+  ftl_signal_strategy_->Connect();
+  scoped_task_environment_.FastForwardBy(kWaitForAllStrategiesConnectedTimeout);
+  xmpp_signal_strategy_->Connect();
 }
 
 TEST_F(HeartbeatSenderTest, SignalingReconnect_NewHeartbeats) {
   base::RunLoop run_loop;
 
-  EXPECT_CALL(*test_server_, Heartbeat(_, _, _))
+  EXPECT_CALL(*mock_client_, Heartbeat(_, _))
       .WillOnce(DoValidateHeartbeatAndRespondOk(/* ftl */ true,
-                                                /* xmpp */ true, 0))
+                                                /* xmpp */ true))
       .WillOnce(DoValidateHeartbeatAndRespondOk(/* ftl */ false,
-                                                /* xmpp */ true, 1))
+                                                /* xmpp */ true))
       .WillOnce(DoValidateHeartbeatAndRespondOk(/* ftl */ true,
-                                                /* xmpp */ true, 2))
+                                                /* xmpp */ true))
       .WillOnce(DoValidateHeartbeatAndRespondOk(/* ftl */ false,
-                                                /* xmpp */ true, 3))
-      .WillOnce([&](grpc::ServerContext*,
-                    const apis::v1::HeartbeatRequest* request,
-                    apis::v1::HeartbeatResponse* response) {
-        ValidateHeartbeat(*request, /* ftl */ true, /* xmpp */ true, 4);
-        run_loop.QuitWhenIdle();
-        return grpc::Status::OK;
-      });
+                                                /* xmpp */ true))
+      .WillOnce(DoValidateHeartbeatAndRespondOk(/* ftl */ true,
+                                                /* xmpp */ true));
 
-  // This may or may not be called depending on when the first heartbeat
-  // response is delivered.
-  EXPECT_CALL(mock_heartbeat_successful_callback_, Run()).Times(AtMost(1));
+  EXPECT_CALL(mock_heartbeat_successful_callback_, Run()).Times(1);
 
-  base::SequencedTaskRunnerHandle::Get()->PostTask(
-      FROM_HERE, base::BindLambdaForTesting([&]() {
-        ftl_signal_strategy_->Connect();
-        xmpp_signal_strategy_->Connect();
-        scoped_task_environment_.FastForwardUntilNoTasksRemain();
-        ftl_signal_strategy_->Disconnect();
-        scoped_task_environment_.FastForwardUntilNoTasksRemain();
-        ftl_signal_strategy_->Connect();
-        scoped_task_environment_.FastForwardUntilNoTasksRemain();
-        ftl_signal_strategy_->Disconnect();
-        scoped_task_environment_.FastForwardUntilNoTasksRemain();
-        xmpp_signal_strategy_->Disconnect();
-        scoped_task_environment_.FastForwardUntilNoTasksRemain();
-        ftl_signal_strategy_->Connect();
-        xmpp_signal_strategy_->Connect();
-        scoped_task_environment_.FastForwardUntilNoTasksRemain();
-      }));
-  run_loop.Run();
+  ftl_signal_strategy_->Connect();
+  xmpp_signal_strategy_->Connect();
+  ftl_signal_strategy_->Disconnect();
+  ftl_signal_strategy_->Connect();
+  ftl_signal_strategy_->Disconnect();
+  xmpp_signal_strategy_->Disconnect();
+  ftl_signal_strategy_->Connect();
+  xmpp_signal_strategy_->Connect();
 }
 
 TEST_F(HeartbeatSenderTest, SetHostOfflineReason) {
@@ -322,179 +263,123 @@
 
   testing::Mock::VerifyAndClearExpectations(&mock_ack_callback);
 
-  base::RunLoop run_loop;
-
-  EXPECT_CALL(*test_server_, Heartbeat(_, _, _))
+  EXPECT_CALL(*mock_client_, Heartbeat(_, _))
       .WillOnce(DoValidateHeartbeatAndRespondOk(/* ftl */ true,
-                                                /* xmpp */ true, 0,
-                                                "test_error"));
+                                                /* xmpp */ true, "test_error"));
 
   // Callback should run once, when we get response to offline-reason.
   EXPECT_CALL(mock_ack_callback, Run(_)).Times(1);
-  EXPECT_CALL(mock_heartbeat_successful_callback_, Run()).WillOnce([&]() {
-    run_loop.Quit();
-  });
+  EXPECT_CALL(mock_heartbeat_successful_callback_, Run()).Times(1);
 
-  base::SequencedTaskRunnerHandle::Get()->PostTask(
-      FROM_HERE, base::BindLambdaForTesting([&]() {
-        ftl_signal_strategy_->Connect();
-        xmpp_signal_strategy_->Connect();
-      }));
-  run_loop.Run();
+  ftl_signal_strategy_->Connect();
+  xmpp_signal_strategy_->Connect();
 }
 
 TEST_F(HeartbeatSenderTest, HostOsInfoOnFirstHeartbeat) {
-  base::RunLoop run_loop_1;
-
-  EXPECT_CALL(*test_server_, Heartbeat(_, _, _))
-      .WillOnce([](grpc::ServerContext*,
-                   const apis::v1::HeartbeatRequest* request,
-                   apis::v1::HeartbeatResponse* response) {
-        ValidateHeartbeat(*request, /* ftl */ true, /* xmpp */ true, 0);
+  EXPECT_CALL(*mock_client_, Heartbeat(_, _))
+      .WillOnce([](const apis::v1::HeartbeatRequest& request,
+                   HeartbeatResponseCallback callback) {
+        ValidateHeartbeat(request, /* ftl */ true, /* xmpp */ true);
         // First heartbeat has host OS info.
-        EXPECT_TRUE(request->has_host_os_name());
-        EXPECT_TRUE(request->has_host_os_version());
-        response->set_set_interval_seconds(kGoodIntervalSeconds);
-        return grpc::Status::OK;
+        EXPECT_TRUE(request.has_host_os_name());
+        EXPECT_TRUE(request.has_host_os_version());
+        apis::v1::HeartbeatResponse response;
+        response.set_set_interval_seconds(kGoodIntervalSeconds);
+        std::move(callback).Run(grpc::Status::OK, response);
       });
-  EXPECT_CALL(mock_heartbeat_successful_callback_, Run()).WillOnce([&]() {
-    run_loop_1.Quit();
-  });
-  base::SequencedTaskRunnerHandle::Get()->PostTask(
-      FROM_HERE, base::BindLambdaForTesting([&]() {
-        ftl_signal_strategy_->Connect();
-        xmpp_signal_strategy_->Connect();
-      }));
-  run_loop_1.Run();
+  EXPECT_CALL(mock_heartbeat_successful_callback_, Run()).Times(1);
+  ftl_signal_strategy_->Connect();
+  xmpp_signal_strategy_->Connect();
 
-  base::RunLoop run_loop_2;
-  EXPECT_CALL(*test_server_, Heartbeat(_, _, _))
-      .WillOnce([&](grpc::ServerContext*,
-                    const apis::v1::HeartbeatRequest* request,
-                    apis::v1::HeartbeatResponse* response) {
-        ValidateHeartbeat(*request, /* ftl */ true, /* xmpp */ true, 1);
+  EXPECT_CALL(*mock_client_, Heartbeat(_, _))
+      .WillOnce([&](const apis::v1::HeartbeatRequest& request,
+                    HeartbeatResponseCallback callback) {
+        ValidateHeartbeat(request, /* ftl */ true, /* xmpp */ true);
         // Subsequent heartbeat has no host OS info.
-        EXPECT_FALSE(request->has_host_os_name());
-        EXPECT_FALSE(request->has_host_os_version());
-        run_loop_2.QuitWhenIdle();
-        return grpc::Status::OK;
+        EXPECT_FALSE(request.has_host_os_name());
+        EXPECT_FALSE(request.has_host_os_version());
+        apis::v1::HeartbeatResponse response;
+        response.set_set_interval_seconds(kGoodIntervalSeconds);
+        std::move(callback).Run(grpc::Status::OK, response);
       });
-  base::SequencedTaskRunnerHandle::Get()->PostTask(
-      FROM_HERE, base::BindLambdaForTesting([&]() {
-        scoped_task_environment_.FastForwardBy(kTestHeartbeatDelay);
-      }));
-  run_loop_2.Run();
+  scoped_task_environment_.FastForwardBy(kTestHeartbeatDelay);
 }
 
 TEST_F(HeartbeatSenderTest, UnknownHostId) {
-  base::RunLoop run_loop;
-
-  EXPECT_CALL(*test_server_, Heartbeat(_, _, _))
-      .WillRepeatedly([](grpc::ServerContext*,
-                         const apis::v1::HeartbeatRequest* request,
-                         apis::v1::HeartbeatResponse* response) {
-        ValidateHeartbeat(*request, /* ftl */ true, /* xmpp */ true,
-                          kExpectedSequenceIdUnset);
-        return grpc::Status(grpc::StatusCode::NOT_FOUND, "not found");
+  EXPECT_CALL(*mock_client_, Heartbeat(_, _))
+      .WillRepeatedly([](const apis::v1::HeartbeatRequest& request,
+                         HeartbeatResponseCallback callback) {
+        ValidateHeartbeat(request, /* ftl */ true, /* xmpp */ true);
+        std::move(callback).Run(
+            grpc::Status(grpc::StatusCode::NOT_FOUND, "not found"), {});
       });
 
-  EXPECT_CALL(mock_unknown_host_id_error_callback_, Run()).WillOnce([&]() {
-    run_loop.Quit();
-  });
+  EXPECT_CALL(mock_unknown_host_id_error_callback_, Run()).Times(1);
 
-  base::SequencedTaskRunnerHandle::Get()->PostTask(
-      FROM_HERE, base::BindLambdaForTesting([&]() {
-        ftl_signal_strategy_->Connect();
-        xmpp_signal_strategy_->Connect();
-      }));
-  run_loop.Run();
+  ftl_signal_strategy_->Connect();
+  xmpp_signal_strategy_->Connect();
+
+  scoped_task_environment_.FastForwardUntilNoTasksRemain();
 }
 
 TEST_F(HeartbeatSenderTest, SendHeartbeatLogEntryOnHeartbeat) {
-  base::RunLoop run_loop;
-
-  EXPECT_CALL(*test_server_, Heartbeat(_, _, _))
+  EXPECT_CALL(*mock_client_, Heartbeat(_, _))
       .WillOnce(DoValidateHeartbeatAndRespondOk(/* ftl */ true,
-                                                /* xmpp */ true, 0));
+                                                /* xmpp */ true));
 
-  EXPECT_CALL(mock_heartbeat_successful_callback_, Run()).WillOnce([&]() {
-    run_loop.Quit();
-  });
+  EXPECT_CALL(mock_heartbeat_successful_callback_, Run()).Times(1);
 
-  base::SequencedTaskRunnerHandle::Get()->PostTask(
-      FROM_HERE, base::BindLambdaForTesting([&]() {
-        ftl_signal_strategy_->Connect();
-        xmpp_signal_strategy_->Connect();
-      }));
-  run_loop.Run();
+  ftl_signal_strategy_->Connect();
+  xmpp_signal_strategy_->Connect();
 
   ASSERT_EQ(1u, received_log_entries_.size());
 }
 
 TEST_F(HeartbeatSenderTest, FailedToHeartbeat_Backoff) {
-  base::RunLoop run_loop;
+  {
+    InSequence sequence;
 
-  EXPECT_CALL(*test_server_, Heartbeat(_, _, _))
-      .WillOnce([&](grpc::ServerContext*,
-                    const apis::v1::HeartbeatRequest* request,
-                    apis::v1::HeartbeatResponse* response) {
-        EXPECT_EQ(0, GetBackoff().failure_count());
-        ValidateHeartbeat(*request, /* ftl */ true, /* xmpp */ true, 0);
-        return grpc::Status(grpc::StatusCode::UNAVAILABLE, "unavailable");
-      })
-      .WillOnce([&](grpc::ServerContext*,
-                    const apis::v1::HeartbeatRequest* request,
-                    apis::v1::HeartbeatResponse* response) {
-        EXPECT_EQ(1, GetBackoff().failure_count());
-        ValidateHeartbeat(*request, /* ftl */ true, /* xmpp */ true, 1);
-        return grpc::Status(grpc::StatusCode::UNAVAILABLE, "unavailable");
-      })
-      .WillOnce([&](grpc::ServerContext*,
-                    const apis::v1::HeartbeatRequest* request,
-                    apis::v1::HeartbeatResponse* response) {
-        EXPECT_EQ(2, GetBackoff().failure_count());
-        ValidateHeartbeat(*request, /* ftl */ true, /* xmpp */ true, 2);
-        return grpc::Status::OK;
-      });
+    EXPECT_CALL(*mock_client_, Heartbeat(_, _))
+        .Times(2)
+        .WillRepeatedly([&](const apis::v1::HeartbeatRequest& request,
+                            HeartbeatResponseCallback callback) {
+          ValidateHeartbeat(request, /* ftl */ true, /* xmpp */ true);
+          std::move(callback).Run(
+              grpc::Status(grpc::StatusCode::UNAVAILABLE, "unavailable"), {});
+        });
 
-  EXPECT_CALL(mock_heartbeat_successful_callback_, Run()).WillOnce([&]() {
-    run_loop.Quit();
-  });
+    EXPECT_CALL(*mock_client_, Heartbeat(_, _))
+        .WillOnce(DoValidateHeartbeatAndRespondOk(/* ftl */ true,
+                                                  /* xmpp */ true));
+  }
 
-  base::SequencedTaskRunnerHandle::Get()->PostTask(
-      FROM_HERE, base::BindLambdaForTesting([&]() {
-        ftl_signal_strategy_->Connect();
-        xmpp_signal_strategy_->Connect();
-      }));
-  run_loop.Run();
+  ASSERT_EQ(0, GetBackoff().failure_count());
+  ftl_signal_strategy_->Connect();
+  xmpp_signal_strategy_->Connect();
+  ASSERT_EQ(1, GetBackoff().failure_count());
+  scoped_task_environment_.FastForwardBy(GetBackoff().GetTimeUntilRelease());
+  ASSERT_EQ(2, GetBackoff().failure_count());
+  scoped_task_environment_.FastForwardBy(GetBackoff().GetTimeUntilRelease());
   ASSERT_EQ(0, GetBackoff().failure_count());
 }
 
 TEST_F(HeartbeatSenderTest, Unauthenticated) {
-  base::RunLoop run_loop;
-
   int heartbeat_count = 0;
-  EXPECT_CALL(*test_server_, Heartbeat(_, _, _))
-      .WillRepeatedly([&](grpc::ServerContext*,
-                          const apis::v1::HeartbeatRequest* request,
-                          apis::v1::HeartbeatResponse* response) {
-        ValidateHeartbeat(*request, /* ftl */ true, /* xmpp */ true,
-                          kExpectedSequenceIdUnset);
+  EXPECT_CALL(*mock_client_, Heartbeat(_, _))
+      .WillRepeatedly([&](const apis::v1::HeartbeatRequest& request,
+                          HeartbeatResponseCallback callback) {
+        ValidateHeartbeat(request, /* ftl */ true, /* xmpp */ true);
         heartbeat_count++;
-        return grpc::Status(grpc::StatusCode::UNAUTHENTICATED,
-                            "unauthenticated");
+        std::move(callback).Run(
+            grpc::Status(grpc::StatusCode::UNAUTHENTICATED, "unauthenticated"),
+            {});
       });
 
-  EXPECT_CALL(mock_unauthenticated_error_callback_, Run()).WillOnce([&]() {
-    run_loop.Quit();
-  });
+  EXPECT_CALL(mock_unauthenticated_error_callback_, Run()).Times(1);
 
-  base::SequencedTaskRunnerHandle::Get()->PostTask(
-      FROM_HERE, base::BindLambdaForTesting([&]() {
-        ftl_signal_strategy_->Connect();
-        xmpp_signal_strategy_->Connect();
-      }));
-  run_loop.Run();
+  ftl_signal_strategy_->Connect();
+  xmpp_signal_strategy_->Connect();
+  scoped_task_environment_.FastForwardUntilNoTasksRemain();
 
   // Should retry heartbeating at least once.
   ASSERT_LT(1, heartbeat_count);
diff --git a/remoting/host/remoting_me2me_host.cc b/remoting/host/remoting_me2me_host.cc
index 949ac5cd..f6286fd8 100644
--- a/remoting/host/remoting_me2me_host.cc
+++ b/remoting/host/remoting_me2me_host.cc
@@ -1511,8 +1511,8 @@
         base::BindOnce(&HostProcess::OnUnknownHostIdError,
                        base::Unretained(this)),
         base::BindOnce(&HostProcess::OnAuthFailed, base::Unretained(this)),
-        host_id_, muxing_signal_strategy.get(), key_pair_,
-        oauth_token_getter_.get(), log_to_server_.get());
+        host_id_, muxing_signal_strategy.get(), oauth_token_getter_.get(),
+        log_to_server_.get());
     ftl_host_change_notification_listener_ =
         std::make_unique<FtlHostChangeNotificationListener>(
             this, muxing_signal_strategy->ftl_signal_strategy());
diff --git a/remoting/proto/remoting/v1/directory_messages.proto b/remoting/proto/remoting/v1/directory_messages.proto
index 68404a0..d9aaca8c1 100644
--- a/remoting/proto/remoting/v1/directory_messages.proto
+++ b/remoting/proto/remoting/v1/directory_messages.proto
@@ -45,22 +45,27 @@
 
 // Sent from a Me2Me host to update it's info and online presence.
 message HeartbeatRequest {
-  // An encypted token used to validate the request's origin.
-  optional string signature = 1;
+  // Obsolete fields reserved to prevent reuse.
+  reserved 1, 5;
+
   // Host identity. Normally a UUID.
   optional string host_id = 2;
+
   // Current ID for the GoogleTalk service, if applicable.
   optional string jabber_id = 3;
+
   // Current ID for the Tachyon service, if applicable.
   optional string tachyon_id = 4;
-  // Monotonically increasing value which is used to prevent replay attacks.
-  optional int32 sequence_id = 5;
+
   // Version of the Me2Me host software installed.
   optional string host_version = 6;
+
   // A reason for the host reporting itself as offline.
   optional string host_offline_reason = 7;
+
   // Operating system type the host is running on.
   optional string host_os_name = 8;
+
   // Operating system version the host is running on.
   optional string host_os_version = 9;
 }
diff --git a/services/tracing/perfetto/consumer_host_unittest.cc b/services/tracing/perfetto/consumer_host_unittest.cc
index 2af66e8..e686f2f 100644
--- a/services/tracing/perfetto/consumer_host_unittest.cc
+++ b/services/tracing/perfetto/consumer_host_unittest.cc
@@ -286,6 +286,7 @@
  public:
   void SetUp() override {
     PerfettoTracedProcess::ResetTaskRunnerForTesting();
+    PerfettoTracedProcess::Get()->ClearDataSourcesForTesting();
     threaded_service_ = std::make_unique<ThreadedPerfettoService>();
 
     matching_packet_count_ = 0;
diff --git a/services/tracing/perfetto/perfetto_integration_unittest.cc b/services/tracing/perfetto/perfetto_integration_unittest.cc
index 941c1a2..adfd75b97 100644
--- a/services/tracing/perfetto/perfetto_integration_unittest.cc
+++ b/services/tracing/perfetto/perfetto_integration_unittest.cc
@@ -37,6 +37,7 @@
 class PerfettoIntegrationTest : public testing::Test {
  public:
   void SetUp() override {
+    PerfettoTracedProcess::Get()->ResetTaskRunnerForTesting();
     PerfettoTracedProcess::Get()->ClearDataSourcesForTesting();
     data_source_ =
         std::make_unique<TestDataSource>(kPerfettoTestDataSourceName, 0);
diff --git a/testing/buildbot/chromium.gpu.fyi.json b/testing/buildbot/chromium.gpu.fyi.json
index 4bea5e0..daf4aa3 100644
--- a/testing/buildbot/chromium.gpu.fyi.json
+++ b/testing/buildbot/chromium.gpu.fyi.json
@@ -698,7 +698,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "shards": 4
@@ -720,7 +720,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ]
         },
@@ -740,7 +740,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ]
         },
@@ -759,7 +759,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ]
         },
@@ -778,7 +778,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ]
         },
@@ -794,7 +794,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ]
         },
@@ -827,7 +827,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -856,7 +856,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false,
@@ -884,7 +884,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false,
@@ -7229,7 +7229,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ]
         },
@@ -7251,7 +7251,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ]
         },
@@ -13973,7 +13973,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "shards": 4
@@ -13995,7 +13995,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ]
         },
@@ -14015,7 +14015,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ]
         },
@@ -14034,7 +14034,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ]
         },
@@ -14053,7 +14053,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ]
         },
@@ -14069,7 +14069,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ]
         },
@@ -14089,7 +14089,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ]
         },
@@ -14105,7 +14105,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ]
         },
@@ -14134,7 +14134,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -14161,7 +14161,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -14188,7 +14188,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -14215,7 +14215,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -14246,7 +14246,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -14280,7 +14280,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -14322,7 +14322,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -14350,7 +14350,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -14377,7 +14377,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -14404,7 +14404,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false,
@@ -16660,7 +16660,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "shards": 4
@@ -16682,7 +16682,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ]
         },
@@ -16705,7 +16705,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ]
         },
@@ -16725,7 +16725,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ]
         },
@@ -16744,7 +16744,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ]
         },
@@ -16763,7 +16763,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ]
         },
@@ -16779,7 +16779,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ]
         },
@@ -16799,7 +16799,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ]
         },
@@ -16815,7 +16815,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ]
         },
@@ -16844,7 +16844,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -16871,7 +16871,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -16898,7 +16898,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -16925,7 +16925,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -16956,7 +16956,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -16990,7 +16990,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -17040,7 +17040,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false,
@@ -17083,7 +17083,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -17103,7 +17103,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ]
         }
@@ -17130,7 +17130,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -17157,7 +17157,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -17186,7 +17186,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false,
@@ -17214,7 +17214,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false,
@@ -19450,7 +19450,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "shards": 4
@@ -19473,7 +19473,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "shards": 4
@@ -19496,7 +19496,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "shards": 12
@@ -20660,7 +20660,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "shards": 4
@@ -20680,7 +20680,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ]
         },
@@ -20696,7 +20696,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ]
         },
@@ -20716,7 +20716,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ]
         },
@@ -20732,7 +20732,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ]
         },
@@ -20765,7 +20765,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -20815,7 +20815,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false,
@@ -20843,7 +20843,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -20872,7 +20872,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false,
diff --git a/testing/buildbot/chromium.gpu.json b/testing/buildbot/chromium.gpu.json
index 1ee0be33..d12e912 100644
--- a/testing/buildbot/chromium.gpu.json
+++ b/testing/buildbot/chromium.gpu.json
@@ -1550,7 +1550,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ]
         },
@@ -1570,7 +1570,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ]
         },
@@ -1589,7 +1589,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ]
         },
@@ -1618,7 +1618,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -1645,7 +1645,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -1672,7 +1672,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -1699,7 +1699,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -1730,7 +1730,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -1764,7 +1764,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -1806,7 +1806,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -1834,7 +1834,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -1861,7 +1861,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -1888,7 +1888,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false,
diff --git a/testing/buildbot/chromium.linux.json b/testing/buildbot/chromium.linux.json
index 5c3aba9f..5fde7d2 100644
--- a/testing/buildbot/chromium.linux.json
+++ b/testing/buildbot/chromium.linux.json
@@ -8791,11 +8791,6 @@
       "empty_main"
     ]
   },
-  "linux-goma-rbe-staging-rel": {
-    "additional_compile_targets": [
-      "all"
-    ]
-  },
   "linux-jumbo-rel": {
     "additional_compile_targets": [
       "all"
diff --git a/testing/buildbot/client.v8.fyi.json b/testing/buildbot/client.v8.fyi.json
index eb4f8993e..583043f3 100644
--- a/testing/buildbot/client.v8.fyi.json
+++ b/testing/buildbot/client.v8.fyi.json
@@ -967,7 +967,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -994,7 +994,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -1021,7 +1021,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -1048,7 +1048,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -1082,7 +1082,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -1124,7 +1124,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -1152,7 +1152,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -1179,7 +1179,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false
@@ -1208,7 +1208,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false,
@@ -1236,7 +1236,7 @@
           "dimension_sets": [
             {
               "gpu": "8086:0a2e",
-              "os": "Mac-10.12.6"
+              "os": "Mac-10.13.6"
             }
           ],
           "idempotent": false,
diff --git a/testing/buildbot/mixins.pyl b/testing/buildbot/mixins.pyl
index 0ec5569..82f2e33 100644
--- a/testing/buildbot/mixins.pyl
+++ b/testing/buildbot/mixins.pyl
@@ -384,14 +384,6 @@
       },
     },
   },
-  'mac_mini_intel_gpu_10.12': {
-    'swarming': {
-      'dimensions': {
-        'gpu': '8086:0a2e',
-        'os': 'Mac-10.12.6',
-      },
-    },
-  },
   'mac_mini_intel_gpu_experimental': {
     'swarming': {
       'dimensions': {
diff --git a/testing/buildbot/waterfalls.pyl b/testing/buildbot/waterfalls.pyl
index df9c90f..3290e7e6 100644
--- a/testing/buildbot/waterfalls.pyl
+++ b/testing/buildbot/waterfalls.pyl
@@ -2162,7 +2162,7 @@
         'browser_config': 'debug',
         'os_type': 'mac',
         'mixins': [
-          'mac_mini_intel_gpu_10.12',
+          'mac_mini_intel_gpu',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_desktop_gtests',
@@ -2261,7 +2261,7 @@
         'os_type': 'mac',
         'browser_config': 'release',
         'mixins': [
-          'mac_mini_intel_gpu_10.12',
+          'mac_mini_intel_gpu',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_angle_mac_gtests',
@@ -2555,7 +2555,7 @@
         'os_type': 'mac',
         'browser_config': 'release',
         'mixins': [
-          'mac_mini_intel_gpu_10.12',
+          'mac_mini_intel_gpu',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_dawn_gtests',
@@ -2795,7 +2795,7 @@
         'os_type': 'mac',
         'browser_config': 'debug',
         'mixins': [
-          'mac_mini_intel_gpu_10.12',
+          'mac_mini_intel_gpu',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_fyi_mac_debug_gtests',
@@ -2866,7 +2866,7 @@
         'os_type': 'mac',
         'browser_config': 'release',
         'mixins': [
-          'mac_mini_intel_gpu_10.12',
+          'mac_mini_intel_gpu',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_fyi_mac_release_gtests',
@@ -2931,7 +2931,7 @@
       'Mac FYI dEQP Release Intel': {
         'os_type': 'mac',
         'mixins': [
-          'mac_mini_intel_gpu_10.12',
+          'mac_mini_intel_gpu',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_angle_deqp_mac_gtests',
@@ -2992,7 +2992,7 @@
         'os_type': 'mac',
         'browser_config': 'release',
         'mixins': [
-          'mac_mini_intel_gpu_10.12',
+          'mac_mini_intel_gpu',
         ],
         'test_suites': {
           'gtest_tests': 'gpu_fyi_mac_optional_gtests',
@@ -3448,11 +3448,6 @@
           'empty_main',
         ],
       },
-      'linux-goma-rbe-staging-rel': {
-        'additional_compile_targets': [
-          'all'
-        ]
-      },
       'linux-jumbo-rel': {
         'additional_compile_targets': [
           'all'
@@ -4254,7 +4249,7 @@
         'browser_config': 'release',
         'os_type': 'mac',
         'mixins': [
-          'mac_mini_intel_gpu_10.12',
+          'mac_mini_intel_gpu',
         ],
         'test_suites': {
           'gpu_telemetry_tests': 'gpu_v8_desktop_telemetry_tests',
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
index 65f3def..e8937c9 100644
--- a/testing/variations/fieldtrial_testing_config.json
+++ b/testing/variations/fieldtrial_testing_config.json
@@ -563,6 +563,22 @@
         },
         {
             "platforms": [
+                "android",
+                "chromeos"
+            ],
+            "experiments": [
+                {
+                    "name": "AudioServiceStreams",
+                    "enable_features": [
+                        "AudioServiceAudioStreams"
+                    ]
+                }
+            ]
+        }
+    ],
+    "AudioServiceSandboxApmLinux": [
+        {
+            "platforms": [
                 "linux"
             ],
             "experiments": [
@@ -578,20 +594,6 @@
                     ]
                 }
             ]
-        },
-        {
-            "platforms": [
-                "android",
-                "chromeos"
-            ],
-            "experiments": [
-                {
-                    "name": "AudioServiceStreams",
-                    "enable_features": [
-                        "AudioServiceAudioStreams"
-                    ]
-                }
-            ]
         }
     ],
     "AutofillDoNotMigrateUnsupportedLocalCards": [
diff --git a/third_party/blink/renderer/bindings/core/v8/array_value.h b/third_party/blink/renderer/bindings/core/v8/array_value.h
index 2b7dc71..307e26e5 100644
--- a/third_party/blink/renderer/bindings/core/v8/array_value.h
+++ b/third_party/blink/renderer/bindings/core/v8/array_value.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_ARRAY_VALUE_H_
 
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/bindings/core/v8/binding_security.h b/third_party/blink/renderer/bindings/core/v8/binding_security.h
index 115d084..19f114b 100644
--- a/third_party/blink/renderer/bindings/core/v8/binding_security.h
+++ b/third_party/blink/renderer/bindings/core/v8/binding_security.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/bindings/binding_security_for_platform.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/bindings/core/v8/idl_dictionary_base.h b/third_party/blink/renderer/bindings/core/v8/idl_dictionary_base.h
index 8d6b90acf..a6bbfaf 100644
--- a/third_party/blink/renderer/bindings/core/v8/idl_dictionary_base.h
+++ b/third_party/blink/renderer/bindings/core/v8/idl_dictionary_base.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/bindings/core/v8/isolated_world_csp.h b/third_party/blink/renderer/bindings/core/v8/isolated_world_csp.h
index 1710dcc9..817900b 100644
--- a/third_party/blink/renderer/bindings/core/v8/isolated_world_csp.h
+++ b/third_party/blink/renderer/bindings/core/v8/isolated_world_csp.h
@@ -8,7 +8,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/weborigin/security_origin.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/bindings/core/v8/module_record.h b/third_party/blink/renderer/bindings/core/v8/module_record.h
index 24caed4..b3db902 100644
--- a/third_party/blink/renderer/bindings/core/v8/module_record.h
+++ b/third_party/blink/renderer/bindings/core/v8/module_record.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/platform/bindings/shared_persistent.h"
 #include "third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h"
 #include "third_party/blink/renderer/platform/loader/fetch/cached_metadata_handler.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/text_position.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/bindings/core/v8/native_value_traits.h b/third_party/blink/renderer/bindings/core/v8/native_value_traits.h
index 66ae327..ad557ef 100644
--- a/third_party/blink/renderer/bindings/core/v8/native_value_traits.h
+++ b/third_party/blink/renderer/bindings/core/v8/native_value_traits.h
@@ -7,7 +7,7 @@
 
 #include <type_traits>
 #include "third_party/blink/renderer/bindings/core/v8/idl_types_base.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/bindings/core/v8/referrer_script_info.h b/third_party/blink/renderer/bindings/core/v8/referrer_script_info.h
index 01469f6..f14958a9 100644
--- a/third_party/blink/renderer/bindings/core/v8/referrer_script_info.h
+++ b/third_party/blink/renderer/bindings/core/v8/referrer_script_info.h
@@ -9,7 +9,7 @@
 #include "services/network/public/mojom/referrer_policy.mojom-shared.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/loader/fetch/script_fetch_options.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/text_position.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "v8/include/v8.h"
diff --git a/third_party/blink/renderer/bindings/core/v8/retained_object_info.h b/third_party/blink/renderer/bindings/core/v8/retained_object_info.h
index f9714b98..47fcc3ec 100644
--- a/third_party/blink/renderer/bindings/core/v8/retained_object_info.h
+++ b/third_party/blink/renderer/bindings/core/v8/retained_object_info.h
@@ -31,7 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_RETAINED_OBJECT_INFO_H_
 #define THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_RETAINED_OBJECT_INFO_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "v8/include/v8-profiler.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/bindings/core/v8/script_custom_element_definition.cc b/third_party/blink/renderer/bindings/core/v8/script_custom_element_definition.cc
index c4e5bdc..dfbfed1 100644
--- a/third_party/blink/renderer/bindings/core/v8/script_custom_element_definition.cc
+++ b/third_party/blink/renderer/bindings/core/v8/script_custom_element_definition.cc
@@ -27,7 +27,7 @@
 #include "third_party/blink/renderer/platform/bindings/v8_binding_macros.h"
 #include "third_party/blink/renderer/platform/bindings/v8_per_context_data.h"
 #include "third_party/blink/renderer/platform/bindings/v8_private_property.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/bindings/core/v8/script_custom_element_definition_builder.h b/third_party/blink/renderer/bindings/core/v8/script_custom_element_definition_builder.h
index ecd5891..d4d2906 100644
--- a/third_party/blink/renderer/bindings/core/v8/script_custom_element_definition_builder.h
+++ b/third_party/blink/renderer/bindings/core/v8/script_custom_element_definition_builder.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/script_custom_element_definition_data.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/html/custom/custom_element_definition_builder.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/bindings/core/v8/script_custom_element_definition_data.h b/third_party/blink/renderer/bindings/core/v8/script_custom_element_definition_data.h
index 37bfe84..eab682e0 100644
--- a/third_party/blink/renderer/bindings/core/v8/script_custom_element_definition_data.h
+++ b/third_party/blink/renderer/bindings/core/v8/script_custom_element_definition_data.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_SCRIPT_CUSTOM_ELEMENT_DEFINITION_DATA_H_
 
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string_hash.h"
diff --git a/third_party/blink/renderer/bindings/core/v8/script_iterator.h b/third_party/blink/renderer/bindings/core/v8/script_iterator.h
index d6dd8ab9..6691d55 100644
--- a/third_party/blink/renderer/bindings/core/v8/script_iterator.h
+++ b/third_party/blink/renderer/bindings/core/v8/script_iterator.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_SCRIPT_ITERATOR_H_
 
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/bindings/core/v8/script_promise.h b/third_party/blink/renderer/bindings/core/v8/script_promise.h
index 99c0119c..2e7425b 100644
--- a/third_party/blink/renderer/bindings/core/v8/script_promise.h
+++ b/third_party/blink/renderer/bindings/core/v8/script_promise.h
@@ -35,7 +35,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/script_value.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/bindings/core/v8/script_value.h b/third_party/blink/renderer/bindings/core/v8/script_value.h
index 457c56a..ba78800 100644
--- a/third_party/blink/renderer/bindings/core/v8/script_value.h
+++ b/third_party/blink/renderer/bindings/core/v8/script_value.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
 #include "third_party/blink/renderer/platform/bindings/shared_persistent.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/bindings/core/v8/serialization/post_message_helper.h b/third_party/blink/renderer/bindings/core/v8/serialization/post_message_helper.h
index 72ee655..2edf1d69 100644
--- a/third_party/blink/renderer/bindings/core/v8/serialization/post_message_helper.h
+++ b/third_party/blink/renderer/bindings/core/v8/serialization/post_message_helper.h
@@ -8,7 +8,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/public/mojom/messaging/user_activation_snapshot.mojom-blink.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h b/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h
index 5a8382b..990461a 100644
--- a/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h
+++ b/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h
@@ -40,7 +40,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/serialization/transferables.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/mojo/mojo_handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/partitions.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value_factory.h b/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value_factory.h
index 12d199a..283ad9e 100644
--- a/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value_factory.h
+++ b/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value_factory.h
@@ -8,7 +8,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_deserializer.h b/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_deserializer.h
index d2cad5e..84d82fb 100644
--- a/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_deserializer.h
+++ b/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_deserializer.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_serializer.h b/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_serializer.h
index 3d30aaa..9246ae13 100644
--- a/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_serializer.h
+++ b/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_serializer.h
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/bindings/core/v8/source_location.h b/third_party/blink/renderer/bindings/core/v8/source_location.h
index cc8a12d..5d14e3e 100644
--- a/third_party/blink/renderer/bindings/core/v8/source_location.h
+++ b/third_party/blink/renderer/bindings/core/v8/source_location.h
@@ -8,7 +8,7 @@
 #include <v8-inspector-protocol.h>
 #include <memory>
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/bindings/core/v8/to_v8_test.cc b/third_party/blink/renderer/bindings/core/v8/to_v8_test.cc
index 2e01968..b71fa3f8 100644
--- a/third_party/blink/renderer/bindings/core/v8/to_v8_test.cc
+++ b/third_party/blink/renderer/bindings/core/v8/to_v8_test.cc
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_testing.h"
 #include "third_party/blink/renderer/core/testing/garbage_collected_script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/heap.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 #define TEST_TOV8(expected, value) \
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_binding_for_testing.h b/third_party/blink/renderer/bindings/core/v8/v8_binding_for_testing.h
index 5084a90..dfa3711 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_binding_for_testing.h
+++ b/third_party/blink/renderer/bindings/core/v8/v8_binding_for_testing.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_code_cache.h b/third_party/blink/renderer/bindings/core/v8/v8_code_cache.h
index b85bdba..b2fdcfe 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_code_cache.h
+++ b/third_party/blink/renderer/bindings/core/v8/v8_code_cache.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
 #include "third_party/blink/renderer/platform/bindings/v8_binding_macros.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_context_snapshot.h b/third_party/blink/renderer/bindings/core/v8/v8_context_snapshot.h
index 54609ee..9fd248bd 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_context_snapshot.h
+++ b/third_party/blink/renderer/bindings/core/v8/v8_context_snapshot.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_V8_CONTEXT_SNAPSHOT_H_
 
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_embedder_graph_builder.cc b/third_party/blink/renderer/bindings/core/v8/v8_embedder_graph_builder.cc
index df646b2..69c8f6b 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_embedder_graph_builder.cc
+++ b/third_party/blink/renderer/bindings/core/v8/v8_embedder_graph_builder.cc
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/bindings/wrapper_type_info.h"
 #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_embedder_graph_builder.h b/third_party/blink/renderer/bindings/core/v8/v8_embedder_graph_builder.h
index 6fb90c4a..0b0b89d 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_embedder_graph_builder.h
+++ b/third_party/blink/renderer/bindings/core/v8/v8_embedder_graph_builder.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_V8_EMBEDDER_GRAPH_BUILDER_H_
 #define THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_V8_EMBEDDER_GRAPH_BUILDER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "v8/include/v8-profiler.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_event_listener_info.h b/third_party/blink/renderer/bindings/core/v8/v8_event_listener_info.h
index ec70c1a..7419d82 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_event_listener_info.h
+++ b/third_party/blink/renderer/bindings/core/v8/v8_event_listener_info.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_V8_EVENT_LISTENER_INFO_H_
 #define THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_V8_EVENT_LISTENER_INFO_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 #include "v8/include/v8.h"
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_extras_test_utils.h b/third_party/blink/renderer/bindings/core/v8/v8_extras_test_utils.h
index 90dc9a1..d6ff8a5 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_extras_test_utils.h
+++ b/third_party/blink/renderer/bindings/core/v8/v8_extras_test_utils.h
@@ -7,7 +7,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_V8_EXTRAS_TEST_UTILS_H_
 #define THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_V8_EXTRAS_TEST_UTILS_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_gc_controller.h b/third_party/blink/renderer/bindings/core/v8/v8_gc_controller.h
index 8a99e25..c61b202 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_gc_controller.h
+++ b/third_party/blink/renderer/bindings/core/v8/v8_gc_controller.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "v8/include/v8-profiler.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_initializer.h b/third_party/blink/renderer/bindings/core/v8/v8_initializer.h
index 57be7473..e7cbc5d 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_initializer.h
+++ b/third_party/blink/renderer/bindings/core/v8/v8_initializer.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_V8_INITIALIZER_H_
 
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_object_parser.h b/third_party/blink/renderer/bindings/core/v8/v8_object_parser.h
index 5e7c589..16cd1ae 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_object_parser.h
+++ b/third_party/blink/renderer/bindings/core/v8/v8_object_parser.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/css/css_property_names.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_page_popup_controller_binding.h b/third_party/blink/renderer/bindings/core/v8/v8_page_popup_controller_binding.h
index 6434a54..7bb84580 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_page_popup_controller_binding.h
+++ b/third_party/blink/renderer/bindings/core/v8/v8_page_popup_controller_binding.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_V8_PAGE_POPUP_CONTROLLER_BINDING_H_
 
 #include "third_party/blink/renderer/platform/bindings/wrapper_type_info.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_persistent_value_vector.h b/third_party/blink/renderer/bindings/core/v8/v8_persistent_value_vector.h
index 75517624..be964668 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_persistent_value_vector.h
+++ b/third_party/blink/renderer/bindings/core/v8/v8_persistent_value_vector.h
@@ -31,7 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_V8_PERSISTENT_VALUE_VECTOR_H_
 #define THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_V8_PERSISTENT_VALUE_VECTOR_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 #include "v8/include/v8-util.h"
 #include "v8/include/v8.h"
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_script_runner.h b/third_party/blink/renderer/bindings/core/v8/v8_script_runner.h
index 0fde1ce..002f4ce7c 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_script_runner.h
+++ b/third_party/blink/renderer/bindings/core/v8/v8_script_runner.h
@@ -28,7 +28,7 @@
 
 #include "third_party/blink/renderer/bindings/core/v8/sanitize_script_errors.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_string_resource.h b/third_party/blink/renderer/bindings/core/v8/v8_string_resource.h
index e1e5669..b775a207 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_string_resource.h
+++ b/third_party/blink/renderer/bindings/core/v8/v8_string_resource.h
@@ -28,7 +28,7 @@
 
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/bindings/string_resource.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/threading.h"
 #include "v8/include/v8.h"
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_throw_dom_exception.h b/third_party/blink/renderer/bindings/core/v8/v8_throw_dom_exception.h
index 97980a71..6fc62e490d5 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_throw_dom_exception.h
+++ b/third_party/blink/renderer/bindings/core/v8/v8_throw_dom_exception.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/bindings/exception_code.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_wasm_response_extensions.h b/third_party/blink/renderer/bindings/core/v8/v8_wasm_response_extensions.h
index bc791b3..369a67e5 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_wasm_response_extensions.h
+++ b/third_party/blink/renderer/bindings/core/v8/v8_wasm_response_extensions.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_V8_WASM_RESPONSE_EXTENSIONS_H_
 
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/bindings/core/v8/worker_or_worklet_script_controller.h b/third_party/blink/renderer/bindings/core/v8/worker_or_worklet_script_controller.h
index b67f3f8d..3b9faad 100644
--- a/third_party/blink/renderer/bindings/core/v8/worker_or_worklet_script_controller.h
+++ b/third_party/blink/renderer/bindings/core/v8/worker_or_worklet_script_controller.h
@@ -38,7 +38,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h"
 #include "third_party/blink/renderer/bindings/core/v8/v8_cache_options.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/text_position.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/bindings/modules/v8/module_bindings_initializer.h b/third_party/blink/renderer/bindings/modules/v8/module_bindings_initializer.h
index 892d972b..afccf281 100644
--- a/third_party/blink/renderer/bindings/modules/v8/module_bindings_initializer.h
+++ b/third_party/blink/renderer/bindings/modules/v8/module_bindings_initializer.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_BINDINGS_MODULES_V8_MODULE_BINDINGS_INITIALIZER_H_
 #define THIRD_PARTY_BLINK_RENDERER_BINDINGS_MODULES_V8_MODULE_BINDINGS_INITIALIZER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/bindings/modules/v8/v8_context_snapshot_external_references.h b/third_party/blink/renderer/bindings/modules/v8/v8_context_snapshot_external_references.h
index 5dd7b09a..ebdc530 100644
--- a/third_party/blink/renderer/bindings/modules/v8/v8_context_snapshot_external_references.h
+++ b/third_party/blink/renderer/bindings/modules/v8/v8_context_snapshot_external_references.h
@@ -8,7 +8,7 @@
 #include <cstdint>
 
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/build/scripts/core/css/templates/css_property_names.h.tmpl b/third_party/blink/renderer/build/scripts/core/css/templates/css_property_names.h.tmpl
index b7523f4..7f3d49a1 100644
--- a/third_party/blink/renderer/build/scripts/core/css/templates/css_property_names.h.tmpl
+++ b/third_party/blink/renderer/build/scripts/core/css/templates/css_property_names.h.tmpl
@@ -6,7 +6,7 @@
 
 #include <stddef.h>
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 
 namespace WTF {
diff --git a/third_party/blink/renderer/build/scripts/templates/runtime_enabled_features.h.tmpl b/third_party/blink/renderer/build/scripts/templates/runtime_enabled_features.h.tmpl
index b8992fd..aacc5126 100644
--- a/third_party/blink/renderer/build/scripts/templates/runtime_enabled_features.h.tmpl
+++ b/third_party/blink/renderer/build/scripts/templates/runtime_enabled_features.h.tmpl
@@ -9,7 +9,7 @@
 #include <string>
 
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 #define ASSERT_ORIGIN_TRIAL(feature) \
 static_assert(std::is_same<decltype(::blink::RuntimeEnabledFeatures::feature##Enabled(\
diff --git a/third_party/blink/renderer/controller/memory_usage_monitor.h b/third_party/blink/renderer/controller/memory_usage_monitor.h
index 68ebf79..91026fdc 100644
--- a/third_party/blink/renderer/controller/memory_usage_monitor.h
+++ b/third_party/blink/renderer/controller/memory_usage_monitor.h
@@ -8,7 +8,7 @@
 #include "base/observer_list.h"
 #include "third_party/blink/renderer/controller/controller_export.h"
 #include "third_party/blink/renderer/platform/timer.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator.h b/third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator.h
index 5ee50f7..1720fc1 100644
--- a/third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator.h
+++ b/third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/controller/memory_usage_monitor.h"
 #include "third_party/blink/renderer/platform/scheduler/public/rail_mode_observer.h"
 #include "third_party/blink/renderer/platform/timer.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace base {
 class TickClock;
diff --git a/third_party/blink/renderer/core/animation/animation_clock.h b/third_party/blink/renderer/core/animation/animation_clock.h
index 3261a17..7e9c09e 100644
--- a/third_party/blink/renderer/core/animation/animation_clock.h
+++ b/third_party/blink/renderer/core/animation/animation_clock.h
@@ -36,7 +36,7 @@
 #include "base/macros.h"
 #include "base/time/default_tick_clock.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/animation/animation_input_helpers.h b/third_party/blink/renderer/core/animation/animation_input_helpers.h
index 1ea358c..787cc76 100644
--- a/third_party/blink/renderer/core/animation/animation_input_helpers.h
+++ b/third_party/blink/renderer/core/animation/animation_input_helpers.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/css/css_property_names.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/animation/animation_time_delta.h b/third_party/blink/renderer/core/animation/animation_time_delta.h
index d8d08da4..e2d3b6a 100644
--- a/third_party/blink/renderer/core/animation/animation_time_delta.h
+++ b/third_party/blink/renderer/core/animation/animation_time_delta.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_ANIMATION_ANIMATION_TIME_DELTA_H_
 
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 #include <limits>
 #include <ostream>
diff --git a/third_party/blink/renderer/core/animation/compositor_animations.h b/third_party/blink/renderer/core/animation/compositor_animations.h
index deedee2..1609de2 100644
--- a/third_party/blink/renderer/core/animation/compositor_animations.h
+++ b/third_party/blink/renderer/core/animation/compositor_animations.h
@@ -37,7 +37,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/animation/timing_function.h"
 #include "third_party/blink/renderer/platform/graphics/compositor_element_id.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/animation/css/compositor_keyframe_value_factory.h b/third_party/blink/renderer/core/animation/css/compositor_keyframe_value_factory.h
index 3a75ba3..d4e55a9 100644
--- a/third_party/blink/renderer/core/animation/css/compositor_keyframe_value_factory.h
+++ b/third_party/blink/renderer/core/animation/css/compositor_keyframe_value_factory.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_ANIMATION_CSS_COMPOSITOR_KEYFRAME_VALUE_FACTORY_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_ANIMATION_CSS_COMPOSITOR_KEYFRAME_VALUE_FACTORY_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/animation/css/css_animation_update.h b/third_party/blink/renderer/core/animation/css/css_animation_update.h
index bfe0f26..315d0f9 100644
--- a/third_party/blink/renderer/core/animation/css/css_animation_update.h
+++ b/third_party/blink/renderer/core/animation/css/css_animation_update.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/core/animation/keyframe_effect_model.h"
 #include "third_party/blink/renderer/core/css/css_keyframes_rule.h"
 #include "third_party/blink/renderer/core/css/css_property_equality.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/core/animation/css/css_timing_data.h b/third_party/blink/renderer/core/animation/css/css_timing_data.h
index 8d11907..1d0ee6a3 100644
--- a/third_party/blink/renderer/core/animation/css/css_timing_data.h
+++ b/third_party/blink/renderer/core/animation/css/css_timing_data.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/platform/animation/timing_function.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/animation/document_animation.h b/third_party/blink/renderer/core/animation/document_animation.h
index 2cb59cb..33c5eed 100644
--- a/third_party/blink/renderer/core/animation/document_animation.h
+++ b/third_party/blink/renderer/core/animation/document_animation.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/animation/animation.h"
 #include "third_party/blink/renderer/core/animation/document_timeline.h"
 #include "third_party/blink/renderer/core/dom/document.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/animation/document_animations.h b/third_party/blink/renderer/core/animation/document_animations.h
index 9fdcfe1..18704dd 100644
--- a/third_party/blink/renderer/core/animation/document_animations.h
+++ b/third_party/blink/renderer/core/animation/document_animations.h
@@ -34,7 +34,7 @@
 #include "base/optional.h"
 #include "third_party/blink/renderer/core/css/css_property_names.h"
 #include "third_party/blink/renderer/core/dom/document_lifecycle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/animation/effect_input.h b/third_party/blink/renderer/core/animation/effect_input.h
index dacaff0..29141e9 100644
--- a/third_party/blink/renderer/core/animation/effect_input.h
+++ b/third_party/blink/renderer/core/animation/effect_input.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/animation/effect_model.h"
 #include "third_party/blink/renderer/core/animation/keyframe_effect_model.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/animation/element_animation.h b/third_party/blink/renderer/core/animation/element_animation.h
index 005da44..c3862e27 100644
--- a/third_party/blink/renderer/core/animation/element_animation.h
+++ b/third_party/blink/renderer/core/animation/element_animation.h
@@ -35,7 +35,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/heap_allocator.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/animation/image_slice_property_functions.h b/third_party/blink/renderer/core/animation/image_slice_property_functions.h
index 35840e4..35b6b81 100644
--- a/third_party/blink/renderer/core/animation/image_slice_property_functions.h
+++ b/third_party/blink/renderer/core/animation/image_slice_property_functions.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/css/css_property_names.h"
 #include "third_party/blink/renderer/core/style/computed_style.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/animation/interpolation_environment.h b/third_party/blink/renderer/core/animation/interpolation_environment.h
index ade6a67..c9e518a5 100644
--- a/third_party/blink/renderer/core/animation/interpolation_environment.h
+++ b/third_party/blink/renderer/core/animation/interpolation_environment.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_ANIMATION_INTERPOLATION_ENVIRONMENT_H_
 
 #include "third_party/blink/renderer/core/animation/interpolation_types_map.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/animation/interpolation_type.h b/third_party/blink/renderer/core/animation/interpolation_type.h
index ff850c5..431d50dd 100644
--- a/third_party/blink/renderer/core/animation/interpolation_type.h
+++ b/third_party/blink/renderer/core/animation/interpolation_type.h
@@ -16,7 +16,7 @@
 #include "third_party/blink/renderer/core/animation/underlying_value_owner.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/animation/keyframe.h b/third_party/blink/renderer/core/animation/keyframe.h
index 3b28d902..928ac74 100644
--- a/third_party/blink/renderer/core/animation/keyframe.h
+++ b/third_party/blink/renderer/core/animation/keyframe.h
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/core/animation/property_handle.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/animation/length_property_functions.h b/third_party/blink/renderer/core/animation/length_property_functions.h
index 43e2f83d..2253c0a 100644
--- a/third_party/blink/renderer/core/animation/length_property_functions.h
+++ b/third_party/blink/renderer/core/animation/length_property_functions.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/css/css_property_names.h"
 #include "third_party/blink/renderer/core/css_value_keywords.h"
 #include "third_party/blink/renderer/platform/geometry/length.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/animation/list_interpolation_functions.h b/third_party/blink/renderer/core/animation/list_interpolation_functions.h
index 15491312..9682f59 100644
--- a/third_party/blink/renderer/core/animation/list_interpolation_functions.h
+++ b/third_party/blink/renderer/core/animation/list_interpolation_functions.h
@@ -8,7 +8,7 @@
 #include <memory>
 #include "third_party/blink/renderer/core/animation/interpolation_value.h"
 #include "third_party/blink/renderer/core/animation/pairwise_interpolation_value.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/animation/number_property_functions.h b/third_party/blink/renderer/core/animation/number_property_functions.h
index 7596581..39e492a 100644
--- a/third_party/blink/renderer/core/animation/number_property_functions.h
+++ b/third_party/blink/renderer/core/animation/number_property_functions.h
@@ -7,7 +7,7 @@
 
 #include "base/optional.h"
 #include "third_party/blink/renderer/core/css/css_property_names.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/animation/path_interpolation_functions.h b/third_party/blink/renderer/core/animation/path_interpolation_functions.h
index 96b91cc..a545f023 100644
--- a/third_party/blink/renderer/core/animation/path_interpolation_functions.h
+++ b/third_party/blink/renderer/core/animation/path_interpolation_functions.h
@@ -8,7 +8,7 @@
 #include <memory>
 #include "third_party/blink/renderer/core/animation/interpolation_type.h"
 #include "third_party/blink/renderer/core/svg/svg_path_byte_stream.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/animation/property_handle.h b/third_party/blink/renderer/core/animation/property_handle.h
index 39fb5a0..4263c65 100644
--- a/third_party/blink/renderer/core/animation/property_handle.h
+++ b/third_party/blink/renderer/core/animation/property_handle.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/css/css_property_names.h"
 #include "third_party/blink/renderer/core/css/properties/css_property.h"
 #include "third_party/blink/renderer/core/dom/qualified_name.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/animation/sampled_effect.h b/third_party/blink/renderer/core/animation/sampled_effect.h
index cefbba95..b35a695 100644
--- a/third_party/blink/renderer/core/animation/sampled_effect.h
+++ b/third_party/blink/renderer/core/animation/sampled_effect.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/animation/animation.h"
 #include "third_party/blink/renderer/core/animation/interpolation.h"
 #include "third_party/blink/renderer/core/animation/keyframe_effect.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/animation/timing.h b/third_party/blink/renderer/core/animation/timing.h
index 41833b6..e3b089c 100644
--- a/third_party/blink/renderer/core/animation/timing.h
+++ b/third_party/blink/renderer/core/animation/timing.h
@@ -37,7 +37,7 @@
 #include "third_party/blink/renderer/core/style/data_equivalency.h"
 #include "third_party/blink/renderer/platform/animation/compositor_keyframe_model.h"
 #include "third_party/blink/renderer/platform/animation/timing_function.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/math_extras.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/animation/timing_input.h b/third_party/blink/renderer/core/animation/timing_input.h
index b9a6a32..0df7f40 100644
--- a/third_party/blink/renderer/core/animation/timing_input.h
+++ b/third_party/blink/renderer/core/animation/timing_input.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/animation/timing.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/animation/typed_interpolation_value.h b/third_party/blink/renderer/core/animation/typed_interpolation_value.h
index 389df39c..32b6a404 100644
--- a/third_party/blink/renderer/core/animation/typed_interpolation_value.h
+++ b/third_party/blink/renderer/core/animation/typed_interpolation_value.h
@@ -10,7 +10,7 @@
 
 #include "base/memory/ptr_util.h"
 #include "third_party/blink/renderer/core/animation/interpolation_value.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/animation/underlying_value_owner.h b/third_party/blink/renderer/core/animation/underlying_value_owner.h
index 111aa47..7ead3f832 100644
--- a/third_party/blink/renderer/core/animation/underlying_value_owner.h
+++ b/third_party/blink/renderer/core/animation/underlying_value_owner.h
@@ -10,7 +10,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/animation/typed_interpolation_value.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/clipboard/system_clipboard.h b/third_party/blink/renderer/core/clipboard/system_clipboard.h
index 038ec50..6b75bdd 100644
--- a/third_party/blink/renderer/core/clipboard/system_clipboard.h
+++ b/third_party/blink/renderer/core/clipboard/system_clipboard.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/public/mojom/clipboard/clipboard.mojom-blink.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/core/core_initializer.h b/third_party/blink/renderer/core/core_initializer.h
index 084f62e7..c0d14e2 100644
--- a/third_party/blink/renderer/core/core_initializer.h
+++ b/third_party/blink/renderer/core/core_initializer.h
@@ -35,7 +35,7 @@
 #include "services/service_manager/public/cpp/binder_registry.h"
 #include "third_party/blink/public/common/dom_storage/session_storage_namespace_id.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/css_default_style_sheets.h b/third_party/blink/renderer/core/css/css_default_style_sheets.h
index bc67b93..4ae833d 100644
--- a/third_party/blink/renderer/core/css/css_default_style_sheets.h
+++ b/third_party/blink/renderer/core/css/css_default_style_sheets.h
@@ -27,7 +27,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/css_font_face_source.h b/third_party/blink/renderer/core/css/css_font_face_source.h
index 8f0b38b..6f93e38 100644
--- a/third_party/blink/renderer/core/css/css_font_face_source.h
+++ b/third_party/blink/renderer/core/css/css_font_face_source.h
@@ -32,7 +32,7 @@
 #include "third_party/blink/renderer/platform/fonts/font_cache_key.h"
 #include "third_party/blink/renderer/platform/fonts/font_selection_types.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/linked_hash_set.h"
 
diff --git a/third_party/blink/renderer/core/css/css_image_generator_value.h b/third_party/blink/renderer/core/css/css_image_generator_value.h
index 55597af..c76dd1c 100644
--- a/third_party/blink/renderer/core/css/css_image_generator_value.h
+++ b/third_party/blink/renderer/core/css/css_image_generator_value.h
@@ -32,7 +32,7 @@
 #include "third_party/blink/renderer/core/css/css_value.h"
 #include "third_party/blink/renderer/platform/geometry/float_size.h"
 #include "third_party/blink/renderer/platform/heap/self_keep_alive.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 
diff --git a/third_party/blink/renderer/core/css/css_image_set_value.h b/third_party/blink/renderer/core/css/css_image_set_value.h
index dbe8ea70..de879b89 100644
--- a/third_party/blink/renderer/core/css/css_image_set_value.h
+++ b/third_party/blink/renderer/core/css/css_image_set_value.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/renderer/platform/loader/fetch/cross_origin_attribute_value.h"
 #include "third_party/blink/renderer/platform/loader/fetch/fetch_parameters.h"
 #include "third_party/blink/renderer/platform/weborigin/referrer.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/css_paint_value.cc b/third_party/blink/renderer/core/css/css_paint_value.cc
index 2881677..eb8ff347 100644
--- a/third_party/blink/renderer/core/css/css_paint_value.cc
+++ b/third_party/blink/renderer/core/css/css_paint_value.cc
@@ -95,6 +95,8 @@
 void CSSPaintValue::BuildInputArgumentValues(
     Vector<std::unique_ptr<CrossThreadStyleValue>>&
         cross_thread_input_arguments) {
+  if (!parsed_input_arguments_)
+    return;
   for (const auto& style_value : *parsed_input_arguments_) {
     std::unique_ptr<CrossThreadStyleValue> cross_thread_style =
         ComputedStyleUtils::CrossThreadStyleValueFromCSSStyleValue(style_value);
diff --git a/third_party/blink/renderer/core/css/css_paint_value.h b/third_party/blink/renderer/core/css/css_paint_value.h
index 78f0115e..3b67651 100644
--- a/third_party/blink/renderer/core/css/css_paint_value.h
+++ b/third_party/blink/renderer/core/css/css_paint_value.h
@@ -10,14 +10,13 @@
 #include "third_party/blink/renderer/core/css/css_image_generator_value.h"
 #include "third_party/blink/renderer/core/css/css_paint_image_generator.h"
 #include "third_party/blink/renderer/core/css/css_variable_data.h"
+#include "third_party/blink/renderer/core/css/cssom/cross_thread_style_value.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
 
-class CrossThreadStyleValue;
-
 class CORE_EXPORT CSSPaintValue : public CSSImageGeneratorValue {
  public:
   explicit CSSPaintValue(CSSCustomIdentValue* name);
@@ -52,6 +51,14 @@
     return generator_ ? &generator_->CustomInvalidationProperties() : nullptr;
   }
 
+  const CSSStyleValueVector* GetParsedInputArgumentsForTesting() {
+    return parsed_input_arguments_;
+  }
+  void BuildInputArgumentValuesForTesting(
+      Vector<std::unique_ptr<CrossThreadStyleValue>>& style_value) {
+    BuildInputArgumentValues(style_value);
+  }
+
   void TraceAfterDispatch(blink::Visitor*);
 
  private:
diff --git a/third_party/blink/renderer/core/css/css_paint_value_test.cc b/third_party/blink/renderer/core/css/css_paint_value_test.cc
index 3397831..4e168d78 100644
--- a/third_party/blink/renderer/core/css/css_paint_value_test.cc
+++ b/third_party/blink/renderer/core/css/css_paint_value_test.cc
@@ -171,4 +171,23 @@
                                      FloatSize(100, 100)));
 }
 
+TEST_P(CSSPaintValueTest, BuildInputArgumentValuesNotCrash) {
+  // The BuildInputArgumentValues is called when the flag is enabled only.
+  if (!RuntimeEnabledFeatures::OffMainThreadCSSPaintEnabled())
+    return;
+
+  SetBodyInnerHTML(R"HTML(
+    <div id="target"></div>
+  )HTML");
+
+  auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("testpainter");
+  CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident);
+  EXPECT_NE(paint_value, nullptr);
+
+  EXPECT_EQ(paint_value->GetParsedInputArgumentsForTesting(), nullptr);
+  Vector<std::unique_ptr<CrossThreadStyleValue>> cross_thread_input_arguments;
+  paint_value->BuildInputArgumentValuesForTesting(cross_thread_input_arguments);
+  EXPECT_EQ(cross_thread_input_arguments.size(), 0u);
+}
+
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/css/css_property_equality.h b/third_party/blink/renderer/core/css/css_property_equality.h
index 33fe623..93e0e60 100644
--- a/third_party/blink/renderer/core/css/css_property_equality.h
+++ b/third_party/blink/renderer/core/css/css_property_equality.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_CSS_PROPERTY_EQUALITY_H_
 
 #include "third_party/blink/renderer/core/css/css_property_names.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/css_property_value.h b/third_party/blink/renderer/core/css/css_property_value.h
index 85599a8..2757d155 100644
--- a/third_party/blink/renderer/core/css/css_property_value.h
+++ b/third_party/blink/renderer/core/css/css_property_value.h
@@ -25,7 +25,7 @@
 #include "third_party/blink/renderer/core/css/css_property_names.h"
 #include "third_party/blink/renderer/core/css/css_value.h"
 #include "third_party/blink/renderer/core/css/properties/css_property.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/css_syntax_component.h b/third_party/blink/renderer/core/css/css_syntax_component.h
index bda4962..bc01ae7 100644
--- a/third_party/blink/renderer/core/css/css_syntax_component.h
+++ b/third_party/blink/renderer/core/css/css_syntax_component.h
@@ -7,7 +7,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/css/css_value.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/css_syntax_string_parser.h b/third_party/blink/renderer/core/css/css_syntax_string_parser.h
index d681a907e5..4ad11fd2 100644
--- a/third_party/blink/renderer/core/css/css_syntax_string_parser.h
+++ b/third_party/blink/renderer/core/css/css_syntax_string_parser.h
@@ -8,7 +8,7 @@
 #include "base/optional.h"
 #include "third_party/blink/renderer/core/css/css_syntax_descriptor.h"
 #include "third_party/blink/renderer/core/css/parser/css_tokenizer_input_stream.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/css_test_helpers.h b/third_party/blink/renderer/core/css/css_test_helpers.h
index fe8395c2..7897fdf6 100644
--- a/third_party/blink/renderer/core/css/css_test_helpers.h
+++ b/third_party/blink/renderer/core/css/css_test_helpers.h
@@ -7,7 +7,7 @@
 
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/core/css/rule_set.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/css_to_length_conversion_data.h b/third_party/blink/renderer/core/css/css_to_length_conversion_data.h
index eb3fb86..fa46b4f 100644
--- a/third_party/blink/renderer/core/css/css_to_length_conversion_data.h
+++ b/third_party/blink/renderer/core/css/css_to_length_conversion_data.h
@@ -35,7 +35,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/css/css_primitive_value.h"
 #include "third_party/blink/renderer/platform/geometry/double_size.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/math_extras.h"
 
diff --git a/third_party/blink/renderer/core/css/cssom/cssom_keywords.h b/third_party/blink/renderer/core/css/cssom/cssom_keywords.h
index 86bd5e2..067e42f 100644
--- a/third_party/blink/renderer/core/css/cssom/cssom_keywords.h
+++ b/third_party/blink/renderer/core/css/cssom/cssom_keywords.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_CSSOM_CSSOM_KEYWORDS_H_
 
 #include "third_party/blink/renderer/core/css/css_property_names.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/cssom/cssom_types.h b/third_party/blink/renderer/core/css/cssom/cssom_types.h
index d43ebea5..327178b 100644
--- a/third_party/blink/renderer/core/css/cssom/cssom_types.h
+++ b/third_party/blink/renderer/core/css/cssom/cssom_types.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/css/css_property_names.h"
 #include "third_party/blink/renderer/core/css/cssom/css_style_value.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/cssom/style_value_factory.h b/third_party/blink/renderer/core/css/cssom/style_value_factory.h
index 97e73500..5059a49 100644
--- a/third_party/blink/renderer/core/css/cssom/style_value_factory.h
+++ b/third_party/blink/renderer/core/css/cssom/style_value_factory.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/css_style_value_or_string.h"
 #include "third_party/blink/renderer/core/css/css_property_names.h"
 #include "third_party/blink/renderer/core/css/cssom/css_style_value.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/font_face_set_document.h b/third_party/blink/renderer/core/css/font_face_set_document.h
index 78e091d..d3751dc8 100644
--- a/third_party/blink/renderer/core/css/font_face_set_document.h
+++ b/third_party/blink/renderer/core/css/font_face_set_document.h
@@ -37,7 +37,7 @@
 #include "third_party/blink/renderer/core/dom/events/event_listener.h"
 #include "third_party/blink/renderer/core/dom/events/event_target.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/font_face_set_worker.h b/third_party/blink/renderer/core/css/font_face_set_worker.h
index eb605f1..87ce5492 100644
--- a/third_party/blink/renderer/core/css/font_face_set_worker.h
+++ b/third_party/blink/renderer/core/css/font_face_set_worker.h
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/core/css/offscreen_font_selector.h"
 #include "third_party/blink/renderer/core/workers/worker_global_scope.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/font_face_source.h b/third_party/blink/renderer/core/css/font_face_source.h
index 3ced8b2..02a8d197 100644
--- a/third_party/blink/renderer/core/css/font_face_source.h
+++ b/third_party/blink/renderer/core/css/font_face_source.h
@@ -7,7 +7,7 @@
 
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/font_size_functions.h b/third_party/blink/renderer/core/css/font_size_functions.h
index 759721a..7b54363 100644
--- a/third_party/blink/renderer/core/css/font_size_functions.h
+++ b/third_party/blink/renderer/core/css/font_size_functions.h
@@ -24,7 +24,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_FONT_SIZE_FUNCTIONS_H_
 
 #include "third_party/blink/renderer/core/css_value_keywords.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/hash_tools.h b/third_party/blink/renderer/core/css/hash_tools.h
index 3e0eed9..868451d 100644
--- a/third_party/blink/renderer/core/css/hash_tools.h
+++ b/third_party/blink/renderer/core/css/hash_tools.h
@@ -21,7 +21,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_CSS_HASH_TOOLS_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_HASH_TOOLS_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/invalidation/invalidation_set.h b/third_party/blink/renderer/core/css/invalidation/invalidation_set.h
index 3470798..7de2e13 100644
--- a/third_party/blink/renderer/core/css/invalidation/invalidation_set.h
+++ b/third_party/blink/renderer/core/css/invalidation/invalidation_set.h
@@ -37,7 +37,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/css/invalidation/invalidation_flags.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
diff --git a/third_party/blink/renderer/core/css/local_font_face_source.h b/third_party/blink/renderer/core/css/local_font_face_source.h
index 04ba160..655f5ba 100644
--- a/third_party/blink/renderer/core/css/local_font_face_source.h
+++ b/third_party/blink/renderer/core/css/local_font_face_source.h
@@ -7,7 +7,7 @@
 
 #include "base/memory/weak_ptr.h"
 #include "third_party/blink/renderer/core/css/css_font_face_source.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/media_query.h b/third_party/blink/renderer/core/css/media_query.h
index 8488b717..95f3508 100644
--- a/third_party/blink/renderer/core/css/media_query.h
+++ b/third_party/blink/renderer/core/css/media_query.h
@@ -34,7 +34,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/core/css/media_query_exp.h b/third_party/blink/renderer/core/css/media_query_exp.h
index b25fd51f..7650002 100644
--- a/third_party/blink/renderer/core/css/media_query_exp.h
+++ b/third_party/blink/renderer/core/css/media_query_exp.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/core/css/css_value.h"
 #include "third_party/blink/renderer/core/css/media_feature_names.h"
 #include "third_party/blink/renderer/core/css_value_keywords.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/parser/css_parser_fast_paths.h b/third_party/blink/renderer/core/css/parser/css_parser_fast_paths.h
index 17109539..943767e 100644
--- a/third_party/blink/renderer/core/css/parser/css_parser_fast_paths.h
+++ b/third_party/blink/renderer/core/css/parser/css_parser_fast_paths.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/css_value_keywords.h"
 #include "third_party/blink/renderer/platform/graphics/color.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/parser/css_parser_local_context.h b/third_party/blink/renderer/core/css/parser/css_parser_local_context.h
index d5de80e..95ca3af 100644
--- a/third_party/blink/renderer/core/css/parser/css_parser_local_context.h
+++ b/third_party/blink/renderer/core/css/parser/css_parser_local_context.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_PARSER_CSS_PARSER_LOCAL_CONTEXT_H_
 
 #include "third_party/blink/renderer/core/css/css_property_names.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/parser/css_parser_token.h b/third_party/blink/renderer/core/css/parser/css_parser_token.h
index 9feebcf1..8bdf9467 100644
--- a/third_party/blink/renderer/core/css/parser/css_parser_token.h
+++ b/third_party/blink/renderer/core/css/parser/css_parser_token.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/css/css_primitive_value.h"
 #include "third_party/blink/renderer/core/css/parser/at_rule_descriptors.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_view.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/parser/css_parser_token_range.h b/third_party/blink/renderer/core/css/parser/css_parser_token_range.h
index 87a53423..61ae46c 100644
--- a/third_party/blink/renderer/core/css/parser/css_parser_token_range.h
+++ b/third_party/blink/renderer/core/css/parser/css_parser_token_range.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/css/parser/css_parser_token.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/parser/css_parser_token_stream.h b/third_party/blink/renderer/core/css/parser/css_parser_token_stream.h
index d348ad0d..aad770ab 100644
--- a/third_party/blink/renderer/core/css/parser/css_parser_token_stream.h
+++ b/third_party/blink/renderer/core/css/parser/css_parser_token_stream.h
@@ -8,7 +8,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/css/parser/css_parser_token_range.h"
 #include "third_party/blink/renderer/core/css/parser/css_tokenizer.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/parser/css_proto_converter.h b/third_party/blink/renderer/core/css/parser/css_proto_converter.h
index c650b3c9..167e817 100644
--- a/third_party/blink/renderer/core/css/parser/css_proto_converter.h
+++ b/third_party/blink/renderer/core/css/parser/css_proto_converter.h
@@ -8,7 +8,7 @@
 #include <string>
 
 #include "third_party/blink/renderer/core/css/parser/css.pb.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace css_proto_converter {
 
diff --git a/third_party/blink/renderer/core/css/parser/css_tokenizer.h b/third_party/blink/renderer/core/css/parser/css_tokenizer.h
index 04fa997..950ad5e 100644
--- a/third_party/blink/renderer/core/css/parser/css_tokenizer.h
+++ b/third_party/blink/renderer/core/css/parser/css_tokenizer.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/css/parser/css_parser_token.h"
 #include "third_party/blink/renderer/core/css/parser/css_tokenizer_input_stream.h"
 #include "third_party/blink/renderer/core/html/parser/input_stream_preprocessor.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_view.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/core/css/parser/media_query_block_watcher.h b/third_party/blink/renderer/core/css/parser/media_query_block_watcher.h
index 4f7bdb7..a2739ae 100644
--- a/third_party/blink/renderer/core/css/parser/media_query_block_watcher.h
+++ b/third_party/blink/renderer/core/css/parser/media_query_block_watcher.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_PARSER_MEDIA_QUERY_BLOCK_WATCHER_H_
 
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/properties/computed_style_utils.h b/third_party/blink/renderer/core/css/properties/computed_style_utils.h
index 3e20bdf..96ad29e 100644
--- a/third_party/blink/renderer/core/css/properties/computed_style_utils.h
+++ b/third_party/blink/renderer/core/css/properties/computed_style_utils.h
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/core/css/zoom_adjusted_pixel_value.h"
 #include "third_party/blink/renderer/core/style/computed_style.h"
 #include "third_party/blink/renderer/core/style/computed_style_constants.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/properties/css_direction_aware_resolver.h b/third_party/blink/renderer/core/css/properties/css_direction_aware_resolver.h
index 2c037091..a7ac935c 100644
--- a/third_party/blink/renderer/core/css/properties/css_direction_aware_resolver.h
+++ b/third_party/blink/renderer/core/css/properties/css_direction_aware_resolver.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/platform/text/text_direction.h"
 #include "third_party/blink/renderer/platform/text/writing_mode.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/property_registration.h b/third_party/blink/renderer/core/css/property_registration.h
index 2986ee0..146e9015 100644
--- a/third_party/blink/renderer/core/css/property_registration.h
+++ b/third_party/blink/renderer/core/css/property_registration.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/core/css/css_syntax_descriptor.h"
 #include "third_party/blink/renderer/core/css/css_value.h"
 #include "third_party/blink/renderer/core/css/css_variable_data.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/remote_font_face_source.h b/third_party/blink/renderer/core/css/remote_font_face_source.h
index 3d7eafe93..cba2616 100644
--- a/third_party/blink/renderer/core/css/remote_font_face_source.h
+++ b/third_party/blink/renderer/core/css/remote_font_face_source.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/css/css_font_face_source.h"
 #include "third_party/blink/renderer/core/execution_context/security_context.h"
 #include "third_party/blink/renderer/core/loader/resource/font_resource.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/resolver/css_property_priority.h b/third_party/blink/renderer/core/css/resolver/css_property_priority.h
index 8fc3f10..4ebbd0b 100644
--- a/third_party/blink/renderer/core/css/resolver/css_property_priority.h
+++ b/third_party/blink/renderer/core/css/resolver/css_property_priority.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_RESOLVER_CSS_PROPERTY_PRIORITY_H_
 
 #include "third_party/blink/renderer/core/css/css_property_names.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/resolver/css_to_style_map.h b/third_party/blink/renderer/core/css/resolver/css_to_style_map.h
index bd46b24..9781979 100644
--- a/third_party/blink/renderer/core/css/resolver/css_to_style_map.h
+++ b/third_party/blink/renderer/core/css/resolver/css_to_style_map.h
@@ -28,7 +28,7 @@
 #include "third_party/blink/renderer/core/css/css_property_names.h"
 #include "third_party/blink/renderer/core/style/computed_style_constants.h"
 #include "third_party/blink/renderer/platform/animation/timing_function.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/resolver/style_adjuster.h b/third_party/blink/renderer/core/css/resolver/style_adjuster.h
index 247461f..28782fe1 100644
--- a/third_party/blink/renderer/core/css/resolver/style_adjuster.h
+++ b/third_party/blink/renderer/core/css/resolver/style_adjuster.h
@@ -23,7 +23,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_CSS_RESOLVER_STYLE_ADJUSTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_RESOLVER_STYLE_ADJUSTER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/resolver/style_builder_converter.h b/third_party/blink/renderer/core/css/resolver/style_builder_converter.h
index 1a6fe32..60547c7 100644
--- a/third_party/blink/renderer/core/css/resolver/style_builder_converter.h
+++ b/third_party/blink/renderer/core/css/resolver/style_builder_converter.h
@@ -51,7 +51,7 @@
 #include "third_party/blink/renderer/platform/graphics/image_orientation.h"
 #include "third_party/blink/renderer/platform/text/tab_size.h"
 #include "third_party/blink/renderer/platform/transforms/rotation.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/text_encoding.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/style_attribute_mutation_scope.h b/third_party/blink/renderer/core/css/style_attribute_mutation_scope.h
index efbc881..34fd507 100644
--- a/third_party/blink/renderer/core/css/style_attribute_mutation_scope.h
+++ b/third_party/blink/renderer/core/css/style_attribute_mutation_scope.h
@@ -24,7 +24,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_STYLE_ATTRIBUTE_MUTATION_SCOPE_H_
 
 #include "third_party/blink/renderer/platform/heap/member.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/style_auto_color.h b/third_party/blink/renderer/core/css/style_auto_color.h
index 6d29ca1..9e26166 100644
--- a/third_party/blink/renderer/core/css/style_auto_color.h
+++ b/third_party/blink/renderer/core/css/style_auto_color.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/css/style_color.h"
 #include "third_party/blink/renderer/platform/graphics/color.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/style_color.h b/third_party/blink/renderer/core/css/style_color.h
index b43684bf..8e96f863d 100644
--- a/third_party/blink/renderer/core/css/style_color.h
+++ b/third_party/blink/renderer/core/css/style_color.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/core/css_value_keywords.h"
 #include "third_party/blink/renderer/platform/graphics/color.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/style_engine.h b/third_party/blink/renderer/core/css/style_engine.h
index 513c594..1ddc4800 100644
--- a/third_party/blink/renderer/core/css/style_engine.h
+++ b/third_party/blink/renderer/core/css/style_engine.h
@@ -53,7 +53,7 @@
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
 #include "third_party/blink/renderer/platform/fonts/font_selector_client.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/css/style_sheet_collection.h b/third_party/blink/renderer/core/css/style_sheet_collection.h
index 801a537a6..f6acf062 100644
--- a/third_party/blink/renderer/core/css/style_sheet_collection.h
+++ b/third_party/blink/renderer/core/css/style_sheet_collection.h
@@ -35,7 +35,7 @@
 #include "third_party/blink/renderer/core/css/active_style_sheets.h"
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/display_lock/display_lock_context.cc b/third_party/blink/renderer/core/display_lock/display_lock_context.cc
index 84bea325..c1060c6 100644
--- a/third_party/blink/renderer/core/display_lock/display_lock_context.cc
+++ b/third_party/blink/renderer/core/display_lock/display_lock_context.cc
@@ -156,13 +156,21 @@
   }
   activatable_ = options && options->activatable();
 
+  // If we're acquiring something that isn't currently locked, we need to recalc
+  // the layout size. Otherwise if we're re-acquiring, we only need to recalc if
+  // the locked size has changed.
+  bool should_recalc_layout_size = !IsLocked();
   if (options && options->hasSize()) {
     auto parsed_size = ParseAndVerifySize(options->size());
-    if (!parsed_size) {
+    if (!parsed_size)
       return GetRejectedPromise(script_state, rejection_names::kInvalidOptions);
-    }
+    if (locked_content_logical_size_ != *parsed_size)
+      should_recalc_layout_size = true;
     locked_content_logical_size_ = *parsed_size;
+
   } else {
+    if (locked_content_logical_size_ != LayoutSize())
+      should_recalc_layout_size = true;
     locked_content_logical_size_ = LayoutSize();
   }
 
@@ -171,6 +179,14 @@
   // interval. Note that the following call cancels any existing timeout tasks.
   RescheduleTimeoutTask(timeout_ms);
 
+  if (should_recalc_layout_size && ConnectedToView()) {
+    if (auto* layout_object = element_->GetLayoutObject()) {
+      layout_object->SetNeedsLayoutAndPrefWidthsRecalc(
+          layout_invalidation_reason::kDisplayLock);
+    }
+    ScheduleAnimation();
+  }
+
   if (acquire_resolver_)
     return acquire_resolver_->Promise();
 
@@ -187,6 +203,7 @@
   FinishCommitResolver(kResolve);
 
   update_budget_.reset();
+  state_ = kLocked;
 
   // If we're already connected then we need to ensure that we update our layout
   // size based on the options and we have cleared the painted output.
@@ -205,8 +222,6 @@
     MakeResolver(script_state, &acquire_resolver_);
     is_horizontal_writing_mode_ = true;
     if (auto* layout_object = element_->GetLayoutObject()) {
-      layout_object->SetNeedsLayoutAndPrefWidthsRecalc(
-          layout_invalidation_reason::kDisplayLock);
       is_horizontal_writing_mode_ = layout_object->IsHorizontalWritingMode();
       // GraphicsLayer collection would normally skip layers if paint is blocked
       // by display-locking (see: CollectDrawableLayersForLayerListRecursively
@@ -217,7 +232,6 @@
       needs_graphics_layer_collection_ = true;
       MarkPaintLayerNeedsRepaint();
     }
-    ScheduleAnimation();
     // TODO(vmpstr): This needs to be set after invalidation above, since we
     // want the object to layout once. After the changes to separate self and
     // child layout, this would no longer be required and we can set the
@@ -226,7 +240,6 @@
     return acquire_resolver_->Promise();
   }
 
-  state_ = kLocked;
   // Otherwise (if we're not connected), resolve immediately.
   return GetResolvedPromise(script_state);
 }
@@ -735,7 +748,6 @@
     FinishAcquireResolver(kResolve);
     // TODO(vmpstr): When size: auto is supported, we need to get the size from
     // the layout object here.
-    DCHECK(locked_content_logical_size_);
     // Fallthrough here in case we're already updating.
   }
 
diff --git a/third_party/blink/renderer/core/display_lock/display_lock_context.h b/third_party/blink/renderer/core/display_lock/display_lock_context.h
index 35794b9..3fcb1b66 100644
--- a/third_party/blink/renderer/core/display_lock/display_lock_context.h
+++ b/third_party/blink/renderer/core/display_lock/display_lock_context.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/core/frame/local_frame_view.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/scheduler/public/post_cancellable_task.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
@@ -181,12 +181,12 @@
   }
 
   LayoutUnit GetLockedContentLogicalWidth() const {
-    return is_horizontal_writing_mode_ ? locked_content_logical_size_->Width()
-                                       : locked_content_logical_size_->Height();
+    return is_horizontal_writing_mode_ ? locked_content_logical_size_.Width()
+                                       : locked_content_logical_size_.Height();
   }
   LayoutUnit GetLockedContentLogicalHeight() const {
-    return is_horizontal_writing_mode_ ? locked_content_logical_size_->Height()
-                                       : locked_content_logical_size_->Width();
+    return is_horizontal_writing_mode_ ? locked_content_logical_size_.Height()
+                                       : locked_content_logical_size_.Width();
   }
 
  private:
@@ -309,7 +309,7 @@
   HeapHashSet<Member<Element>> whitespace_reattach_set_;
 
   StateChangeHelper state_;
-  base::Optional<LayoutSize> locked_content_logical_size_;
+  LayoutSize locked_content_logical_size_;
 
   bool update_forced_ = false;
   bool activatable_ = false;
diff --git a/third_party/blink/renderer/core/display_lock/display_lock_utilities.h b/third_party/blink/renderer/core/display_lock/display_lock_utilities.h
index 855309e5..70df6e8 100644
--- a/third_party/blink/renderer/core/display_lock/display_lock_utilities.h
+++ b/third_party/blink/renderer/core/display_lock/display_lock_utilities.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/display_lock/display_lock_context.h"
 #include "third_party/blink/renderer/core/editing/ephemeral_range.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/attribute.h b/third_party/blink/renderer/core/dom/attribute.h
index 71151cb..1869c50 100644
--- a/third_party/blink/renderer/core/dom/attribute.h
+++ b/third_party/blink/renderer/core/dom/attribute.h
@@ -28,7 +28,7 @@
 
 #include "build/build_config.h"
 #include "third_party/blink/renderer/core/dom/qualified_name.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/attribute_collection.h b/third_party/blink/renderer/core/dom/attribute_collection.h
index d7ec066d..c315c86c1 100644
--- a/third_party/blink/renderer/core/dom/attribute_collection.h
+++ b/third_party/blink/renderer/core/dom/attribute_collection.h
@@ -34,7 +34,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_ATTRIBUTE_COLLECTION_H_
 
 #include "third_party/blink/renderer/core/dom/attribute.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/dom/child_node.h b/third_party/blink/renderer/core/dom/child_node.h
index c9358ce..aea4f2e 100644
--- a/third_party/blink/renderer/core/dom/child_node.h
+++ b/third_party/blink/renderer/core/dom/child_node.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_CHILD_NODE_H_
 
 #include "third_party/blink/renderer/core/dom/node.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/context_features_client_impl.cc b/third_party/blink/renderer/core/dom/context_features_client_impl.cc
index a7eef75..a4d9bb3c 100644
--- a/third_party/blink/renderer/core/dom/context_features_client_impl.cc
+++ b/third_party/blink/renderer/core/dom/context_features_client_impl.cc
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/frame/local_frame.h"
 #include "third_party/blink/renderer/platform/weborigin/security_origin.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/create_element_flags.h b/third_party/blink/renderer/core/dom/create_element_flags.h
index aea3a5c..37accd8 100644
--- a/third_party/blink/renderer/core/dom/create_element_flags.h
+++ b/third_party/blink/renderer/core/dom/create_element_flags.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_DOM_CREATE_ELEMENT_FLAGS_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_CREATE_ELEMENT_FLAGS_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 class CreateElementFlags {
   STACK_ALLOCATED();
diff --git a/third_party/blink/renderer/core/dom/document_and_element_event_handlers.h b/third_party/blink/renderer/core/dom/document_and_element_event_handlers.h
index d820bef..ba81ea16 100644
--- a/third_party/blink/renderer/core/dom/document_and_element_event_handlers.h
+++ b/third_party/blink/renderer/core/dom/document_and_element_event_handlers.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_DOCUMENT_AND_ELEMENT_EVENT_HANDLERS_H_
 
 #include "third_party/blink/renderer/core/dom/events/event_target.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/document_encoding_data.h b/third_party/blink/renderer/core/dom/document_encoding_data.h
index bc9032d..e7159e64 100644
--- a/third_party/blink/renderer/core/dom/document_encoding_data.h
+++ b/third_party/blink/renderer/core/dom/document_encoding_data.h
@@ -31,7 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_DOM_DOCUMENT_ENCODING_DATA_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_DOCUMENT_ENCODING_DATA_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/text_encoding.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/dom/document_lifecycle.h b/third_party/blink/renderer/core/dom/document_lifecycle.h
index 54cda92..5327f5c 100644
--- a/third_party/blink/renderer/core/dom/document_lifecycle.h
+++ b/third_party/blink/renderer/core/dom/document_lifecycle.h
@@ -34,7 +34,7 @@
 #include "base/auto_reset.h"
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 
 #if DCHECK_IS_ON()
diff --git a/third_party/blink/renderer/core/dom/document_or_shadow_root.h b/third_party/blink/renderer/core/dom/document_or_shadow_root.h
index b1e4d4f..0f62081a 100644
--- a/third_party/blink/renderer/core/dom/document_or_shadow_root.h
+++ b/third_party/blink/renderer/core/dom/document_or_shadow_root.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/dom/shadow_root.h"
 #include "third_party/blink/renderer/core/fullscreen/fullscreen.h"
 #include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/document_statistics_collector.h b/third_party/blink/renderer/core/dom/document_statistics_collector.h
index 731a949..3093013b 100644
--- a/third_party/blink/renderer/core/dom/document_statistics_collector.h
+++ b/third_party/blink/renderer/core/dom/document_statistics_collector.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_DOCUMENT_STATISTICS_COLLECTOR_H_
 
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/dom_node_ids.h b/third_party/blink/renderer/core/dom/dom_node_ids.h
index 1757dbab..643aede 100644
--- a/third_party/blink/renderer/core/dom/dom_node_ids.h
+++ b/third_party/blink/renderer/core/dom/dom_node_ids.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/dom/node.h"
 #include "third_party/blink/renderer/core/dom/weak_identifier_map.h"
 #include "third_party/blink/renderer/platform/graphics/dom_node_id.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/element_traversal.h b/third_party/blink/renderer/core/dom/element_traversal.h
index e444bbd..9c20335 100644
--- a/third_party/blink/renderer/core/dom/element_traversal.h
+++ b/third_party/blink/renderer/core/dom/element_traversal.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/renderer/core/dom/element.h"
 #include "third_party/blink/renderer/core/dom/node_traversal.h"
 #include "third_party/blink/renderer/core/dom/traversal_range.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/events/event_dispatch_forbidden_scope.h b/third_party/blink/renderer/core/dom/events/event_dispatch_forbidden_scope.h
index 4a5462c6..b67041a3 100644
--- a/third_party/blink/renderer/core/dom/events/event_dispatch_forbidden_scope.h
+++ b/third_party/blink/renderer/core/dom/events/event_dispatch_forbidden_scope.h
@@ -8,7 +8,7 @@
 #include "base/auto_reset.h"
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/wtf.h"
 
diff --git a/third_party/blink/renderer/core/dom/events/event_target.h b/third_party/blink/renderer/core/dom/events/event_target.h
index cf6d623..35a4470 100644
--- a/third_party/blink/renderer/core/dom/events/event_target.h
+++ b/third_party/blink/renderer/core/dom/events/event_target.h
@@ -44,7 +44,7 @@
 #include "third_party/blink/renderer/core/event_type_names.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/dom/flat_tree_traversal.h b/third_party/blink/renderer/core/dom/flat_tree_traversal.h
index 3092467..4518f90 100644
--- a/third_party/blink/renderer/core/dom/flat_tree_traversal.h
+++ b/third_party/blink/renderer/core/dom/flat_tree_traversal.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/core/dom/shadow_root.h"
 #include "third_party/blink/renderer/core/dom/traversal_range.h"
 #include "third_party/blink/renderer/core/dom/v0_insertion_point.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/global_event_handlers.h b/third_party/blink/renderer/core/dom/global_event_handlers.h
index dff91f0..0d7d82f9 100644
--- a/third_party/blink/renderer/core/dom/global_event_handlers.h
+++ b/third_party/blink/renderer/core/dom/global_event_handlers.h
@@ -31,7 +31,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_GLOBAL_EVENT_HANDLERS_H_
 
 #include "third_party/blink/renderer/core/dom/events/event_target.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/icon_url.h b/third_party/blink/renderer/core/dom/icon_url.h
index e7ddc03..04f4514 100644
--- a/third_party/blink/renderer/core/dom/icon_url.h
+++ b/third_party/blink/renderer/core/dom/icon_url.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/platform/geometry/int_size.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/ignore_opens_during_unload_count_incrementer.h b/third_party/blink/renderer/core/dom/ignore_opens_during_unload_count_incrementer.h
index 0863a13..6f2a222 100644
--- a/third_party/blink/renderer/core/dom/ignore_opens_during_unload_count_incrementer.h
+++ b/third_party/blink/renderer/core/dom/ignore_opens_during_unload_count_incrementer.h
@@ -7,7 +7,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/dom/document.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/increment_load_event_delay_count.h b/third_party/blink/renderer/core/dom/increment_load_event_delay_count.h
index e2a155d..ca66a45 100644
--- a/third_party/blink/renderer/core/dom/increment_load_event_delay_count.h
+++ b/third_party/blink/renderer/core/dom/increment_load_event_delay_count.h
@@ -10,7 +10,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/layout_tree_builder_traversal.h b/third_party/blink/renderer/core/dom/layout_tree_builder_traversal.h
index f4245ed..300be78 100644
--- a/third_party/blink/renderer/core/dom/layout_tree_builder_traversal.h
+++ b/third_party/blink/renderer/core/dom/layout_tree_builder_traversal.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/element.h"
 #include "third_party/blink/renderer/core/dom/v0_insertion_point.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/live_node_list_registry.h b/third_party/blink/renderer/core/dom/live_node_list_registry.h
index fb4b87d..b208eaa 100644
--- a/third_party/blink/renderer/core/dom/live_node_list_registry.h
+++ b/third_party/blink/renderer/core/dom/live_node_list_registry.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/heap.h"
 #include "third_party/blink/renderer/platform/heap/heap_allocator.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/dom/names_map.h b/third_party/blink/renderer/core/dom/names_map.h
index 9e87028..659a2e3 100644
--- a/third_party/blink/renderer/core/dom/names_map.h
+++ b/third_party/blink/renderer/core/dom/names_map.h
@@ -10,7 +10,7 @@
 #include "base/optional.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/space_split_string.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string_hash.h"
diff --git a/third_party/blink/renderer/core/dom/node_traversal.h b/third_party/blink/renderer/core/dom/node_traversal.h
index f3a0b9d..3dd5e07 100644
--- a/third_party/blink/renderer/core/dom/node_traversal.h
+++ b/third_party/blink/renderer/core/dom/node_traversal.h
@@ -32,7 +32,7 @@
 #include "third_party/blink/renderer/core/dom/container_node.h"
 #include "third_party/blink/renderer/core/dom/node.h"
 #include "third_party/blink/renderer/core/dom/traversal_range.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/non_document_type_child_node.h b/third_party/blink/renderer/core/dom/non_document_type_child_node.h
index 9edba9e..d8b191a 100644
--- a/third_party/blink/renderer/core/dom/non_document_type_child_node.h
+++ b/third_party/blink/renderer/core/dom/non_document_type_child_node.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/dom/element_traversal.h"
 #include "third_party/blink/renderer/core/dom/node.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/parent_node.h b/third_party/blink/renderer/core/dom/parent_node.h
index 88132e8..021dbfd 100644
--- a/third_party/blink/renderer/core/dom/parent_node.h
+++ b/third_party/blink/renderer/core/dom/parent_node.h
@@ -35,7 +35,7 @@
 #include "third_party/blink/renderer/core/dom/element_traversal.h"
 #include "third_party/blink/renderer/core/html/html_collection.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/qualified_name.h b/third_party/blink/renderer/core/dom/qualified_name.h
index 0551faa2..2223714c 100644
--- a/third_party/blink/renderer/core/dom/qualified_name.h
+++ b/third_party/blink/renderer/core/dom/qualified_name.h
@@ -22,7 +22,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_QUALIFIED_NAME_H_
 
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_table_deleted_value_type.h"
 #include "third_party/blink/renderer/platform/wtf/hash_traits.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
diff --git a/third_party/blink/renderer/core/dom/scripted_animation_controller_test.cc b/third_party/blink/renderer/core/dom/scripted_animation_controller_test.cc
index 2629f8f..72057a2 100644
--- a/third_party/blink/renderer/core/dom/scripted_animation_controller_test.cc
+++ b/third_party/blink/renderer/core/dom/scripted_animation_controller_test.cc
@@ -15,7 +15,7 @@
 #include "third_party/blink/renderer/core/dom/frame_request_callback_collection.h"
 #include "third_party/blink/renderer/core/testing/dummy_page_holder.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/dom/space_split_string.h b/third_party/blink/renderer/core/dom/space_split_string.h
index e69a933..21ac9d7 100644
--- a/third_party/blink/renderer/core/dom/space_split_string.h
+++ b/third_party/blink/renderer/core/dom/space_split_string.h
@@ -22,7 +22,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_SPACE_SPLIT_STRING_H_
 
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/core/dom/task_type_traits.h b/third_party/blink/renderer/core/dom/task_type_traits.h
index 523e0a62..ce9699d2 100644
--- a/third_party/blink/renderer/core/dom/task_type_traits.h
+++ b/third_party/blink/renderer/core/dom/task_type_traits.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_TASK_TYPE_TRAITS_H_
 
 #include "third_party/blink/public/platform/task_type.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_traits.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/dom/text_link_colors.h b/third_party/blink/renderer/core/dom/text_link_colors.h
index ba44345..9ce3ff097 100644
--- a/third_party/blink/renderer/core/dom/text_link_colors.h
+++ b/third_party/blink/renderer/core/dom/text_link_colors.h
@@ -33,7 +33,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/graphics/color.h"
 #include "third_party/blink/renderer/platform/graphics/color_scheme.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/throw_on_dynamic_markup_insertion_count_incrementer.h b/third_party/blink/renderer/core/dom/throw_on_dynamic_markup_insertion_count_incrementer.h
index 9d26298..706b40ae 100644
--- a/third_party/blink/renderer/core/dom/throw_on_dynamic_markup_insertion_count_incrementer.h
+++ b/third_party/blink/renderer/core/dom/throw_on_dynamic_markup_insertion_count_incrementer.h
@@ -7,7 +7,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/dom/document.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/transform_source.h b/third_party/blink/renderer/core/dom/transform_source.h
index e74f3d2a..46ba990 100644
--- a/third_party/blink/renderer/core/dom/transform_source.h
+++ b/third_party/blink/renderer/core/dom/transform_source.h
@@ -22,7 +22,7 @@
 
 #include <libxml/tree.h>
 #include "base/macros.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/tree_ordered_map.h b/third_party/blink/renderer/core/dom/tree_ordered_map.h
index ecfdcd8..939b145 100644
--- a/third_party/blink/renderer/core/dom/tree_ordered_map.h
+++ b/third_party/blink/renderer/core/dom/tree_ordered_map.h
@@ -33,7 +33,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_TREE_ORDERED_MAP_H_
 
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
diff --git a/third_party/blink/renderer/core/dom/weak_identifier_map.h b/third_party/blink/renderer/core/dom/weak_identifier_map.h
index cd2f21d0..9b6f960 100644
--- a/third_party/blink/renderer/core/dom/weak_identifier_map.h
+++ b/third_party/blink/renderer/core/dom/weak_identifier_map.h
@@ -8,7 +8,7 @@
 #include <limits>
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/editing/commands/clipboard_commands.h b/third_party/blink/renderer/core/editing/commands/clipboard_commands.h
index 4aa6f80..6e0f551 100644
--- a/third_party/blink/renderer/core/editing/commands/clipboard_commands.h
+++ b/third_party/blink/renderer/core/editing/commands/clipboard_commands.h
@@ -33,7 +33,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_COMMANDS_CLIPBOARD_COMMANDS_H_
 
 #include "third_party/blink/renderer/core/editing/forward.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/editing/commands/delete_selection_options.h b/third_party/blink/renderer/core/editing/commands/delete_selection_options.h
index ef1038c59..9237735 100644
--- a/third_party/blink/renderer/core/editing/commands/delete_selection_options.h
+++ b/third_party/blink/renderer/core/editing/commands/delete_selection_options.h
@@ -7,7 +7,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/editing/commands/editing_state.h b/third_party/blink/renderer/core/editing/commands/editing_state.h
index e1840d1..f5b63ac 100644
--- a/third_party/blink/renderer/core/editing/commands/editing_state.h
+++ b/third_party/blink/renderer/core/editing/commands/editing_state.h
@@ -7,7 +7,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/editing/commands/editor_command.cc b/third_party/blink/renderer/core/editing/commands/editor_command.cc
index 4353009..d9405ab9 100644
--- a/third_party/blink/renderer/core/editing/commands/editor_command.cc
+++ b/third_party/blink/renderer/core/editing/commands/editor_command.cc
@@ -69,7 +69,7 @@
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/heap/heap.h"
 #include "third_party/blink/renderer/platform/histogram.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 
 #include <iterator>
diff --git a/third_party/blink/renderer/core/editing/commands/insert_commands.h b/third_party/blink/renderer/core/editing/commands/insert_commands.h
index 19a633e..0ac3d42 100644
--- a/third_party/blink/renderer/core/editing/commands/insert_commands.h
+++ b/third_party/blink/renderer/core/editing/commands/insert_commands.h
@@ -32,7 +32,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_COMMANDS_INSERT_COMMANDS_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_COMMANDS_INSERT_COMMANDS_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/editing/commands/move_commands.h b/third_party/blink/renderer/core/editing/commands/move_commands.h
index 4eaf2cc..ec7e365 100644
--- a/third_party/blink/renderer/core/editing/commands/move_commands.h
+++ b/third_party/blink/renderer/core/editing/commands/move_commands.h
@@ -32,7 +32,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_COMMANDS_MOVE_COMMANDS_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_COMMANDS_MOVE_COMMANDS_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/editing/commands/style_commands.h b/third_party/blink/renderer/core/editing/commands/style_commands.h
index cece1e2a..0400ca2 100644
--- a/third_party/blink/renderer/core/editing/commands/style_commands.h
+++ b/third_party/blink/renderer/core/editing/commands/style_commands.h
@@ -33,7 +33,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_COMMANDS_STYLE_COMMANDS_H_
 
 #include "third_party/blink/renderer/core/events/input_event.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/editing/editing_behavior.h b/third_party/blink/renderer/core/editing/editing_behavior.h
index 90f13ba..719119a 100644
--- a/third_party/blink/renderer/core/editing/editing_behavior.h
+++ b/third_party/blink/renderer/core/editing/editing_behavior.h
@@ -23,7 +23,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/editing/editing_behavior_types.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 class KeyboardEvent;
diff --git a/third_party/blink/renderer/core/editing/editing_strategy.h b/third_party/blink/renderer/core/editing/editing_strategy.h
index d447962..4b4454d 100644
--- a/third_party/blink/renderer/core/editing/editing_strategy.h
+++ b/third_party/blink/renderer/core/editing/editing_strategy.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/flat_tree_traversal.h"
 #include "third_party/blink/renderer/core/dom/node_traversal.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/editing/editing_style_utilities.h b/third_party/blink/renderer/core/editing/editing_style_utilities.h
index c4e4d23..efaf957 100644
--- a/third_party/blink/renderer/core/editing/editing_style_utilities.h
+++ b/third_party/blink/renderer/core/editing/editing_style_utilities.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/renderer/core/css_value_keywords.h"
 #include "third_party/blink/renderer/core/dom/container_node.h"
 #include "third_party/blink/renderer/core/editing/forward.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/editing/element_inner_text.cc b/third_party/blink/renderer/core/editing/element_inner_text.cc
index a014585c4..5f5d2be7 100644
--- a/third_party/blink/renderer/core/editing/element_inner_text.cc
+++ b/third_party/blink/renderer/core/editing/element_inner_text.cc
@@ -26,7 +26,7 @@
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.h"
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_node_data.h"
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/character_names.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/core/editing/frame_selection.cc b/third_party/blink/renderer/core/editing/frame_selection.cc
index 6296c4c..304ff1b 100644
--- a/third_party/blink/renderer/core/editing/frame_selection.cc
+++ b/third_party/blink/renderer/core/editing/frame_selection.cc
@@ -918,22 +918,31 @@
   }
 }
 
+static EphemeralRangeInFlatTree ComputeRangeForSerialization(
+    const SelectionInDOMTree& selection) {
+  const EphemeralRangeInFlatTree& range =
+      ConvertToSelectionInFlatTree(selection).ComputeRange();
+  const PositionInFlatTree& start =
+      CreateVisiblePosition(range.StartPosition()).DeepEquivalent();
+  const PositionInFlatTree& end =
+      CreateVisiblePosition(range.EndPosition()).DeepEquivalent();
+  if (start.IsNull() || end.IsNull() || start >= end)
+    return EphemeralRangeInFlatTree();
+  return NormalizeRange(EphemeralRangeInFlatTree(start, end));
+}
+
 static String ExtractSelectedText(const FrameSelection& selection,
                                   TextIteratorBehavior behavior) {
-  const VisibleSelectionInFlatTree& visible_selection =
-      selection.ComputeVisibleSelectionInFlatTree();
   const EphemeralRangeInFlatTree& range =
-      visible_selection.ToNormalizedEphemeralRange();
+      ComputeRangeForSerialization(selection.GetSelectionInDOMTree());
   // We remove '\0' characters because they are not visibly rendered to the
   // user.
   return PlainText(range, behavior).Replace(0, "");
 }
 
 String FrameSelection::SelectedHTMLForClipboard() const {
-  const VisibleSelectionInFlatTree& visible_selection =
-      ComputeVisibleSelectionInFlatTree();
   const EphemeralRangeInFlatTree& range =
-      visible_selection.ToNormalizedEphemeralRange();
+      ComputeRangeForSerialization(GetSelectionInDOMTree());
   return CreateMarkup(
       range.StartPosition(), range.EndPosition(), kAnnotateForInterchange,
       ConvertBlocksToInlines::kNotConvert, kResolveNonLocalURLs);
diff --git a/third_party/blink/renderer/core/editing/frame_selection_test.cc b/third_party/blink/renderer/core/editing/frame_selection_test.cc
index 37efa61..3ba2c41 100644
--- a/third_party/blink/renderer/core/editing/frame_selection_test.cc
+++ b/third_party/blink/renderer/core/editing/frame_selection_test.cc
@@ -155,7 +155,7 @@
 }
 
 #define EXPECT_EQ_SELECTED_TEXT(text) \
-  EXPECT_EQ(text, WebString(Selection().SelectedText()).Utf8())
+  EXPECT_EQ(text, Selection().SelectedText().Utf8())
 
 TEST_F(FrameSelectionTest, SelectWordAroundCaret) {
   // "Foo Bar  Baz,"
diff --git a/third_party/blink/renderer/core/editing/granularity_strategy.h b/third_party/blink/renderer/core/editing/granularity_strategy.h
index 58377bf..e0e0e240 100644
--- a/third_party/blink/renderer/core/editing/granularity_strategy.h
+++ b/third_party/blink/renderer/core/editing/granularity_strategy.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/editing/forward.h"
 #include "third_party/blink/renderer/core/editing/selection_strategy.h"
 #include "third_party/blink/renderer/platform/geometry/int_size.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/editing/granularity_strategy_test.cc b/third_party/blink/renderer/core/editing/granularity_strategy_test.cc
index 17bff03..9dc1197 100644
--- a/third_party/blink/renderer/core/editing/granularity_strategy_test.cc
+++ b/third_party/blink/renderer/core/editing/granularity_strategy_test.cc
@@ -25,7 +25,7 @@
 namespace blink {
 
 #define EXPECT_EQ_SELECTED_TEXT(text) \
-  EXPECT_EQ(text, WebString(Selection().SelectedText()).Utf8())
+  EXPECT_EQ(text, Selection().SelectedText().Utf8())
 
 IntPoint VisiblePositionToContentsPoint(const VisiblePosition& pos) {
   IntPoint result = AbsoluteSelectionBoundsOf(pos).MinXMaxYCorner();
diff --git a/third_party/blink/renderer/core/editing/ime/ime_text_span.h b/third_party/blink/renderer/core/editing/ime/ime_text_span.h
index 6215e623..878be9e 100644
--- a/third_party/blink/renderer/core/editing/ime/ime_text_span.h
+++ b/third_party/blink/renderer/core/editing/ime/ime_text_span.h
@@ -28,7 +28,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/graphics/color.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 #include "ui/base/ime/mojo/ime_types.mojom-shared.h"
diff --git a/third_party/blink/renderer/core/editing/inline_box_position.h b/third_party/blink/renderer/core/editing/inline_box_position.h
index 61f253c2..3d58ea1 100644
--- a/third_party/blink/renderer/core/editing/inline_box_position.h
+++ b/third_party/blink/renderer/core/editing/inline_box_position.h
@@ -32,7 +32,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/editing/forward.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/editing/inline_box_traversal.h b/third_party/blink/renderer/core/editing/inline_box_traversal.h
index 5bccc36e..c3c3ea2 100644
--- a/third_party/blink/renderer/core/editing/inline_box_traversal.h
+++ b/third_party/blink/renderer/core/editing/inline_box_traversal.h
@@ -8,7 +8,7 @@
 // TODO(xiaochengh): Rename this file to |bidi_adjustment.h|
 
 #include "third_party/blink/renderer/core/editing/forward.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/editing/iterators/bit_stack.h b/third_party/blink/renderer/core/editing/iterators/bit_stack.h
index 9909e04..cdbb636 100644
--- a/third_party/blink/renderer/core/editing/iterators/bit_stack.h
+++ b/third_party/blink/renderer/core/editing/iterators/bit_stack.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_ITERATORS_BIT_STACK_H_
 
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/editing/iterators/fully_clipped_state_stack.h b/third_party/blink/renderer/core/editing/iterators/fully_clipped_state_stack.h
index 0e8ca69f..3f60c01 100644
--- a/third_party/blink/renderer/core/editing/iterators/fully_clipped_state_stack.h
+++ b/third_party/blink/renderer/core/editing/iterators/fully_clipped_state_stack.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/editing/editing_strategy.h"
 #include "third_party/blink/renderer/core/editing/iterators/bit_stack.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/editing/iterators/text_iterator_behavior.h b/third_party/blink/renderer/core/editing/iterators/text_iterator_behavior.h
index ce189732..232842e 100644
--- a/third_party/blink/renderer/core/editing/iterators/text_iterator_behavior.h
+++ b/third_party/blink/renderer/core/editing/iterators/text_iterator_behavior.h
@@ -7,7 +7,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/editing/iterators/text_searcher_icu.cc b/third_party/blink/renderer/core/editing/iterators/text_searcher_icu.cc
index 355ba77..f9fd3b7 100644
--- a/third_party/blink/renderer/core/editing/iterators/text_searcher_icu.cc
+++ b/third_party/blink/renderer/core/editing/iterators/text_searcher_icu.cc
@@ -33,7 +33,7 @@
 #include "third_party/blink/renderer/platform/text/text_boundaries.h"
 #include "third_party/blink/renderer/platform/text/text_break_iterator_internal_icu.h"
 #include "third_party/blink/renderer/platform/text/unicode_utilities.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/character_names.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/core/editing/iterators/text_searcher_icu.h b/third_party/blink/renderer/core/editing/iterators/text_searcher_icu.h
index 071f02f..1f251e9 100644
--- a/third_party/blink/renderer/core/editing/iterators/text_searcher_icu.h
+++ b/third_party/blink/renderer/core/editing/iterators/text_searcher_icu.h
@@ -8,7 +8,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/editing/finder/find_options.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_view.h"
 #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
 
diff --git a/third_party/blink/renderer/core/editing/layout_selection.cc b/third_party/blink/renderer/core/editing/layout_selection.cc
index ea77044e..1eef465 100644
--- a/third_party/blink/renderer/core/editing/layout_selection.cc
+++ b/third_party/blink/renderer/core/editing/layout_selection.cc
@@ -762,6 +762,13 @@
     if (!layout_object || !layout_object->CanBeSelectionLeaf())
       continue;
 
+    if (UNLIKELY(layout_object->NeedsLayout())) {
+      // TODO(crbug.com/973226): This is a workaround for missing layout on
+      // |node|. We should eliminate such missing layout eventually.
+      NOTREACHED() << node;
+      continue;
+    }
+
     if (!start_node) {
       DCHECK(!end_node);
       start_node = end_node = &node;
diff --git a/third_party/blink/renderer/core/editing/markers/document_marker.h b/third_party/blink/renderer/core/editing/markers/document_marker.h
index 97d05a10..7124abe6 100644
--- a/third_party/blink/renderer/core/editing/markers/document_marker.h
+++ b/third_party/blink/renderer/core/editing/markers/document_marker.h
@@ -27,7 +27,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/graphics/color.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector_traits.h"
 
diff --git a/third_party/blink/renderer/core/editing/markers/suggestion_marker_replacement_scope.h b/third_party/blink/renderer/core/editing/markers/suggestion_marker_replacement_scope.h
index a6616c9..2591e423 100644
--- a/third_party/blink/renderer/core/editing/markers/suggestion_marker_replacement_scope.h
+++ b/third_party/blink/renderer/core/editing/markers/suggestion_marker_replacement_scope.h
@@ -7,7 +7,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/editing/plain_text_range.h b/third_party/blink/renderer/core/editing/plain_text_range.h
index 62af2e98..9a220a8 100644
--- a/third_party/blink/renderer/core/editing/plain_text_range.h
+++ b/third_party/blink/renderer/core/editing/plain_text_range.h
@@ -29,7 +29,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/editing/forward.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/wtf_size_t.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/editing/selection_adjuster.h b/third_party/blink/renderer/core/editing/selection_adjuster.h
index 37c31e98..904b9b2 100644
--- a/third_party/blink/renderer/core/editing/selection_adjuster.h
+++ b/third_party/blink/renderer/core/editing/selection_adjuster.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/editing/forward.h"
 #include "third_party/blink/renderer/core/editing/text_granularity.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/editing/selection_modifier.h b/third_party/blink/renderer/core/editing/selection_modifier.h
index f17b36f4..1620aea5 100644
--- a/third_party/blink/renderer/core/editing/selection_modifier.h
+++ b/third_party/blink/renderer/core/editing/selection_modifier.h
@@ -32,7 +32,7 @@
 #include "third_party/blink/renderer/core/editing/selection_template.h"
 #include "third_party/blink/renderer/core/editing/visible_selection.h"
 #include "third_party/blink/renderer/platform/geometry/layout_unit.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/editing/selection_template.h b/third_party/blink/renderer/core/editing/selection_template.h
index 19083b68..80b9ff3 100644
--- a/third_party/blink/renderer/core/editing/selection_template.h
+++ b/third_party/blink/renderer/core/editing/selection_template.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/core/editing/position.h"
 #include "third_party/blink/renderer/core/editing/selection_type.h"
 #include "third_party/blink/renderer/core/editing/text_affinity.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/editing/set_selection_options.h b/third_party/blink/renderer/core/editing/set_selection_options.h
index 9cbb582..4d1ec50 100644
--- a/third_party/blink/renderer/core/editing/set_selection_options.h
+++ b/third_party/blink/renderer/core/editing/set_selection_options.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/editing/text_granularity.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/editing/spellcheck/text_checking.h b/third_party/blink/renderer/core/editing/spellcheck/text_checking.h
index a6291594..7fa929d 100644
--- a/third_party/blink/renderer/core/editing/spellcheck/text_checking.h
+++ b/third_party/blink/renderer/core/editing/spellcheck/text_checking.h
@@ -31,7 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_SPELLCHECK_TEXT_CHECKING_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_SPELLCHECK_TEXT_CHECKING_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/editing/state_machines/backspace_state_machine.h b/third_party/blink/renderer/core/editing/state_machines/backspace_state_machine.h
index 5ae422a..2b085cd 100644
--- a/third_party/blink/renderer/core/editing/state_machines/backspace_state_machine.h
+++ b/third_party/blink/renderer/core/editing/state_machines/backspace_state_machine.h
@@ -10,7 +10,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/editing/state_machines/text_segmentation_machine_state.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/editing/state_machines/backward_code_point_state_machine.h b/third_party/blink/renderer/core/editing/state_machines/backward_code_point_state_machine.h
index 8a6be8d9..3b136f5 100644
--- a/third_party/blink/renderer/core/editing/state_machines/backward_code_point_state_machine.h
+++ b/third_party/blink/renderer/core/editing/state_machines/backward_code_point_state_machine.h
@@ -8,7 +8,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/editing/state_machines/text_segmentation_machine_state.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/editing/state_machines/backward_grapheme_boundary_state_machine.h b/third_party/blink/renderer/core/editing/state_machines/backward_grapheme_boundary_state_machine.h
index efac1ee2..9e201fd 100644
--- a/third_party/blink/renderer/core/editing/state_machines/backward_grapheme_boundary_state_machine.h
+++ b/third_party/blink/renderer/core/editing/state_machines/backward_grapheme_boundary_state_machine.h
@@ -10,7 +10,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/editing/state_machines/text_segmentation_machine_state.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/editing/state_machines/forward_code_point_state_machine.h b/third_party/blink/renderer/core/editing/state_machines/forward_code_point_state_machine.h
index dda9b50e..78b0e77 100644
--- a/third_party/blink/renderer/core/editing/state_machines/forward_code_point_state_machine.h
+++ b/third_party/blink/renderer/core/editing/state_machines/forward_code_point_state_machine.h
@@ -8,7 +8,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/editing/state_machines/text_segmentation_machine_state.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/editing/state_machines/forward_grapheme_boundary_state_machine.h b/third_party/blink/renderer/core/editing/state_machines/forward_grapheme_boundary_state_machine.h
index 9e612dfd..f4362e3 100644
--- a/third_party/blink/renderer/core/editing/state_machines/forward_grapheme_boundary_state_machine.h
+++ b/third_party/blink/renderer/core/editing/state_machines/forward_grapheme_boundary_state_machine.h
@@ -10,7 +10,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/editing/state_machines/text_segmentation_machine_state.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/editing/testing/selection_sample.h b/third_party/blink/renderer/core/editing/testing/selection_sample.h
index 4425482..5d1fcd78 100644
--- a/third_party/blink/renderer/core/editing/testing/selection_sample.h
+++ b/third_party/blink/renderer/core/editing/testing/selection_sample.h
@@ -8,7 +8,7 @@
 #include <string>
 
 #include "third_party/blink/renderer/core/editing/forward.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/editing/text_offset_mapping.h b/third_party/blink/renderer/core/editing/text_offset_mapping.h
index 1cc8985..e3aca5b 100644
--- a/third_party/blink/renderer/core/editing/text_offset_mapping.h
+++ b/third_party/blink/renderer/core/editing/text_offset_mapping.h
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/core/editing/forward.h"
 #include "third_party/blink/renderer/core/editing/iterators/text_iterator_behavior.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/editing/text_segments.h b/third_party/blink/renderer/core/editing/text_segments.h
index 5f05aed..b57fa55 100644
--- a/third_party/blink/renderer/core/editing/text_segments.h
+++ b/third_party/blink/renderer/core/editing/text_segments.h
@@ -7,7 +7,7 @@
 
 #include "base/optional.h"
 #include "third_party/blink/renderer/core/editing/forward.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/editing/visible_selection.h b/third_party/blink/renderer/core/editing/visible_selection.h
index 74e26cdd..14eaf8f 100644
--- a/third_party/blink/renderer/core/editing/visible_selection.h
+++ b/third_party/blink/renderer/core/editing/visible_selection.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/core/editing/text_affinity.h"
 #include "third_party/blink/renderer/core/editing/text_granularity.h"
 #include "third_party/blink/renderer/core/editing/visible_units.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/events/current_input_event.h b/third_party/blink/renderer/core/events/current_input_event.h
index 3820049..909b5f3 100644
--- a/third_party/blink/renderer/core/events/current_input_event.h
+++ b/third_party/blink/renderer/core/events/current_input_event.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_EVENTS_CURRENT_INPUT_EVENT_H_
 
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/events/event_factory.h b/third_party/blink/renderer/core/events/event_factory.h
index 295e1181..4ffe7f48 100644
--- a/third_party/blink/renderer/core/events/event_factory.h
+++ b/third_party/blink/renderer/core/events/event_factory.h
@@ -29,7 +29,7 @@
 #include <memory>
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/events/message_event.h b/third_party/blink/renderer/core/events/message_event.h
index c38e56d..9a8b01f 100644
--- a/third_party/blink/renderer/core/events/message_event.h
+++ b/third_party/blink/renderer/core/events/message_event.h
@@ -41,7 +41,7 @@
 #include "third_party/blink/renderer/core/fileapi/blob.h"
 #include "third_party/blink/renderer/core/messaging/message_port.h"
 #include "third_party/blink/renderer/core/typed_arrays/dom_array_buffer.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/events/navigator_events.h b/third_party/blink/renderer/core/events/navigator_events.h
index 98da73b..feb55ed 100644
--- a/third_party/blink/renderer/core/events/navigator_events.h
+++ b/third_party/blink/renderer/core/events/navigator_events.h
@@ -31,7 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_EVENTS_NAVIGATOR_EVENTS_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_EVENTS_NAVIGATOR_EVENTS_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/events/pointer_event_factory.h b/third_party/blink/renderer/core/events/pointer_event_factory.h
index 9ee7532..6e895db 100644
--- a/third_party/blink/renderer/core/events/pointer_event_factory.h
+++ b/third_party/blink/renderer/core/events/pointer_event_factory.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/public/platform/web_pointer_properties.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/events/pointer_event.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/exported/web_input_method_controller_impl.h b/third_party/blink/renderer/core/exported/web_input_method_controller_impl.h
index b2e829b..6efd536 100644
--- a/third_party/blink/renderer/core/exported/web_input_method_controller_impl.h
+++ b/third_party/blink/renderer/core/exported/web_input_method_controller_impl.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/public/web/web_input_method_controller.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
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 b46460cd..673066d 100644
--- a/third_party/blink/renderer/core/exported/web_view_test.cc
+++ b/third_party/blink/renderer/core/exported/web_view_test.cc
@@ -4354,8 +4354,8 @@
   MojoTestHelper(const String& test_file,
                  frame_test_helpers::WebViewHelper& web_view_helper)
       : web_view_helper_(web_view_helper) {
-    web_view_ = web_view_helper.InitializeAndLoad(WebString(test_file).Utf8(),
-                                                  &web_frame_client_);
+    web_view_ =
+        web_view_helper.InitializeAndLoad(test_file.Utf8(), &web_frame_client_);
   }
 
   ~MojoTestHelper() {
@@ -4370,7 +4370,7 @@
     // Set up our Mock Mojo API.
     test_api_.reset(new service_manager::InterfaceProvider::TestApi(
         web_frame_client_.GetInterfaceProvider()));
-    test_api_->SetBinderForName(WebString(name).Utf8(), callback);
+    test_api_->SetBinderForName(name.Utf8(), callback);
   }
   WebViewImpl* WebView() const { return web_view_; }
 
diff --git a/third_party/blink/renderer/core/feature_policy/layout_animations_policy.h b/third_party/blink/renderer/core/feature_policy/layout_animations_policy.h
index 3efcff1d..d2d5bce 100644
--- a/third_party/blink/renderer/core/feature_policy/layout_animations_policy.h
+++ b/third_party/blink/renderer/core/feature_policy/layout_animations_policy.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_FEATURE_POLICY_LAYOUT_ANIMATIONS_POLICY_H_
 
 #include "third_party/blink/public/common/feature_policy/feature_policy.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/core/fetch/form_data_bytes_consumer_test.cc b/third_party/blink/renderer/core/fetch/form_data_bytes_consumer_test.cc
index 89aca99..512ad7b 100644
--- a/third_party/blink/renderer/core/fetch/form_data_bytes_consumer_test.cc
+++ b/third_party/blink/renderer/core/fetch/form_data_bytes_consumer_test.cc
@@ -12,7 +12,6 @@
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/blink/public/platform/web_http_body.h"
-#include "third_party/blink/public/platform/web_string.h"
 #include "third_party/blink/renderer/core/fetch/bytes_consumer_test_util.h"
 #include "third_party/blink/renderer/core/html/forms/form_data.h"
 #include "third_party/blink/renderer/core/testing/page_test_base.h"
@@ -50,7 +49,7 @@
   // network::mojom::DataPipeGetter implementation:
   void Read(mojo::ScopedDataPipeProducerHandle handle,
             ReadCallback callback) override {
-    bool result = mojo::BlockingCopyFromString(WebString(str_).Utf8(), handle);
+    bool result = mojo::BlockingCopyFromString(str_.Utf8(), handle);
     ASSERT_TRUE(result);
     std::move(callback).Run(0 /* OK */, str_.length());
   }
diff --git a/third_party/blink/renderer/core/fetch/multipart_parser.h b/third_party/blink/renderer/core/fetch/multipart_parser.h
index 8dec658..cedf5e53 100644
--- a/third_party/blink/renderer/core/fetch/multipart_parser.h
+++ b/third_party/blink/renderer/core/fetch/multipart_parser.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/network/http_header_map.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/fetch/testing/internals_fetch.h b/third_party/blink/renderer/core/fetch/testing/internals_fetch.h
index ebdeb1a..ea59f0db7 100644
--- a/third_party/blink/renderer/core/fetch/testing/internals_fetch.h
+++ b/third_party/blink/renderer/core/fetch/testing/internals_fetch.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_FETCH_TESTING_INTERNALS_FETCH_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_FETCH_TESTING_INTERNALS_FETCH_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/fetch/testing/worker_internals_fetch.h b/third_party/blink/renderer/core/fetch/testing/worker_internals_fetch.h
index df884ac..e19f437 100644
--- a/third_party/blink/renderer/core/fetch/testing/worker_internals_fetch.h
+++ b/third_party/blink/renderer/core/fetch/testing/worker_internals_fetch.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_FETCH_TESTING_WORKER_INTERNALS_FETCH_H_
 
 #include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/fileapi/url_file_api.h b/third_party/blink/renderer/core/fileapi/url_file_api.h
index dcab4f2..c9b47ad1 100644
--- a/third_party/blink/renderer/core/fileapi/url_file_api.h
+++ b/third_party/blink/renderer/core/fileapi/url_file_api.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_FILEAPI_URL_FILE_API_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_FILEAPI_URL_FILE_API_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/frame/csp/csp_source.h b/third_party/blink/renderer/core/frame/csp/csp_source.h
index b749204..23c02f72 100644
--- a/third_party/blink/renderer/core/frame/csp/csp_source.h
+++ b/third_party/blink/renderer/core/frame/csp/csp_source.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/frame/csp/content_security_policy.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_request.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/frame/dactyloscoper.h b/third_party/blink/renderer/core/frame/dactyloscoper.h
index d0796ca..2f86088 100644
--- a/third_party/blink/renderer/core/frame/dactyloscoper.h
+++ b/third_party/blink/renderer/core/frame/dactyloscoper.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/frame/web_feature.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/frame/deprecated_schedule_style_recalc_during_layout.h b/third_party/blink/renderer/core/frame/deprecated_schedule_style_recalc_during_layout.h
index d3ddeb7..849a3b5 100644
--- a/third_party/blink/renderer/core/frame/deprecated_schedule_style_recalc_during_layout.h
+++ b/third_party/blink/renderer/core/frame/deprecated_schedule_style_recalc_during_layout.h
@@ -7,7 +7,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/dom/document_lifecycle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/frame/frame_test_helpers.h b/third_party/blink/renderer/core/frame/frame_test_helpers.h
index 2e274d6..730a6c2 100644
--- a/third_party/blink/renderer/core/frame/frame_test_helpers.h
+++ b/third_party/blink/renderer/core/frame/frame_test_helpers.h
@@ -60,7 +60,7 @@
 #include "third_party/blink/renderer/core/scroll/scrollbar_theme.h"
 #include "third_party/blink/renderer/core/testing/use_mock_scrollbar_settings.h"
 #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 #define EXPECT_FLOAT_POINT_EQ(expected, actual)    \
diff --git a/third_party/blink/renderer/core/frame/frame_view_auto_size_info.h b/third_party/blink/renderer/core/frame/frame_view_auto_size_info.h
index 94318fc..c66b4c2 100644
--- a/third_party/blink/renderer/core/frame/frame_view_auto_size_info.h
+++ b/third_party/blink/renderer/core/frame/frame_view_auto_size_info.h
@@ -9,7 +9,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/platform/geometry/int_size.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/frame/fullscreen_controller.h b/third_party/blink/renderer/core/frame/fullscreen_controller.h
index c2893be..726ac9a 100644
--- a/third_party/blink/renderer/core/frame/fullscreen_controller.h
+++ b/third_party/blink/renderer/core/frame/fullscreen_controller.h
@@ -39,7 +39,7 @@
 #include "third_party/blink/renderer/platform/geometry/int_size.h"
 #include "third_party/blink/renderer/platform/graphics/color.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/frame/intervention.h b/third_party/blink/renderer/core/frame/intervention.h
index b9016f1..8089995 100644
--- a/third_party/blink/renderer/core/frame/intervention.h
+++ b/third_party/blink/renderer/core/frame/intervention.h
@@ -7,7 +7,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/frame/layout_subtree_root_list.h b/third_party/blink/renderer/core/frame/layout_subtree_root_list.h
index 49a8f4ef..608edbe5 100644
--- a/third_party/blink/renderer/core/frame/layout_subtree_root_list.h
+++ b/third_party/blink/renderer/core/frame/layout_subtree_root_list.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_LAYOUT_SUBTREE_ROOT_LIST_H_
 
 #include "third_party/blink/renderer/core/layout/depth_ordered_layout_object_list.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.h b/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.h
index 0a76cc7..8bb2bfa 100644
--- a/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.h
+++ b/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/histogram.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/time.h"
 
diff --git a/third_party/blink/renderer/core/frame/local_frame_view.h b/third_party/blink/renderer/core/frame/local_frame_view.h
index 063eda35..ea77e3f 100644
--- a/third_party/blink/renderer/core/frame/local_frame_view.h
+++ b/third_party/blink/renderer/core/frame/local_frame_view.h
@@ -46,7 +46,7 @@
 #include "third_party/blink/renderer/platform/graphics/paint_invalidation_reason.h"
 #include "third_party/blink/renderer/platform/graphics/subtree_paint_property_update_reason.h"
 #include "third_party/blink/renderer/platform/timer.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 #include "third_party/skia/include/core/SkColor.h"
 
diff --git a/third_party/blink/renderer/core/frame/opened_frame_tracker.h b/third_party/blink/renderer/core/frame/opened_frame_tracker.h
index 60c44d6c..f645a9c9 100644
--- a/third_party/blink/renderer/core/frame/opened_frame_tracker.h
+++ b/third_party/blink/renderer/core/frame/opened_frame_tracker.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_OPENED_FRAME_TRACKER_H_
 
 #include "base/macros.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/frame/page_scale_constraints.h b/third_party/blink/renderer/core/frame/page_scale_constraints.h
index de4f26d..301cda4 100644
--- a/third_party/blink/renderer/core/frame/page_scale_constraints.h
+++ b/third_party/blink/renderer/core/frame/page_scale_constraints.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/geometry/float_size.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/frame/page_scale_constraints_set.h b/third_party/blink/renderer/core/frame/page_scale_constraints_set.h
index d6ceb96..d80144c 100644
--- a/third_party/blink/renderer/core/frame/page_scale_constraints_set.h
+++ b/third_party/blink/renderer/core/frame/page_scale_constraints_set.h
@@ -40,7 +40,7 @@
 #include "third_party/blink/renderer/platform/geometry/int_size.h"
 #include "third_party/blink/renderer/platform/geometry/length.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/frame/settings_delegate.h b/third_party/blink/renderer/core/frame/settings_delegate.h
index 428173c..26ed4b5 100644
--- a/third_party/blink/renderer/core/frame/settings_delegate.h
+++ b/third_party/blink/renderer/core/frame/settings_delegate.h
@@ -33,7 +33,7 @@
 
 #include <memory>
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/frame/window_event_handlers.h b/third_party/blink/renderer/core/frame/window_event_handlers.h
index 07ab42dc..d9f5e87 100644
--- a/third_party/blink/renderer/core/frame/window_event_handlers.h
+++ b/third_party/blink/renderer/core/frame/window_event_handlers.h
@@ -31,7 +31,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_WINDOW_EVENT_HANDLERS_H_
 
 #include "third_party/blink/renderer/core/dom/events/event_target.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/frame/window_or_worker_global_scope.h b/third_party/blink/renderer/core/frame/window_or_worker_global_scope.h
index 0cb1db2..e3e7a41a 100644
--- a/third_party/blink/renderer/core/frame/window_or_worker_global_scope.h
+++ b/third_party/blink/renderer/core/frame/window_or_worker_global_scope.h
@@ -34,7 +34,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_WINDOW_OR_WORKER_GLOBAL_SCOPE_H_
 
 #include "third_party/blink/renderer/bindings/core/v8/image_bitmap_source.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/fullscreen/document_fullscreen.h b/third_party/blink/renderer/core/fullscreen/document_fullscreen.h
index a0ef800..cb64f05 100644
--- a/third_party/blink/renderer/core/fullscreen/document_fullscreen.h
+++ b/third_party/blink/renderer/core/fullscreen/document_fullscreen.h
@@ -29,7 +29,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
 #include "third_party/blink/renderer/core/dom/events/event_target.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/fullscreen/element_fullscreen.h b/third_party/blink/renderer/core/fullscreen/element_fullscreen.h
index 512bb78..ecca49b 100644
--- a/third_party/blink/renderer/core/fullscreen/element_fullscreen.h
+++ b/third_party/blink/renderer/core/fullscreen/element_fullscreen.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/dom/events/event_target.h"
 #include "third_party/blink/renderer/core/fullscreen/fullscreen_options.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/fullscreen/scoped_allow_fullscreen.h b/third_party/blink/renderer/core/fullscreen/scoped_allow_fullscreen.h
index 950b384..541054b 100644
--- a/third_party/blink/renderer/core/fullscreen/scoped_allow_fullscreen.h
+++ b/third_party/blink/renderer/core/fullscreen/scoped_allow_fullscreen.h
@@ -8,7 +8,7 @@
 #include "base/macros.h"
 #include "base/optional.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/anchor_element_metrics.h b/third_party/blink/renderer/core/html/anchor_element_metrics.h
index cc4bb5fb..778f218 100644
--- a/third_party/blink/renderer/core/html/anchor_element_metrics.h
+++ b/third_party/blink/renderer/core/html/anchor_element_metrics.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/public/mojom/loader/navigation_predictor.mojom-blink.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/canvas/canvas_rendering_context_factory.h b/third_party/blink/renderer/core/html/canvas/canvas_rendering_context_factory.h
index 5a56e7a..dff8ab7c 100644
--- a/third_party/blink/renderer/core/html/canvas/canvas_rendering_context_factory.h
+++ b/third_party/blink/renderer/core/html/canvas/canvas_rendering_context_factory.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/html/canvas/canvas_context_creation_attributes_core.h"
 #include "third_party/blink/renderer/core/html/canvas/canvas_rendering_context.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/custom/ce_reactions_scope.h b/third_party/blink/renderer/core/html/custom/ce_reactions_scope.h
index 650d010c..c3bf1ee0 100644
--- a/third_party/blink/renderer/core/html/custom/ce_reactions_scope.h
+++ b/third_party/blink/renderer/core/html/custom/ce_reactions_scope.h
@@ -8,7 +8,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/html/custom/custom_element.h b/third_party/blink/renderer/core/html/custom/custom_element.h
index ccf22bf..172a3dc 100644
--- a/third_party/blink/renderer/core/html/custom/custom_element.h
+++ b/third_party/blink/renderer/core/html/custom/custom_element.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/dom/create_element_flags.h"
 #include "third_party/blink/renderer/core/dom/element.h"
 #include "third_party/blink/renderer/platform/text/character.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/ascii_ctype.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 
diff --git a/third_party/blink/renderer/core/html/custom/custom_element_definition_builder.h b/third_party/blink/renderer/core/html/custom/custom_element_definition_builder.h
index eab6ef0..6a61667f 100644
--- a/third_party/blink/renderer/core/html/custom/custom_element_definition_builder.h
+++ b/third_party/blink/renderer/core/html/custom/custom_element_definition_builder.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/css/css_style_sheet.h"
 #include "third_party/blink/renderer/core/html/custom/custom_element_definition.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/custom/custom_element_descriptor.h b/third_party/blink/renderer/core/html/custom/custom_element_descriptor.h
index 59e781b..ba8b030 100644
--- a/third_party/blink/renderer/core/html/custom/custom_element_descriptor.h
+++ b/third_party/blink/renderer/core/html/custom/custom_element_descriptor.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/element.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_table_deleted_value_type.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 
diff --git a/third_party/blink/renderer/core/html/custom/custom_element_reaction_factory.h b/third_party/blink/renderer/core/html/custom/custom_element_reaction_factory.h
index edb0e1c..177bcd7 100644
--- a/third_party/blink/renderer/core/html/custom/custom_element_reaction_factory.h
+++ b/third_party/blink/renderer/core/html/custom/custom_element_reaction_factory.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_HTML_CUSTOM_CUSTOM_ELEMENT_REACTION_FACTORY_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_CUSTOM_CUSTOM_ELEMENT_REACTION_FACTORY_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/html/custom/custom_element_registry.cc b/third_party/blink/renderer/core/html/custom/custom_element_registry.cc
index d31b4be..d440e2a2 100644
--- a/third_party/blink/renderer/core/html/custom/custom_element_registry.cc
+++ b/third_party/blink/renderer/core/html/custom/custom_element_registry.cc
@@ -29,7 +29,7 @@
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h"
 #include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/custom/v0_custom_element.h b/third_party/blink/renderer/core/html/custom/v0_custom_element.h
index 1693319..3fffa890 100644
--- a/third_party/blink/renderer/core/html/custom/v0_custom_element.h
+++ b/third_party/blink/renderer/core/html/custom/v0_custom_element.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/html/custom/v0_custom_element_definition.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/core/html/custom/v0_custom_element_descriptor_hash.h b/third_party/blink/renderer/core/html/custom/v0_custom_element_descriptor_hash.h
index 64fb286..103ffc48 100644
--- a/third_party/blink/renderer/core/html/custom/v0_custom_element_descriptor_hash.h
+++ b/third_party/blink/renderer/core/html/custom/v0_custom_element_descriptor_hash.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_CUSTOM_V0_CUSTOM_ELEMENT_DESCRIPTOR_HASH_H_
 
 #include "third_party/blink/renderer/core/html/custom/v0_custom_element_descriptor.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_functions.h"
 #include "third_party/blink/renderer/platform/wtf/hash_traits.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string_hash.h"
diff --git a/third_party/blink/renderer/core/html/custom/v0_custom_element_exception.h b/third_party/blink/renderer/core/html/custom/v0_custom_element_exception.h
index aa75b5d7..2727385 100644
--- a/third_party/blink/renderer/core/html/custom/v0_custom_element_exception.h
+++ b/third_party/blink/renderer/core/html/custom/v0_custom_element_exception.h
@@ -31,7 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_HTML_CUSTOM_V0_CUSTOM_ELEMENT_EXCEPTION_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_CUSTOM_V0_CUSTOM_ELEMENT_EXCEPTION_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/core/html/forms/date_time_chooser.h b/third_party/blink/renderer/core/html/forms/date_time_chooser.h
index 59c3199..c6c5e74 100644
--- a/third_party/blink/renderer/core/html/forms/date_time_chooser.h
+++ b/third_party/blink/renderer/core/html/forms/date_time_chooser.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/geometry/int_rect.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/html/forms/date_time_edit_element.h b/third_party/blink/renderer/core/html/forms/date_time_edit_element.h
index b8b6899b..4cf46d4a 100644
--- a/third_party/blink/renderer/core/html/forms/date_time_edit_element.h
+++ b/third_party/blink/renderer/core/html/forms/date_time_edit_element.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/renderer/core/html/forms/date_time_field_element.h"
 #include "third_party/blink/renderer/core/html/forms/step_range.h"
 #include "third_party/blink/renderer/platform/text/date_components.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/forms/date_time_field_elements.h b/third_party/blink/renderer/core/html/forms/date_time_field_elements.h
index ce097fe4..f5ad133 100644
--- a/third_party/blink/renderer/core/html/forms/date_time_field_elements.h
+++ b/third_party/blink/renderer/core/html/forms/date_time_field_elements.h
@@ -29,7 +29,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/html/forms/date_time_numeric_field_element.h"
 #include "third_party/blink/renderer/core/html/forms/date_time_symbolic_field_element.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/forms/date_time_fields_state.h b/third_party/blink/renderer/core/html/forms/date_time_fields_state.h
index 36020b2..e9762a6 100644
--- a/third_party/blink/renderer/core/html/forms/date_time_fields_state.h
+++ b/third_party/blink/renderer/core/html/forms/date_time_fields_state.h
@@ -26,7 +26,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_HTML_FORMS_DATE_TIME_FIELDS_STATE_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_FORMS_DATE_TIME_FIELDS_STATE_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/forms/date_time_numeric_field_element.h b/third_party/blink/renderer/core/html/forms/date_time_numeric_field_element.h
index a661fce..83edb4e 100644
--- a/third_party/blink/renderer/core/html/forms/date_time_numeric_field_element.h
+++ b/third_party/blink/renderer/core/html/forms/date_time_numeric_field_element.h
@@ -29,7 +29,7 @@
 #include "base/macros.h"
 #include "third_party/blink/public/platform/web_focus_type.h"
 #include "third_party/blink/renderer/core/html/forms/date_time_field_element.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/core/html/forms/file_chooser.h b/third_party/blink/renderer/core/html/forms/file_chooser.h
index 1042c13f5..fc4d926 100644
--- a/third_party/blink/renderer/core/html/forms/file_chooser.h
+++ b/third_party/blink/renderer/core/html/forms/file_chooser.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/core/html/forms/form_controller.h b/third_party/blink/renderer/core/html/forms/form_controller.h
index 0ac1e41..4a520187 100644
--- a/third_party/blink/renderer/core/html/forms/form_controller.h
+++ b/third_party/blink/renderer/core/html/forms/form_controller.h
@@ -26,7 +26,7 @@
 #include <memory>
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string_hash.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/core/html/forms/input_type_view.h b/third_party/blink/renderer/core/html/forms/input_type_view.h
index 0c13fd7a..9da2af76 100644
--- a/third_party/blink/renderer/core/html/forms/input_type_view.h
+++ b/third_party/blink/renderer/core/html/forms/input_type_view.h
@@ -39,7 +39,7 @@
 #include "third_party/blink/renderer/core/dom/events/event_dispatcher.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/text/text_direction.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/html/forms/step_range.h b/third_party/blink/renderer/core/html/forms/step_range.h
index b62c182..796a496c 100644
--- a/third_party/blink/renderer/core/html/forms/step_range.h
+++ b/third_party/blink/renderer/core/html/forms/step_range.h
@@ -22,7 +22,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_FORMS_STEP_RANGE_H_
 
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/decimal.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
diff --git a/third_party/blink/renderer/core/html/forms/type_ahead.h b/third_party/blink/renderer/core/html/forms/type_ahead.h
index 033d37e..b022fae5 100644
--- a/third_party/blink/renderer/core/html/forms/type_ahead.h
+++ b/third_party/blink/renderer/core/html/forms/type_ahead.h
@@ -28,7 +28,7 @@
 
 #include "base/optional.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/time.h"
diff --git a/third_party/blink/renderer/core/html/html_dimension.h b/third_party/blink/renderer/core/html/html_dimension.h
index ba44b61..2a3bf96 100644
--- a/third_party/blink/renderer/core/html/html_dimension.h
+++ b/third_party/blink/renderer/core/html/html_dimension.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_HTML_DIMENSION_H_
 
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/html/html_image_fallback_helper.h b/third_party/blink/renderer/core/html/html_image_fallback_helper.h
index 1ffbf91..8d7df65 100644
--- a/third_party/blink/renderer/core/html/html_image_fallback_helper.h
+++ b/third_party/blink/renderer/core/html/html_image_fallback_helper.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_HTML_IMAGE_FALLBACK_HELPER_H_
 
 #include "base/memory/scoped_refptr.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/html_slot_element.cc b/third_party/blink/renderer/core/html/html_slot_element.cc
index da4d9e0..6711b1a 100644
--- a/third_party/blink/renderer/core/html/html_slot_element.cc
+++ b/third_party/blink/renderer/core/html/html_slot_element.cc
@@ -524,14 +524,6 @@
   return assignment.FindHostChildBySlotName(GetName());
 }
 
-bool HTMLSlotElement::FindHostChildWithSameSlotName() const {
-  ShadowRoot* root = ContainingShadowRoot();
-  DCHECK(root);
-  DCHECK(root->IsV1());
-  SlotAssignment& assignment = root->GetSlotAssignment();
-  return assignment.FindHostChildBySlotName(GetName());
-}
-
 int HTMLSlotElement::tabIndex() const {
   return Element::tabIndex();
 }
diff --git a/third_party/blink/renderer/core/html/html_slot_element.h b/third_party/blink/renderer/core/html/html_slot_element.h
index 50dde114..38390c91 100644
--- a/third_party/blink/renderer/core/html/html_slot_element.h
+++ b/third_party/blink/renderer/core/html/html_slot_element.h
@@ -90,7 +90,6 @@
   // shadow host.  This method should be used only when |assigned_nodes_| is
   // dirty.  e.g. To detect a slotchange event in DOM mutations.
   bool HasAssignedNodesSlow() const;
-  bool FindHostChildWithSameSlotName() const;
 
   bool SupportsAssignment() const { return IsInV1ShadowTree(); }
 
diff --git a/third_party/blink/renderer/core/html/imports/html_import.h b/third_party/blink/renderer/core/html/imports/html_import.h
index e112e64a..45078adb 100644
--- a/third_party/blink/renderer/core/html/imports/html_import.h
+++ b/third_party/blink/renderer/core/html/imports/html_import.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/core/html/imports/html_import_state.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/tree_node.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/html/imports/html_import_state.h b/third_party/blink/renderer/core/html/imports/html_import_state.h
index c193d4c..1bfc893e 100644
--- a/third_party/blink/renderer/core/html/imports/html_import_state.h
+++ b/third_party/blink/renderer/core/html/imports/html_import_state.h
@@ -31,7 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_HTML_IMPORTS_HTML_IMPORT_STATE_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_IMPORTS_HTML_IMPORT_STATE_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/html/imports/html_imports_controller.h b/third_party/blink/renderer/core/html/imports/html_imports_controller.h
index 75fe52d..ddb6933 100644
--- a/third_party/blink/renderer/core/html/imports/html_imports_controller.h
+++ b/third_party/blink/renderer/core/html/imports/html_imports_controller.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/html/imports/link_import.h b/third_party/blink/renderer/core/html/imports/link_import.h
index e6586e1a..b6f1b8fc 100644
--- a/third_party/blink/renderer/core/html/imports/link_import.h
+++ b/third_party/blink/renderer/core/html/imports/link_import.h
@@ -34,7 +34,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/core/html/imports/html_import_child_client.h"
 #include "third_party/blink/renderer/core/html/link_resource.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/link_manifest.h b/third_party/blink/renderer/core/html/link_manifest.h
index 187e960a..30f002d 100644
--- a/third_party/blink/renderer/core/html/link_manifest.h
+++ b/third_party/blink/renderer/core/html/link_manifest.h
@@ -7,7 +7,7 @@
 
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/core/html/link_resource.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/link_rel_attribute.h b/third_party/blink/renderer/core/html/link_rel_attribute.h
index fdb6aeb8..709dceac 100644
--- a/third_party/blink/renderer/core/html/link_rel_attribute.h
+++ b/third_party/blink/renderer/core/html/link_rel_attribute.h
@@ -34,7 +34,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/icon_url.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/html/media/media_fragment_uri_parser.h b/third_party/blink/renderer/core/html/media/media_fragment_uri_parser.h
index a61157d..3e965309 100644
--- a/third_party/blink/renderer/core/html/media/media_fragment_uri_parser.h
+++ b/third_party/blink/renderer/core/html/media/media_fragment_uri_parser.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_MEDIA_MEDIA_FRAGMENT_URI_PARSER_H_
 
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/html/parser/atomic_html_token.h b/third_party/blink/renderer/core/html/parser/atomic_html_token.h
index 6e091f69..6c1dcaa 100644
--- a/third_party/blink/renderer/core/html/parser/atomic_html_token.h
+++ b/third_party/blink/renderer/core/html/parser/atomic_html_token.h
@@ -33,7 +33,7 @@
 #include "third_party/blink/renderer/core/html/parser/compact_html_token.h"
 #include "third_party/blink/renderer/core/html/parser/html_token.h"
 #include "third_party/blink/renderer/core/html_element_lookup_trie.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/parser/background_html_input_stream.h b/third_party/blink/renderer/core/html/parser/background_html_input_stream.h
index a32e032..4e04ad13 100644
--- a/third_party/blink/renderer/core/html/parser/background_html_input_stream.h
+++ b/third_party/blink/renderer/core/html/parser/background_html_input_stream.h
@@ -28,7 +28,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/text/segmented_string.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/html/parser/compact_html_token.h b/third_party/blink/renderer/core/html/parser/compact_html_token.h
index ccb3c6f..c24072f3 100644
--- a/third_party/blink/renderer/core/html/parser/compact_html_token.h
+++ b/third_party/blink/renderer/core/html/parser/compact_html_token.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_PARSER_COMPACT_HTML_TOKEN_H_
 
 #include "third_party/blink/renderer/core/html/parser/html_token.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/text_position.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/core/html/parser/html_entity_parser.h b/third_party/blink/renderer/core/html/parser/html_entity_parser.h
index 814fccb6..4f936a8 100644
--- a/third_party/blink/renderer/core/html/parser/html_entity_parser.h
+++ b/third_party/blink/renderer/core/html/parser/html_entity_parser.h
@@ -29,7 +29,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/text/segmented_string.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/parser/html_entity_search.h b/third_party/blink/renderer/core/html/parser/html_entity_search.h
index 3a54bd0..163e58b3 100644
--- a/third_party/blink/renderer/core/html/parser/html_entity_search.h
+++ b/third_party/blink/renderer/core/html/parser/html_entity_search.h
@@ -26,7 +26,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_HTML_PARSER_HTML_ENTITY_SEARCH_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_PARSER_HTML_ENTITY_SEARCH_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/html/parser/html_entity_table.h b/third_party/blink/renderer/core/html/parser/html_entity_table.h
index fe93679..7f8c1d76 100644
--- a/third_party/blink/renderer/core/html/parser/html_entity_table.h
+++ b/third_party/blink/renderer/core/html/parser/html_entity_table.h
@@ -26,7 +26,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_HTML_PARSER_HTML_ENTITY_TABLE_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_PARSER_HTML_ENTITY_TABLE_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/html/parser/html_input_stream.h b/third_party/blink/renderer/core/html/parser/html_input_stream.h
index e0c6415..9539cce 100644
--- a/third_party/blink/renderer/core/html/parser/html_input_stream.h
+++ b/third_party/blink/renderer/core/html/parser/html_input_stream.h
@@ -29,7 +29,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/html/parser/input_stream_preprocessor.h"
 #include "third_party/blink/renderer/platform/text/segmented_string.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/parser/html_parser_options.h b/third_party/blink/renderer/core/html/parser/html_parser_options.h
index 8a469a2..50011d1 100644
--- a/third_party/blink/renderer/core/html/parser/html_parser_options.h
+++ b/third_party/blink/renderer/core/html/parser/html_parser_options.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_PARSER_HTML_PARSER_OPTIONS_H_
 
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/parser/html_parser_scheduler.h b/third_party/blink/renderer/core/html/parser/html_parser_scheduler.h
index 612dd39f..0c15cad 100644
--- a/third_party/blink/renderer/core/html/parser/html_parser_scheduler.h
+++ b/third_party/blink/renderer/core/html/parser/html_parser_scheduler.h
@@ -31,7 +31,7 @@
 #include "base/single_thread_task_runner.h"
 #include "third_party/blink/renderer/core/html/parser/nesting_level_incrementer.h"
 #include "third_party/blink/renderer/platform/scheduler/public/post_cancellable_task.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/parser/html_source_tracker.h b/third_party/blink/renderer/core/html/parser/html_source_tracker.h
index 50799bd9..1e87b089 100644
--- a/third_party/blink/renderer/core/html/parser/html_source_tracker.h
+++ b/third_party/blink/renderer/core/html/parser/html_source_tracker.h
@@ -29,7 +29,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/html/parser/html_token.h"
 #include "third_party/blink/renderer/platform/text/segmented_string.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/parser/html_srcset_parser.h b/third_party/blink/renderer/core/html/parser/html_srcset_parser.h
index c694b06..1270664 100644
--- a/third_party/blink/renderer/core/html/parser/html_srcset_parser.h
+++ b/third_party/blink/renderer/core/html/parser/html_srcset_parser.h
@@ -33,7 +33,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_PARSER_HTML_SRCSET_PARSER_H_
 
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_view.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/core/html/parser/input_stream_preprocessor.h b/third_party/blink/renderer/core/html/parser/input_stream_preprocessor.h
index 43a147f..29f5f9e 100644
--- a/third_party/blink/renderer/core/html/parser/input_stream_preprocessor.h
+++ b/third_party/blink/renderer/core/html/parser/input_stream_preprocessor.h
@@ -30,7 +30,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/text/segmented_string.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/parser/preload_request.h b/third_party/blink/renderer/core/html/parser/preload_request.h
index 4894623..d5e88d4c 100644
--- a/third_party/blink/renderer/core/html/parser/preload_request.h
+++ b/third_party/blink/renderer/core/html/parser/preload_request.h
@@ -18,7 +18,7 @@
 #include "third_party/blink/renderer/platform/loader/fetch/integrity_metadata.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h"
 #include "third_party/blink/renderer/platform/weborigin/security_policy.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/text_position.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/html/parser/pump_session.h b/third_party/blink/renderer/core/html/parser/pump_session.h
index 9fc3ec0..1c12ef9 100644
--- a/third_party/blink/renderer/core/html/parser/pump_session.h
+++ b/third_party/blink/renderer/core/html/parser/pump_session.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_PARSER_PUMP_SESSION_H_
 
 #include "third_party/blink/renderer/core/html/parser/nesting_level_incrementer.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/parser/xss_auditor.h b/third_party/blink/renderer/core/html/parser/xss_auditor.h
index 17c831f7..022dbba 100644
--- a/third_party/blink/renderer/core/html/parser/xss_auditor.h
+++ b/third_party/blink/renderer/core/html/parser/xss_auditor.h
@@ -33,7 +33,7 @@
 #include "third_party/blink/renderer/platform/network/http_parsers.h"
 #include "third_party/blink/renderer/platform/text/suffix_tree.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/text_encoding.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/html/portal/portal_post_message_helper.h b/third_party/blink/renderer/core/html/portal/portal_post_message_helper.h
index 8a6a247..9eac28b 100644
--- a/third_party/blink/renderer/core/html/portal/portal_post_message_helper.h
+++ b/third_party/blink/renderer/core/html/portal/portal_post_message_helper.h
@@ -7,7 +7,7 @@
 
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/time_ranges.h b/third_party/blink/renderer/core/html/time_ranges.h
index 50ac7b5..cc1a5621c 100644
--- a/third_party/blink/renderer/core/html/time_ranges.h
+++ b/third_party/blink/renderer/core/html/time_ranges.h
@@ -30,7 +30,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 #include <algorithm>
diff --git a/third_party/blink/renderer/core/html/track/automatic_track_selection.h b/third_party/blink/renderer/core/html/track/automatic_track_selection.h
index f5381e4..5d02a62 100644
--- a/third_party/blink/renderer/core/html/track/automatic_track_selection.h
+++ b/third_party/blink/renderer/core/html/track/automatic_track_selection.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/html/track/text_track_kind_user_preference.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/track/vtt/buffered_line_reader.h b/third_party/blink/renderer/core/html/track/vtt/buffered_line_reader.h
index 37271cfe..bdbd338 100644
--- a/third_party/blink/renderer/core/html/track/vtt/buffered_line_reader.h
+++ b/third_party/blink/renderer/core/html/track/vtt/buffered_line_reader.h
@@ -34,7 +34,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/text/segmented_string.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/html/track/vtt/vtt_cue.h b/third_party/blink/renderer/core/html/track/vtt/vtt_cue.h
index f4eed44..77fa383f 100644
--- a/third_party/blink/renderer/core/html/track/vtt/vtt_cue.h
+++ b/third_party/blink/renderer/core/html/track/vtt/vtt_cue.h
@@ -32,7 +32,7 @@
 
 #include "third_party/blink/renderer/core/html/track/text_track_cue.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/track/vtt/vtt_scanner.h b/third_party/blink/renderer/core/html/track/vtt/vtt_scanner.h
index a848476..58f9250 100644
--- a/third_party/blink/renderer/core/html/track/vtt/vtt_scanner.h
+++ b/third_party/blink/renderer/core/html/track/vtt/vtt_scanner.h
@@ -32,7 +32,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/parsing_utilities.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/core/html/track/vtt/vtt_token.h b/third_party/blink/renderer/core/html/track/vtt/vtt_token.h
index 677128e..9c35983 100644
--- a/third_party/blink/renderer/core/html/track/vtt/vtt_token.h
+++ b/third_party/blink/renderer/core/html/track/vtt/vtt_token.h
@@ -31,7 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_HTML_TRACK_VTT_VTT_TOKEN_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_TRACK_VTT_VTT_TOKEN_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/html/track/vtt/vtt_tokenizer.h b/third_party/blink/renderer/core/html/track/vtt/vtt_tokenizer.h
index 9f98bf6..3a1f984 100644
--- a/third_party/blink/renderer/core/html/track/vtt/vtt_tokenizer.h
+++ b/third_party/blink/renderer/core/html/track/vtt/vtt_tokenizer.h
@@ -34,7 +34,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/html/parser/input_stream_preprocessor.h"
 #include "third_party/blink/renderer/core/html/track/vtt/vtt_token.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/imagebitmap/image_bitmap_source.h b/third_party/blink/renderer/core/imagebitmap/image_bitmap_source.h
index 4792b6c..289f087 100644
--- a/third_party/blink/renderer/core/imagebitmap/image_bitmap_source.h
+++ b/third_party/blink/renderer/core/imagebitmap/image_bitmap_source.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
 #include "third_party/blink/renderer/platform/geometry/int_rect.h"
 #include "third_party/blink/renderer/platform/geometry/int_size.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/input/context_menu_allowed_scope.h b/third_party/blink/renderer/core/input/context_menu_allowed_scope.h
index 721a780..218f7f0 100644
--- a/third_party/blink/renderer/core/input/context_menu_allowed_scope.h
+++ b/third_party/blink/renderer/core/input/context_menu_allowed_scope.h
@@ -7,7 +7,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/input/event_handler.h b/third_party/blink/renderer/core/input/event_handler.h
index 5701c46..5d04f0ed 100644
--- a/third_party/blink/renderer/core/input/event_handler.h
+++ b/third_party/blink/renderer/core/input/event_handler.h
@@ -50,7 +50,7 @@
 #include "third_party/blink/renderer/platform/cursor.h"
 #include "third_party/blink/renderer/platform/geometry/layout_point.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/hash_traits.h"
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 dd33d45..0ef0c05 100644
--- a/third_party/blink/renderer/core/input/event_handler_test.cc
+++ b/third_party/blink/renderer/core/input/event_handler_test.cc
@@ -244,10 +244,10 @@
           ->GetEditor()
           .IsSelectTrailingWhitespaceEnabled()) {
     EXPECT_EQ(Position(line, 4), Selection().GetSelectionInDOMTree().Extent());
-    EXPECT_EQ("One ", WebString(Selection().SelectedText()).Utf8());
+    EXPECT_EQ("One ", Selection().SelectedText().Utf8());
   } else {
     EXPECT_EQ(Position(line, 3), Selection().GetSelectionInDOMTree().Extent());
-    EXPECT_EQ("One", WebString(Selection().SelectedText()).Utf8());
+    EXPECT_EQ("One", Selection().SelectedText().Utf8());
   }
 
   TapEventBuilder triple_tap_event(FloatPoint(0, 0), 3);
@@ -256,7 +256,7 @@
   ASSERT_TRUE(Selection().GetSelectionInDOMTree().IsRange());
   EXPECT_EQ(Position(line, 0), Selection().GetSelectionInDOMTree().Base());
   EXPECT_EQ(Position(line, 13), Selection().GetSelectionInDOMTree().Extent());
-  EXPECT_EQ("One Two Three", WebString(Selection().SelectedText()).Utf8());
+  EXPECT_EQ("One Two Three", Selection().SelectedText().Utf8());
 }
 
 TEST_F(EventHandlerTest, multiClickSelectionFromTapDisabledIfNotEditable) {
diff --git a/third_party/blink/renderer/core/input/fallback_cursor_event_manager.h b/third_party/blink/renderer/core/input/fallback_cursor_event_manager.h
index f1a0178c..81a4e4c 100644
--- a/third_party/blink/renderer/core/input/fallback_cursor_event_manager.h
+++ b/third_party/blink/renderer/core/input/fallback_cursor_event_manager.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/heap/visitor.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/input/keyboard_event_manager.h b/third_party/blink/renderer/core/input/keyboard_event_manager.h
index 3f1b4c4..1c4373b 100644
--- a/third_party/blink/renderer/core/input/keyboard_event_manager.h
+++ b/third_party/blink/renderer/core/input/keyboard_event_manager.h
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/heap/visitor.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/input/mouse_event_manager.h b/third_party/blink/renderer/core/input/mouse_event_manager.h
index 6cfa6fb6..dd339b4 100644
--- a/third_party/blink/renderer/core/input/mouse_event_manager.h
+++ b/third_party/blink/renderer/core/input/mouse_event_manager.h
@@ -14,7 +14,7 @@
 #include "third_party/blink/renderer/core/page/drag_actions.h"
 #include "third_party/blink/renderer/core/page/event_with_hit_test_results.h"
 #include "third_party/blink/renderer/platform/timer.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/time.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/input/pointer_event_manager.h b/third_party/blink/renderer/core/input/pointer_event_manager.h
index b3dbf065..55cbda4f 100644
--- a/third_party/blink/renderer/core/input/pointer_event_manager.h
+++ b/third_party/blink/renderer/core/input/pointer_event_manager.h
@@ -14,7 +14,7 @@
 #include "third_party/blink/renderer/core/input/boundary_event_dispatcher.h"
 #include "third_party/blink/renderer/core/input/touch_event_manager.h"
 #include "third_party/blink/renderer/core/page/touch_adjustment.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/input/scroll_manager.h b/third_party/blink/renderer/core/input/scroll_manager.h
index 8c83aeb..028bb3b3 100644
--- a/third_party/blink/renderer/core/input/scroll_manager.h
+++ b/third_party/blink/renderer/core/input/scroll_manager.h
@@ -19,7 +19,7 @@
 #include "third_party/blink/renderer/platform/graphics/compositor_element_id.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/heap/visitor.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/input/touch_event_manager.h b/third_party/blink/renderer/core/input/touch_event_manager.h
index dd7294c..e168bcb6 100644
--- a/third_party/blink/renderer/core/input/touch_event_manager.h
+++ b/third_party/blink/renderer/core/input/touch_event_manager.h
@@ -14,7 +14,7 @@
 #include "third_party/blink/renderer/core/events/pointer_event_factory.h"
 #include "third_party/blink/renderer/core/input/event_handling_util.h"
 #include "third_party/blink/renderer/platform/graphics/touch_action.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/inspector/identifiers_factory.h b/third_party/blink/renderer/core/inspector/identifiers_factory.h
index 53b70f736..5325b85 100644
--- a/third_party/blink/renderer/core/inspector/identifiers_factory.h
+++ b/third_party/blink/renderer/core/inspector/identifiers_factory.h
@@ -28,7 +28,7 @@
 
 #include "base/unguessable_token.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/inspector/inspector_css_agent.cc b/third_party/blink/renderer/core/inspector/inspector_css_agent.cc
index f59dd57e..15123d6d 100644
--- a/third_party/blink/renderer/core/inspector/inspector_css_agent.cc
+++ b/third_party/blink/renderer/core/inspector/inspector_css_agent.cc
@@ -94,7 +94,7 @@
 #include "third_party/blink/renderer/platform/fonts/shaping/shape_result_view.h"
 #include "third_party/blink/renderer/platform/heap/heap.h"
 #include "third_party/blink/renderer/platform/text/text_run.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_concatenate.h"
 #include "third_party/blink/renderer/platform/wtf/time.h"
 
diff --git a/third_party/blink/renderer/core/inspector/inspector_style_sheet.cc b/third_party/blink/renderer/core/inspector/inspector_style_sheet.cc
index 3422e21e..22a51a8f 100644
--- a/third_party/blink/renderer/core/inspector/inspector_style_sheet.cc
+++ b/third_party/blink/renderer/core/inspector/inspector_style_sheet.cc
@@ -55,7 +55,7 @@
 #include "third_party/blink/renderer/core/svg/svg_style_element.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/heap/heap.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
 #include "third_party/blink/renderer/platform/wtf/text/text_position.h"
 
diff --git a/third_party/blink/renderer/core/inspector/inspector_task_runner.h b/third_party/blink/renderer/core/inspector/inspector_task_runner.h
index 7dd6706..e5d164a 100644
--- a/third_party/blink/renderer/core/inspector/inspector_task_runner.h
+++ b/third_party/blink/renderer/core/inspector/inspector_task_runner.h
@@ -9,7 +9,7 @@
 #include "base/single_thread_task_runner.h"
 #include "base/thread_annotations.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/deque.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
diff --git a/third_party/blink/renderer/core/inspector/v8_inspector_string.h b/third_party/blink/renderer/core/inspector/v8_inspector_string.h
index cd07f3b..7490a45 100644
--- a/third_party/blink/renderer/core/inspector/v8_inspector_string.h
+++ b/third_party/blink/renderer/core/inspector/v8_inspector_string.h
@@ -10,7 +10,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/shared_buffer.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/decimal.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
diff --git a/third_party/blink/renderer/core/inspector/worker_inspector_controller.h b/third_party/blink/renderer/core/inspector/worker_inspector_controller.h
index b9e5efc..4014ad5 100644
--- a/third_party/blink/renderer/core/inspector/worker_inspector_controller.h
+++ b/third_party/blink/renderer/core/inspector/worker_inspector_controller.h
@@ -41,7 +41,7 @@
 #include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h"
 #include "third_party/blink/renderer/platform/scheduler/public/thread.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/invisible_dom/invisible_dom.h b/third_party/blink/renderer/core/invisible_dom/invisible_dom.h
index 33e87e4..ece89ccd 100644
--- a/third_party/blink/renderer/core/invisible_dom/invisible_dom.h
+++ b/third_party/blink/renderer/core/invisible_dom/invisible_dom.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/editing/ephemeral_range.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/api/line_layout_api_shim.h b/third_party/blink/renderer/core/layout/api/line_layout_api_shim.h
index 1453c77..b06d6a364 100644
--- a/third_party/blink/renderer/core/layout/api/line_layout_api_shim.h
+++ b/third_party/blink/renderer/core/layout/api/line_layout_api_shim.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_API_LINE_LAYOUT_API_SHIM_H_
 
 #include "third_party/blink/renderer/core/layout/api/line_layout_item.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/api/line_layout_item.h b/third_party/blink/renderer/core/layout/api/line_layout_item.h
index 9aa5bffa..f3c8d5a 100644
--- a/third_party/blink/renderer/core/layout/api/line_layout_item.h
+++ b/third_party/blink/renderer/core/layout/api/line_layout_item.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/core/paint/object_paint_invalidator.h"
 
 #include "third_party/blink/renderer/platform/geometry/layout_unit.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_table_deleted_value_type.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/collapsed_border_value.h b/third_party/blink/renderer/core/layout/collapsed_border_value.h
index 6eefa76..36e20d7b0a 100644
--- a/third_party/blink/renderer/core/layout/collapsed_border_value.h
+++ b/third_party/blink/renderer/core/layout/collapsed_border_value.h
@@ -30,7 +30,7 @@
 #include "third_party/blink/renderer/core/style/computed_style.h"
 #include "third_party/blink/renderer/platform/geometry/layout_rect.h"
 #include "third_party/blink/renderer/platform/graphics/color.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/column_balancer.h b/third_party/blink/renderer/core/layout/column_balancer.h
index f77cb7a..f0c3827 100644
--- a/third_party/blink/renderer/core/layout/column_balancer.h
+++ b/third_party/blink/renderer/core/layout/column_balancer.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_COLUMN_BALANCER_H_
 
 #include "third_party/blink/renderer/core/layout/layout_multi_column_set.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/counter_node.h b/third_party/blink/renderer/core/layout/counter_node.h
index 8ef81400..5388c8bf 100644
--- a/third_party/blink/renderer/core/layout/counter_node.h
+++ b/third_party/blink/renderer/core/layout/counter_node.h
@@ -22,7 +22,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_COUNTER_NODE_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_COUNTER_NODE_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 
diff --git a/third_party/blink/renderer/core/layout/depth_ordered_layout_object_list.h b/third_party/blink/renderer/core/layout/depth_ordered_layout_object_list.h
index 956df4b..3b116f3d 100644
--- a/third_party/blink/renderer/core/layout/depth_ordered_layout_object_list.h
+++ b/third_party/blink/renderer/core/layout/depth_ordered_layout_object_list.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_DEPTH_ORDERED_LAYOUT_OBJECT_LIST_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_DEPTH_ORDERED_LAYOUT_OBJECT_LIST_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/layout/flexible_box_algorithm.h b/third_party/blink/renderer/core/layout/flexible_box_algorithm.h
index ad42166..1a2417f 100644
--- a/third_party/blink/renderer/core/layout/flexible_box_algorithm.h
+++ b/third_party/blink/renderer/core/layout/flexible_box_algorithm.h
@@ -40,7 +40,7 @@
 #include "third_party/blink/renderer/core/style/computed_style.h"
 #include "third_party/blink/renderer/platform/geometry/layout_point.h"
 #include "third_party/blink/renderer/platform/geometry/layout_unit.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/fragmentainer_iterator.h b/third_party/blink/renderer/core/layout/fragmentainer_iterator.h
index 0a966fd..e95e88104 100644
--- a/third_party/blink/renderer/core/layout/fragmentainer_iterator.h
+++ b/third_party/blink/renderer/core/layout/fragmentainer_iterator.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/layout/multi_column_fragmentainer_group.h"
 #include "third_party/blink/renderer/platform/geometry/layout_rect.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/geometry/transform_state.h b/third_party/blink/renderer/core/layout/geometry/transform_state.h
index 400f05f..9866efd 100644
--- a/third_party/blink/renderer/core/layout/geometry/transform_state.h
+++ b/third_party/blink/renderer/core/layout/geometry/transform_state.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/renderer/platform/geometry/layout_size.h"
 #include "third_party/blink/renderer/platform/transforms/affine_transform.h"
 #include "third_party/blink/renderer/platform/transforms/transformation_matrix.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/grid.h b/third_party/blink/renderer/core/layout/grid.h
index 3f3340a..528bed9 100644
--- a/third_party/blink/renderer/core/layout/grid.h
+++ b/third_party/blink/renderer/core/layout/grid.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/layout/order_iterator.h"
 #include "third_party/blink/renderer/core/style/grid_area.h"
 #include "third_party/blink/renderer/core/style/grid_positions_resolver.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/doubly_linked_list.h"
 #include "third_party/blink/renderer/platform/wtf/linked_hash_set.h"
diff --git a/third_party/blink/renderer/core/layout/grid_baseline_alignment.h b/third_party/blink/renderer/core/layout/grid_baseline_alignment.h
index 93208349..64a97f6c 100644
--- a/third_party/blink/renderer/core/layout/grid_baseline_alignment.h
+++ b/third_party/blink/renderer/core/layout/grid_baseline_alignment.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/layout/grid_layout_utils.h"
 #include "third_party/blink/renderer/core/layout/layout_box.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/grid_layout_utils.h b/third_party/blink/renderer/core/layout/grid_layout_utils.h
index 987f834..0321ef9 100644
--- a/third_party/blink/renderer/core/layout/grid_layout_utils.h
+++ b/third_party/blink/renderer/core/layout/grid_layout_utils.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_GRID_LAYOUT_UTILS_H_
 
 #include "third_party/blink/renderer/core/layout/layout_box.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/grid_track_sizing_algorithm.h b/third_party/blink/renderer/core/layout/grid_track_sizing_algorithm.h
index c298683..1f81a76 100644
--- a/third_party/blink/renderer/core/layout/grid_track_sizing_algorithm.h
+++ b/third_party/blink/renderer/core/layout/grid_track_sizing_algorithm.h
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/core/style/grid_positions_resolver.h"
 #include "third_party/blink/renderer/core/style/grid_track_size.h"
 #include "third_party/blink/renderer/platform/geometry/layout_unit.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/hit_test_location.h b/third_party/blink/renderer/core/layout/hit_test_location.h
index 3b71809..7cdb1ce6 100644
--- a/third_party/blink/renderer/core/layout/hit_test_location.h
+++ b/third_party/blink/renderer/core/layout/hit_test_location.h
@@ -27,7 +27,7 @@
 #include "third_party/blink/renderer/core/layout/geometry/physical_rect.h"
 #include "third_party/blink/renderer/platform/geometry/float_quad.h"
 #include "third_party/blink/renderer/platform/geometry/float_rect.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/hit_test_request.h b/third_party/blink/renderer/core/layout/hit_test_request.h
index 4cc67b3..2892c03 100644
--- a/third_party/blink/renderer/core/layout/hit_test_request.h
+++ b/third_party/blink/renderer/core/layout/hit_test_request.h
@@ -23,7 +23,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_HIT_TEST_REQUEST_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_HIT_TEST_REQUEST_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/hit_testing_transform_state.h b/third_party/blink/renderer/core/layout/hit_testing_transform_state.h
index 0bb6efa..b45cf3c 100644
--- a/third_party/blink/renderer/core/layout/hit_testing_transform_state.h
+++ b/third_party/blink/renderer/core/layout/hit_testing_transform_state.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/renderer/platform/geometry/float_quad.h"
 #include "third_party/blink/renderer/platform/transforms/affine_transform.h"
 #include "third_party/blink/renderer/platform/transforms/transformation_matrix.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/intrinsic_sizing_info.h b/third_party/blink/renderer/core/layout/intrinsic_sizing_info.h
index 3fbdecc3..3c75bfa 100644
--- a/third_party/blink/renderer/core/layout/intrinsic_sizing_info.h
+++ b/third_party/blink/renderer/core/layout/intrinsic_sizing_info.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_INTRINSIC_SIZING_INFO_H_
 
 #include "third_party/blink/renderer/platform/geometry/float_size.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/jank_region.h b/third_party/blink/renderer/core/layout/jank_region.h
index 804861c..3b948744 100644
--- a/third_party/blink/renderer/core/layout/jank_region.h
+++ b/third_party/blink/renderer/core/layout/jank_region.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/geometry/int_rect.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/jank_tracker.h b/third_party/blink/renderer/core/layout/jank_tracker.h
index 92c9885..385698b 100644
--- a/third_party/blink/renderer/core/layout/jank_tracker.h
+++ b/third_party/blink/renderer/core/layout/jank_tracker.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/scroll/scroll_types.h"
 #include "third_party/blink/renderer/platform/geometry/region.h"
 #include "third_party/blink/renderer/platform/timer.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/layout_analyzer.h b/third_party/blink/renderer/core/layout/layout_analyzer.h
index b417884..ebacd99 100644
--- a/third_party/blink/renderer/core/layout/layout_analyzer.h
+++ b/third_party/blink/renderer/core/layout/layout_analyzer.h
@@ -8,7 +8,7 @@
 #include <memory>
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/geometry/layout_unit.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/layout_flow_thread.h b/third_party/blink/renderer/core/layout/layout_flow_thread.h
index a574018..51130666c 100644
--- a/third_party/blink/renderer/core/layout/layout_flow_thread.h
+++ b/third_party/blink/renderer/core/layout/layout_flow_thread.h
@@ -32,7 +32,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/layout_block_flow.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/linked_hash_set.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/layout_geometry_map.h b/third_party/blink/renderer/core/layout/layout_geometry_map.h
index bddf09f1..0c6ac1f 100644
--- a/third_party/blink/renderer/core/layout/layout_geometry_map.h
+++ b/third_party/blink/renderer/core/layout/layout_geometry_map.h
@@ -32,7 +32,7 @@
 #include "third_party/blink/renderer/core/layout/layout_geometry_map_step.h"
 #include "third_party/blink/renderer/core/layout/map_coordinates_flags.h"
 #include "third_party/blink/renderer/platform/geometry/float_quad.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/layout_geometry_map_step.h b/third_party/blink/renderer/core/layout/layout_geometry_map_step.h
index 4d45389..d9d8d109 100644
--- a/third_party/blink/renderer/core/layout/layout_geometry_map_step.h
+++ b/third_party/blink/renderer/core/layout/layout_geometry_map_step.h
@@ -30,7 +30,7 @@
 #include <memory>
 #include "third_party/blink/renderer/platform/geometry/layout_size.h"
 #include "third_party/blink/renderer/platform/transforms/transformation_matrix.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/layout_object.cc b/third_party/blink/renderer/core/layout/layout_object.cc
index bf1e8f32..d3d6562 100644
--- a/third_party/blink/renderer/core/layout/layout_object.cc
+++ b/third_party/blink/renderer/core/layout/layout_object.cc
@@ -983,11 +983,14 @@
     if (object->NeedsCollectInlines())
       break;
     object->SetNeedsCollectInlines(true);
-    if (object->IsLayoutBlockFlow() ||
-        // Some LayoutReplaced have children (e.g., LayoutSVGRoot). Stop marking
-        // because their children belong to different context.
-        object->IsAtomicInlineLevel())
+
+    // Stop marking at the inline formatting context root. This is usually a
+    // |LayoutBlockFlow|, but some other classes can have children; e.g.,
+    // |LayoutButton| or |LayoutSVGRoot|. |LayoutInline| is the only class we
+    // collect recursively (see |CollectInlines|). Use the same condition here.
+    if (!object->IsLayoutInline())
       break;
+
     object = object->Parent();
   } while (object);
 }
diff --git a/third_party/blink/renderer/core/layout/layout_object.h b/third_party/blink/renderer/core/layout/layout_object.h
index 9595ab2..608aa39 100644
--- a/third_party/blink/renderer/core/layout/layout_object.h
+++ b/third_party/blink/renderer/core/layout/layout_object.h
@@ -61,7 +61,7 @@
 #include "third_party/blink/renderer/platform/graphics/paint_invalidation_reason.h"
 #include "third_party/blink/renderer/platform/graphics/subtree_paint_property_update_reason.h"
 #include "third_party/blink/renderer/platform/transforms/transformation_matrix.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/layout_object_factory.h b/third_party/blink/renderer/core/layout/layout_object_factory.h
index 79ca3dd..a9596a42 100644
--- a/third_party/blink/renderer/core/layout/layout_object_factory.h
+++ b/third_party/blink/renderer/core/layout/layout_object_factory.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_LAYOUT_OBJECT_FACTORY_H_
 
 #include "base/memory/scoped_refptr.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/layout_state.h b/third_party/blink/renderer/core/layout/layout_state.h
index 3288978..c8ddfb5 100644
--- a/third_party/blink/renderer/core/layout/layout_state.h
+++ b/third_party/blink/renderer/core/layout/layout_state.h
@@ -28,7 +28,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/geometry/layout_rect.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/layout_theme.h b/third_party/blink/renderer/core/layout/layout_theme.h
index 7a20c4d8..bd2d5aa 100644
--- a/third_party/blink/renderer/core/layout/layout_theme.h
+++ b/third_party/blink/renderer/core/layout/layout_theme.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/platform/graphics/color.h"
 #include "third_party/blink/renderer/platform/graphics/color_scheme.h"
 #include "third_party/blink/renderer/platform/theme_types.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/time.h"
diff --git a/third_party/blink/renderer/core/layout/layout_theme_font_provider.h b/third_party/blink/renderer/core/layout/layout_theme_font_provider.h
index 94a5e3a..d76f890 100644
--- a/third_party/blink/renderer/core/layout/layout_theme_font_provider.h
+++ b/third_party/blink/renderer/core/layout/layout_theme_font_provider.h
@@ -29,7 +29,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/css_value_keywords.h"
 #include "third_party/blink/renderer/platform/fonts/font_selection_types.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/layout_tree_as_text.h b/third_party/blink/renderer/core/layout/layout_tree_as_text.h
index 9b46537..8a0b9514f 100644
--- a/third_party/blink/renderer/core/layout/layout_tree_as_text.h
+++ b/third_party/blink/renderer/core/layout/layout_tree_as_text.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_LAYOUT_TREE_AS_TEXT_H_
 
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/text_stream.h"
 
diff --git a/third_party/blink/renderer/core/layout/line/breaking_context_inline_headers.h b/third_party/blink/renderer/core/layout/line/breaking_context_inline_headers.h
index 36e97d4f4..982f459d 100644
--- a/third_party/blink/renderer/core/layout/line/breaking_context_inline_headers.h
+++ b/third_party/blink/renderer/core/layout/line/breaking_context_inline_headers.h
@@ -45,7 +45,7 @@
 #include "third_party/blink/renderer/platform/fonts/character_range.h"
 #include "third_party/blink/renderer/platform/text/hyphenation.h"
 #include "third_party/blink/renderer/platform/text/text_break_iterator.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/line/glyph_overflow.h b/third_party/blink/renderer/core/layout/line/glyph_overflow.h
index 7bd7558..c03a2cd 100644
--- a/third_party/blink/renderer/core/layout/line/glyph_overflow.h
+++ b/third_party/blink/renderer/core/layout/line/glyph_overflow.h
@@ -27,7 +27,7 @@
 
 #include <algorithm>
 #include "third_party/blink/renderer/platform/geometry/float_rect.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/line/inline_iterator.h b/third_party/blink/renderer/core/layout/line/inline_iterator.h
index 6a481c2..ef198a49 100644
--- a/third_party/blink/renderer/core/layout/line/inline_iterator.h
+++ b/third_party/blink/renderer/core/layout/line/inline_iterator.h
@@ -29,7 +29,7 @@
 #include "third_party/blink/renderer/core/layout/api/line_layout_text.h"
 #include "third_party/blink/renderer/core/layout/bidi_run.h"
 #include "third_party/blink/renderer/core/layout/layout_block_flow.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/line/layout_text_info.h b/third_party/blink/renderer/core/layout/line/layout_text_info.h
index 80979ce2..47b6782 100644
--- a/third_party/blink/renderer/core/layout/line/layout_text_info.h
+++ b/third_party/blink/renderer/core/layout/line/layout_text_info.h
@@ -25,7 +25,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_LINE_LAYOUT_TEXT_INFO_H_
 
 #include "third_party/blink/renderer/platform/text/text_break_iterator.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/line/line_box_list.h b/third_party/blink/renderer/core/layout/line/line_box_list.h
index 5d3e457a..de7fdd07 100644
--- a/third_party/blink/renderer/core/layout/line/line_box_list.h
+++ b/third_party/blink/renderer/core/layout/line/line_box_list.h
@@ -31,7 +31,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/api/hit_test_action.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/line/line_breaker.h b/third_party/blink/renderer/core/layout/line/line_breaker.h
index 3cdc60f..0fb96071 100644
--- a/third_party/blink/renderer/core/layout/line/line_breaker.h
+++ b/third_party/blink/renderer/core/layout/line/line_breaker.h
@@ -27,7 +27,7 @@
 #include "third_party/blink/renderer/core/layout/api/line_layout_block_flow.h"
 #include "third_party/blink/renderer/core/layout/line/inline_iterator.h"
 #include "third_party/blink/renderer/core/layout/line/line_info.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/line/line_info.h b/third_party/blink/renderer/core/layout/line/line_info.h
index 0f737c09..f8a8792 100644
--- a/third_party/blink/renderer/core/layout/line/line_info.h
+++ b/third_party/blink/renderer/core/layout/line/line_info.h
@@ -27,7 +27,7 @@
 
 #include "third_party/blink/renderer/core/layout/line/line_width.h"
 #include "third_party/blink/renderer/core/style/computed_style_constants.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/line/line_layout_state.h b/third_party/blink/renderer/core/layout/line/line_layout_state.h
index 1076bc61..d37d234 100644
--- a/third_party/blink/renderer/core/layout/line/line_layout_state.h
+++ b/third_party/blink/renderer/core/layout/line/line_layout_state.h
@@ -27,7 +27,7 @@
 
 #include "third_party/blink/renderer/core/layout/layout_block_flow.h"
 #include "third_party/blink/renderer/platform/geometry/layout_rect.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/line/line_width.h b/third_party/blink/renderer/core/layout/line/line_width.h
index 6ca5d07..83081ea 100644
--- a/third_party/blink/renderer/core/layout/line/line_width.h
+++ b/third_party/blink/renderer/core/layout/line/line_width.h
@@ -32,7 +32,7 @@
 
 #include "third_party/blink/renderer/core/layout/api/line_layout_block_flow.h"
 #include "third_party/blink/renderer/platform/geometry/layout_unit.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/line/trailing_objects.h b/third_party/blink/renderer/core/layout/line/trailing_objects.h
index 0da53a2..f929454 100644
--- a/third_party/blink/renderer/core/layout/line/trailing_objects.h
+++ b/third_party/blink/renderer/core/layout/line/trailing_objects.h
@@ -27,7 +27,7 @@
 
 #include "third_party/blink/renderer/core/layout/api/line_layout_item.h"
 #include "third_party/blink/renderer/core/layout/api/line_layout_text.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/line/word_measurement.h b/third_party/blink/renderer/core/layout/line/word_measurement.h
index b129d8f..3bb1f4b 100644
--- a/third_party/blink/renderer/core/layout/line/word_measurement.h
+++ b/third_party/blink/renderer/core/layout/line/word_measurement.h
@@ -26,7 +26,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_LINE_WORD_MEASUREMENT_H_
 
 #include "third_party/blink/renderer/platform/fonts/simple_font_data.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/multi_column_fragmentainer_group.h b/third_party/blink/renderer/core/layout/multi_column_fragmentainer_group.h
index f5f0483c..1c52891 100644
--- a/third_party/blink/renderer/core/layout/multi_column_fragmentainer_group.h
+++ b/third_party/blink/renderer/core/layout/multi_column_fragmentainer_group.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/layout_multi_column_flow_thread.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.h b/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.h
index 0d05cbc..39252729 100644
--- a/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.h
+++ b/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/core/layout/ng/geometry/ng_bfc_rect.h"
 #include "third_party/blink/renderer/core/style/computed_style_constants.h"
 #include "third_party/blink/renderer/platform/geometry/layout_unit.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/ng/exclusions/ng_line_layout_opportunity.h b/third_party/blink/renderer/core/layout/ng/exclusions/ng_line_layout_opportunity.h
index a54a2c4..3824623 100644
--- a/third_party/blink/renderer/core/layout/ng/exclusions/ng_line_layout_opportunity.h
+++ b/third_party/blink/renderer/core/layout/ng/exclusions/ng_line_layout_opportunity.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/geometry/layout_unit.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/ng/inline/empty_offset_mapping_builder.h b/third_party/blink/renderer/core/layout/ng/inline/empty_offset_mapping_builder.h
index b691848..89f01c7 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/empty_offset_mapping_builder.h
+++ b/third_party/blink/renderer/core/layout/ng/inline/empty_offset_mapping_builder.h
@@ -5,7 +5,7 @@
 #ifndef EmptyOffsetMappingBuilder_h
 #define EmptyOffsetMappingBuilder_h
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_baseline.h b/third_party/blink/renderer/core/layout/ng/inline/ng_baseline.h
index be83e72e..e527615c 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_baseline.h
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_baseline.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/fonts/font_baseline.h"
 #include "third_party/blink/renderer/platform/geometry/layout_unit.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_bidi_paragraph.h b/third_party/blink/renderer/core/layout/ng/inline/ng_bidi_paragraph.h
index 222bbc8..ee1c47fb 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_bidi_paragraph.h
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_bidi_paragraph.h
@@ -6,7 +6,7 @@
 #define NGBidiParagraph_h
 
 #include "third_party/blink/renderer/platform/text/text_direction.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_caret_position.h b/third_party/blink/renderer/core/layout/ng/inline/ng_caret_position.h
index 5da3eed..333934a 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_caret_position.h
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_caret_position.h
@@ -8,7 +8,7 @@
 #include "base/optional.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/editing/forward.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_fragment_traversal.h b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_fragment_traversal.h
index 5c063598..dedf84444 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_fragment_traversal.h
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_fragment_traversal.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_physical_fragment.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_item_result.h b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_item_result.h
index 505bf23..81c01d19 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_item_result.h
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_item_result.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/core/layout/ng/ng_positioned_float.h"
 #include "third_party/blink/renderer/platform/fonts/shaping/shape_result.h"
 #include "third_party/blink/renderer/platform/geometry/layout_unit.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_item_segment.h b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_item_segment.h
index b22da6d..f011dfa9 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_item_segment.h
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_item_segment.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/platform/fonts/shaping/run_segmenter.h"
 #include "third_party/blink/renderer/platform/fonts/shaping/shape_result.h"
 #include "third_party/blink/renderer/platform/text/text_direction.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 #include <unicode/ubidi.h>
 #include <unicode/uscript.h>
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_items_builder.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_items_builder.cc
index 4fb3a30..3459d43 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_items_builder.cc
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_items_builder.cc
@@ -1160,7 +1160,6 @@
 void NGInlineItemsBuilderTemplate<OffsetMappingBuilder>::ClearInlineFragment(
     LayoutObject* object) {
   object->SetIsInLayoutNGInlineFormattingContext(true);
-  object->SetFirstInlineFragment(nullptr);
 }
 
 template <typename OffsetMappingBuilder>
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_items_builder.h b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_items_builder.h
index b7c9530..78cf02d 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_items_builder.h
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_items_builder.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_item.h"
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_line_height_metrics.h"
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping_builder.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node_test.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node_test.cc
index cd49b3cc..36c0e3d 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node_test.cc
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node_test.cc
@@ -7,6 +7,7 @@
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/blink/renderer/core/dom/dom_token_list.h"
+#include "third_party/blink/renderer/core/dom/element_traversal.h"
 #include "third_party/blink/renderer/core/dom/text.h"
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_child_layout_context.h"
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm.h"
@@ -731,6 +732,25 @@
   EXPECT_FALSE(next->GetLayoutObject()->NeedsCollectInlines());
 }
 
+TEST_F(NGInlineNodeTest, NeedsCollectInlinesOnInsertToOutOfFlowButton) {
+  SetBodyInnerHTML(R"HTML(
+    <style>
+    #xflex { display: flex; }
+    </style>
+    <div id="container">
+      <button id="flex" style="position: absolute"></button>
+    </div>
+  )HTML");
+
+  Element* container = GetElementById("container");
+  Element* parent = ElementTraversal::FirstChild(*container);
+  Element* child = GetDocument().CreateRawElement(html_names::kDivTag);
+  parent->appendChild(child);
+  GetDocument().UpdateStyleAndLayoutTree();
+
+  EXPECT_FALSE(container->GetLayoutObject()->NeedsCollectInlines());
+}
+
 class NodeRemoveTest : public NGInlineNodeTest,
                        public testing::WithParamInterface<const char*> {};
 
@@ -803,6 +823,30 @@
   EXPECT_FALSE(target->NeedsCollectInlines());
 }
 
+TEST_F(NGInlineNodeTest, CollectInlinesShouldNotClearFirstInlineFragment) {
+  SetBodyInnerHTML(R"HTML(
+    <div id="container">
+      text
+    </div>
+  )HTML");
+
+  // Appending a child should set |NeedsCollectInlines|.
+  Element* container = GetElementById("container");
+  container->appendChild(GetDocument().createTextNode("add"));
+  auto* block_flow = To<LayoutBlockFlow>(container->GetLayoutObject());
+  GetDocument().UpdateStyleAndLayoutTree();
+  EXPECT_TRUE(block_flow->NeedsCollectInlines());
+
+  // |IsEmptyInline| should run |CollectInlines|.
+  NGInlineNode node(block_flow);
+  node.IsEmptyInline();
+  EXPECT_FALSE(block_flow->NeedsCollectInlines());
+
+  // Running |CollectInlines| should not clear |FirstInlineFragment|.
+  LayoutObject* first_child = container->firstChild()->GetLayoutObject();
+  EXPECT_NE(first_child->FirstInlineFragment(), nullptr);
+}
+
 TEST_F(NGInlineNodeTest, InvalidateAddSpan) {
   SetupHtml("t", "<div id=t>before</div>");
   EXPECT_FALSE(layout_block_flow_->NeedsCollectInlines());
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_line_box_fragment_builder.h b/third_party/blink/renderer/core/layout/ng/inline/ng_line_box_fragment_builder.h
index 133443a..efc330a 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_line_box_fragment_builder.h
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_line_box_fragment_builder.h
@@ -15,7 +15,7 @@
 #include "third_party/blink/renderer/core/layout/ng/ng_layout_result.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_physical_container_fragment.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_positioned_float.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker.h b/third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker.h
index 0ee10b8..33715a5f 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker.h
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker.h
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper.h"
 #include "third_party/blink/renderer/platform/fonts/shaping/shape_result_spacing.h"
 #include "third_party/blink/renderer/platform/text/text_break_iterator.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.h b/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.h
index bcdcc37..1a2ad8c 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.h
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/core/editing/forward.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping_builder.h b/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping_builder.h
index fe84b2f..d642a9f3 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping_builder.h
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping_builder.h
@@ -9,7 +9,7 @@
 #include "base/auto_reset.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping_test.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping_test.cc
index 9f7b8cd..29b7ec1 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping_test.cc
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping_test.cc
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/core/layout/ng/layout_ng_block_flow.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_layout_test.h"
 #include "third_party/blink/renderer/core/style/computed_style.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_text_fragment_builder.h b/third_party/blink/renderer/core/layout/ng/inline/ng_text_fragment_builder.h
index b219736b..13fcba2ef 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_text_fragment_builder.h
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_text_fragment_builder.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_physical_text_fragment.h"
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_text_end_effect.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_fragment_builder.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/ng/list/ng_unpositioned_list_marker.h b/third_party/blink/renderer/core/layout/ng/list/ng_unpositioned_list_marker.h
index 166b5b0..39f28fb 100644
--- a/third_party/blink/renderer/core/layout/ng/list/ng_unpositioned_list_marker.h
+++ b/third_party/blink/renderer/core/layout/ng/list/ng_unpositioned_list_marker.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/ng/geometry/ng_box_strut.h"
 #include "third_party/blink/renderer/platform/fonts/font_baseline.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/ng/ng_base_layout_algorithm_test.h b/third_party/blink/renderer/core/layout/ng/ng_base_layout_algorithm_test.h
index 8459fe2..702637e 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_base_layout_algorithm_test.h
+++ b/third_party/blink/renderer/core/layout/ng/ng_base_layout_algorithm_test.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/core/testing/core_unit_test_helper.h"
 #include "third_party/blink/renderer/platform/text/text_direction.h"
 #include "third_party/blink/renderer/platform/text/writing_mode.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/ng/ng_block_node.cc b/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
index 31b6213..4f39574b 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
+++ b/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
@@ -43,7 +43,7 @@
 #include "third_party/blink/renderer/core/paint/paint_layer_scrollable_area.h"
 #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
 #include "third_party/blink/renderer/platform/text/writing_mode.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/ng/ng_box_fragment_builder.h b/third_party/blink/renderer/core/layout/ng/ng_box_fragment_builder.h
index 29ffa670..a72b991 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_box_fragment_builder.h
+++ b/third_party/blink/renderer/core/layout/ng/ng_box_fragment_builder.h
@@ -14,7 +14,7 @@
 #include "third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_layout_result.h"
 #include "third_party/blink/renderer/core/style/computed_style_constants.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/ng/ng_break_token.h b/third_party/blink/renderer/core/layout/ng/ng_break_token.h
index 53c71636..24b26541 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_break_token.h
+++ b/third_party/blink/renderer/core/layout/ng/ng_break_token.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_layout_input_node.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/ng/ng_constraint_space_builder.h b/third_party/blink/renderer/core/layout/ng/ng_constraint_space_builder.h
index 09a7f0b..43e24f4 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_constraint_space_builder.h
+++ b/third_party/blink/renderer/core/layout/ng/ng_constraint_space_builder.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/core/layout/ng/ng_floats_utils.h"
 #include "third_party/blink/renderer/platform/text/text_direction.h"
 #include "third_party/blink/renderer/platform/text/writing_mode.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.h b/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.h
index 4d47bb85..9b84c4e 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.h
+++ b/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.h
@@ -20,7 +20,7 @@
 #include "third_party/blink/renderer/core/style/computed_style.h"
 #include "third_party/blink/renderer/platform/text/text_direction.h"
 #include "third_party/blink/renderer/platform/text/writing_mode.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/ng/ng_fragment_builder.h b/third_party/blink/renderer/core/layout/ng/ng_fragment_builder.h
index a43218b6..714610ff 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_fragment_builder.h
+++ b/third_party/blink/renderer/core/layout/ng/ng_fragment_builder.h
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/core/style/computed_style.h"
 #include "third_party/blink/renderer/platform/text/text_direction.h"
 #include "third_party/blink/renderer/platform/text/writing_mode.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/ng/ng_layout_algorithm.h b/third_party/blink/renderer/core/layout/ng/ng_layout_algorithm.h
index 6b603b9..972af29 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_layout_algorithm.h
+++ b/third_party/blink/renderer/core/layout/ng/ng_layout_algorithm.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/layout/min_max_size.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_block_node.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_constraint_space.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/ng/ng_outline_utils.h b/third_party/blink/renderer/core/layout/ng/ng_outline_utils.h
index 0822b838..09107f93 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_outline_utils.h
+++ b/third_party/blink/renderer/core/layout/ng/ng_outline_utils.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_OUTLINE_UTILS_H_
 
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/order_iterator.h b/third_party/blink/renderer/core/layout/order_iterator.h
index 5f79d126..989db7e 100644
--- a/third_party/blink/renderer/core/layout/order_iterator.h
+++ b/third_party/blink/renderer/core/layout/order_iterator.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_ORDER_ITERATOR_H_
 
 #include "base/macros.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 #include <set>
 
diff --git a/third_party/blink/renderer/core/layout/pointer_events_hit_rules.h b/third_party/blink/renderer/core/layout/pointer_events_hit_rules.h
index ff73512..e7429c5 100644
--- a/third_party/blink/renderer/core/layout/pointer_events_hit_rules.h
+++ b/third_party/blink/renderer/core/layout/pointer_events_hit_rules.h
@@ -22,7 +22,7 @@
 
 #include "third_party/blink/renderer/core/layout/hit_test_request.h"
 #include "third_party/blink/renderer/core/style/computed_style_constants.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/style_retain_scope.h b/third_party/blink/renderer/core/layout/style_retain_scope.h
index 6ff00c2c..cbb9357 100644
--- a/third_party/blink/renderer/core/layout/style_retain_scope.h
+++ b/third_party/blink/renderer/core/layout/style_retain_scope.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_STYLE_RETAIN_SCOPE_H_
 
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/subtree_layout_scope.h b/third_party/blink/renderer/core/layout/subtree_layout_scope.h
index d5f506c..ae5b4c9e 100644
--- a/third_party/blink/renderer/core/layout/subtree_layout_scope.h
+++ b/third_party/blink/renderer/core/layout/subtree_layout_scope.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_SUBTREE_LAYOUT_SCOPE_H_
 
 #include "third_party/blink/renderer/core/inspector/inspector_trace_events.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 
 // This is the way to mark a subtree as needing layout during layout,
diff --git a/third_party/blink/renderer/core/layout/svg/layout_svg_resource_paint_server.h b/third_party/blink/renderer/core/layout/svg/layout_svg_resource_paint_server.h
index e0a7f6d..fad76f4 100644
--- a/third_party/blink/renderer/core/layout/svg/layout_svg_resource_paint_server.h
+++ b/third_party/blink/renderer/core/layout/svg/layout_svg_resource_paint_server.h
@@ -25,7 +25,7 @@
 #include "third_party/blink/renderer/platform/graphics/gradient.h"
 #include "third_party/blink/renderer/platform/graphics/pattern.h"
 #include "third_party/blink/renderer/platform/transforms/affine_transform.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/svg/svg_character_data.h b/third_party/blink/renderer/core/layout/svg/svg_character_data.h
index 51d8992..bdc5b2d 100644
--- a/third_party/blink/renderer/core/layout/svg/svg_character_data.h
+++ b/third_party/blink/renderer/core/layout/svg/svg_character_data.h
@@ -20,7 +20,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_SVG_SVG_CHARACTER_DATA_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_SVG_SVG_CHARACTER_DATA_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/math_extras.h"
 
diff --git a/third_party/blink/renderer/core/layout/svg/svg_layout_support.h b/third_party/blink/renderer/core/layout/svg/svg_layout_support.h
index 3a7921d..249f9fa 100644
--- a/third_party/blink/renderer/core/layout/svg/svg_layout_support.h
+++ b/third_party/blink/renderer/core/layout/svg/svg_layout_support.h
@@ -28,7 +28,7 @@
 #include "third_party/blink/renderer/core/style/svg_computed_style_defs.h"
 #include "third_party/blink/renderer/platform/graphics/dash_array.h"
 #include "third_party/blink/renderer/platform/transforms/affine_transform.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/svg/svg_marker_data.h b/third_party/blink/renderer/core/layout/svg/svg_marker_data.h
index 3382236..26d5061 100644
--- a/third_party/blink/renderer/core/layout/svg/svg_marker_data.h
+++ b/third_party/blink/renderer/core/layout/svg/svg_marker_data.h
@@ -21,7 +21,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_SVG_SVG_MARKER_DATA_H_
 
 #include "third_party/blink/renderer/platform/graphics/path.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/math_extras.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/svg/svg_resources.h b/third_party/blink/renderer/core/layout/svg/svg_resources.h
index 9c6e12a9..5a158e2c 100644
--- a/third_party/blink/renderer/core/layout/svg/svg_resources.h
+++ b/third_party/blink/renderer/core/layout/svg/svg_resources.h
@@ -26,7 +26,7 @@
 #include "base/memory/ptr_util.h"
 #include "third_party/blink/renderer/core/layout/svg/layout_svg_resource_container.h"
 #include "third_party/blink/renderer/core/svg/svg_resource_client.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/svg/svg_resources_cache.h b/third_party/blink/renderer/core/layout/svg/svg_resources_cache.h
index 42b85c7e..c44ec39 100644
--- a/third_party/blink/renderer/core/layout/svg/svg_resources_cache.h
+++ b/third_party/blink/renderer/core/layout/svg/svg_resources_cache.h
@@ -23,7 +23,7 @@
 #include <memory>
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/style/style_difference.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/svg/svg_resources_cycle_solver.h b/third_party/blink/renderer/core/layout/svg/svg_resources_cycle_solver.h
index d220b7f..bf44ebdd 100644
--- a/third_party/blink/renderer/core/layout/svg/svg_resources_cycle_solver.h
+++ b/third_party/blink/renderer/core/layout/svg/svg_resources_cycle_solver.h
@@ -21,7 +21,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_SVG_SVG_RESOURCES_CYCLE_SOLVER_H_
 
 #include "base/macros.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/svg/svg_text_chunk_builder.h b/third_party/blink/renderer/core/layout/svg/svg_text_chunk_builder.h
index e071c61..4e8da89 100644
--- a/third_party/blink/renderer/core/layout/svg/svg_text_chunk_builder.h
+++ b/third_party/blink/renderer/core/layout/svg/svg_text_chunk_builder.h
@@ -21,7 +21,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_SVG_SVG_TEXT_CHUNK_BUILDER_H_
 
 #include "base/macros.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/svg/svg_text_fragment.h b/third_party/blink/renderer/core/layout/svg/svg_text_fragment.h
index 99e6397..0887fb7 100644
--- a/third_party/blink/renderer/core/layout/svg/svg_text_fragment.h
+++ b/third_party/blink/renderer/core/layout/svg/svg_text_fragment.h
@@ -22,7 +22,7 @@
 
 #include "third_party/blink/renderer/core/layout/line/glyph_overflow.h"
 #include "third_party/blink/renderer/platform/transforms/affine_transform.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/svg/svg_text_layout_attributes_builder.h b/third_party/blink/renderer/core/layout/svg/svg_text_layout_attributes_builder.h
index 3b879096..37d9ed6 100644
--- a/third_party/blink/renderer/core/layout/svg/svg_text_layout_attributes_builder.h
+++ b/third_party/blink/renderer/core/layout/svg/svg_text_layout_attributes_builder.h
@@ -23,7 +23,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/layout/svg/svg_character_data.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/svg/svg_text_layout_engine.h b/third_party/blink/renderer/core/layout/svg/svg_text_layout_engine.h
index 4b5d1e9..56dbf5a 100644
--- a/third_party/blink/renderer/core/layout/svg/svg_text_layout_engine.h
+++ b/third_party/blink/renderer/core/layout/svg/svg_text_layout_engine.h
@@ -25,7 +25,7 @@
 #include "third_party/blink/renderer/core/layout/api/line_layout_svg_inline_text.h"
 #include "third_party/blink/renderer/core/layout/svg/layout_svg_inline_text.h"
 #include "third_party/blink/renderer/core/layout/svg/svg_text_fragment.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/svg/svg_text_layout_engine_baseline.h b/third_party/blink/renderer/core/layout/svg/svg_text_layout_engine_baseline.h
index 68994d7..718b6f0f 100644
--- a/third_party/blink/renderer/core/layout/svg/svg_text_layout_engine_baseline.h
+++ b/third_party/blink/renderer/core/layout/svg/svg_text_layout_engine_baseline.h
@@ -23,7 +23,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/layout/api/line_layout_item.h"
 #include "third_party/blink/renderer/core/style/svg_computed_style_defs.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/svg/svg_text_layout_engine_spacing.h b/third_party/blink/renderer/core/layout/svg/svg_text_layout_engine_spacing.h
index d628d781..ef87631 100644
--- a/third_party/blink/renderer/core/layout/svg/svg_text_layout_engine_spacing.h
+++ b/third_party/blink/renderer/core/layout/svg/svg_text_layout_engine_spacing.h
@@ -21,7 +21,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_SVG_SVG_TEXT_LAYOUT_ENGINE_SPACING_H_
 
 #include "base/macros.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/svg/svg_text_metrics.h b/third_party/blink/renderer/core/layout/svg/svg_text_metrics.h
index aa6e87b..6bc1438 100644
--- a/third_party/blink/renderer/core/layout/svg/svg_text_metrics.h
+++ b/third_party/blink/renderer/core/layout/svg/svg_text_metrics.h
@@ -20,7 +20,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_SVG_SVG_TEXT_METRICS_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_SVG_SVG_TEXT_METRICS_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/svg/svg_text_query.h b/third_party/blink/renderer/core/layout/svg/svg_text_query.h
index b806fefd..e5fab8c 100644
--- a/third_party/blink/renderer/core/layout/svg/svg_text_query.h
+++ b/third_party/blink/renderer/core/layout/svg/svg_text_query.h
@@ -22,7 +22,7 @@
 
 #include "third_party/blink/renderer/platform/geometry/float_point.h"
 #include "third_party/blink/renderer/platform/geometry/float_rect.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/table_grid_cell.h b/third_party/blink/renderer/core/layout/table_grid_cell.h
index 5d0d076..13e88e1 100644
--- a/third_party/blink/renderer/core/layout/table_grid_cell.h
+++ b/third_party/blink/renderer/core/layout/table_grid_cell.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_TABLE_GRID_CELL_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_TABLE_GRID_CELL_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/layout/table_layout_algorithm.h b/third_party/blink/renderer/core/layout/table_layout_algorithm.h
index 6679dbf..467076e 100644
--- a/third_party/blink/renderer/core/layout/table_layout_algorithm.h
+++ b/third_party/blink/renderer/core/layout/table_layout_algorithm.h
@@ -23,7 +23,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/geometry/layout_unit.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/layout/vertical_position_cache.h b/third_party/blink/renderer/core/layout/vertical_position_cache.h
index bd7d9c7..6cf00a1 100644
--- a/third_party/blink/renderer/core/layout/vertical_position_cache.h
+++ b/third_party/blink/renderer/core/layout/vertical_position_cache.h
@@ -29,7 +29,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/layout/api/line_layout_item.h"
 #include "third_party/blink/renderer/platform/fonts/font_baseline.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/loader/appcache/application_cache_host.h b/third_party/blink/renderer/core/loader/appcache/application_cache_host.h
index 32e8bef..98845bf 100644
--- a/third_party/blink/renderer/core/loader/appcache/application_cache_host.h
+++ b/third_party/blink/renderer/core/loader/appcache/application_cache_host.h
@@ -40,7 +40,7 @@
 #include "third_party/blink/renderer/core/loader/appcache/application_cache_host_client.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/loader/form_submission.h b/third_party/blink/renderer/core/loader/form_submission.h
index fa4405e..519bdea 100644
--- a/third_party/blink/renderer/core/loader/form_submission.h
+++ b/third_party/blink/renderer/core/loader/form_submission.h
@@ -38,7 +38,7 @@
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/weborigin/referrer.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/loader/frame_loader_state_machine.h b/third_party/blink/renderer/core/loader/frame_loader_state_machine.h
index 30913b0..4e73e2d8 100644
--- a/third_party/blink/renderer/core/loader/frame_loader_state_machine.h
+++ b/third_party/blink/renderer/core/loader/frame_loader_state_machine.h
@@ -32,7 +32,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/loader/http_equiv.h b/third_party/blink/renderer/core/loader/http_equiv.h
index f590063..5074adc 100644
--- a/third_party/blink/renderer/core/loader/http_equiv.h
+++ b/third_party/blink/renderer/core/loader/http_equiv.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LOADER_HTTP_EQUIV_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LOADER_HTTP_EQUIV_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/loader/private/frame_client_hints_preferences_context.h b/third_party/blink/renderer/core/loader/private/frame_client_hints_preferences_context.h
index cb24274..ebbebd5 100644
--- a/third_party/blink/renderer/core/loader/private/frame_client_hints_preferences_context.h
+++ b/third_party/blink/renderer/core/loader/private/frame_client_hints_preferences_context.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/frame/local_frame.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
 #include "third_party/blink/renderer/platform/loader/fetch/client_hints_preferences.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/loader/progress_tracker.h b/third_party/blink/renderer/core/loader/progress_tracker.h
index 0e4ba58f..94be6b94 100644
--- a/third_party/blink/renderer/core/loader/progress_tracker.h
+++ b/third_party/blink/renderer/core/loader/progress_tracker.h
@@ -33,7 +33,7 @@
 #include "third_party/blink/renderer/core/loader/frame_loader_types.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_load_priority.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 
diff --git a/third_party/blink/renderer/core/loader/subresource_integrity_helper.h b/third_party/blink/renderer/core/loader/subresource_integrity_helper.h
index ee19a32..f429069 100644
--- a/third_party/blink/renderer/core/loader/subresource_integrity_helper.h
+++ b/third_party/blink/renderer/core/loader/subresource_integrity_helper.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/inspector/console_message.h"
 #include "third_party/blink/renderer/platform/loader/subresource_integrity.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/loader/threadable_loader.h b/third_party/blink/renderer/core/loader/threadable_loader.h
index 44f36d58..0a6a954d 100644
--- a/third_party/blink/renderer/core/loader/threadable_loader.h
+++ b/third_party/blink/renderer/core/loader/threadable_loader.h
@@ -44,7 +44,7 @@
 #include "third_party/blink/renderer/platform/network/http_header_map.h"
 #include "third_party/blink/renderer/platform/timer.h"
 #include "third_party/blink/renderer/platform/weborigin/referrer.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/cross_thread_copier.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/core/messaging/blink_transferable_message.cc b/third_party/blink/renderer/core/messaging/blink_transferable_message.cc
index f2ad6c0..52a247ff 100644
--- a/third_party/blink/renderer/core/messaging/blink_transferable_message.cc
+++ b/third_party/blink/renderer/core/messaging/blink_transferable_message.cc
@@ -7,7 +7,6 @@
 #include <utility>
 #include "mojo/public/cpp/base/big_buffer.h"
 #include "third_party/blink/public/mojom/blob/blob.mojom-blink.h"
-#include "third_party/blink/public/platform/web_string.h"
 #include "third_party/blink/renderer/core/imagebitmap/image_bitmap.h"
 #include "third_party/blink/renderer/platform/blob/blob_data.h"
 
@@ -61,10 +60,10 @@
       message.encoded_message.size());
   for (auto& blob : message.blobs) {
     result.message->BlobDataHandles().Set(
-        WebString::FromUTF8(blob->uuid),
+        String::FromUTF8(blob->uuid),
         BlobDataHandle::Create(
-            WebString::FromUTF8(blob->uuid),
-            WebString::FromUTF8(blob->content_type), blob->size,
+            String::FromUTF8(blob->uuid), String::FromUTF8(blob->content_type),
+            blob->size,
             mojom::blink::BlobPtrInfo(blob->blob.PassHandle(),
                                       mojom::Blob::Version_)));
   }
@@ -129,8 +128,8 @@
   result.blobs.reserve(message.message->BlobDataHandles().size());
   for (const auto& blob : message.message->BlobDataHandles()) {
     result.blobs.push_back(mojom::SerializedBlob::New(
-        WebString(blob.value->Uuid()).Utf8(),
-        WebString(blob.value->GetType()).Utf8(), blob.value->size(),
+        blob.value->Uuid().Utf8(), blob.value->GetType().Utf8(),
+        blob.value->size(),
         mojom::BlobPtrInfo(
             blob.value->CloneBlobPtr().PassInterface().PassHandle(),
             mojom::Blob::Version_)));
diff --git a/third_party/blink/renderer/core/page/drag_image.h b/third_party/blink/renderer/core/page/drag_image.h
index b2fbcd0..5a8fd1bd 100644
--- a/third_party/blink/renderer/core/page/drag_image.h
+++ b/third_party/blink/renderer/core/page/drag_image.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/renderer/platform/graphics/image_orientation.h"
 #include "third_party/blink/renderer/platform/graphics/paint/display_item_client.h"
 #include "third_party/blink/renderer/platform/graphics/paint/paint_image.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/skia/include/core/SkBitmap.h"
 
diff --git a/third_party/blink/renderer/core/page/page_widget_delegate.h b/third_party/blink/renderer/core/page/page_widget_delegate.h
index d5effcc..d58f9a4 100644
--- a/third_party/blink/renderer/core/page/page_widget_delegate.h
+++ b/third_party/blink/renderer/core/page/page_widget_delegate.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/public/platform/web_coalesced_input_event.h"
 #include "third_party/blink/public/web/web_widget.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 class LocalFrame;
diff --git a/third_party/blink/renderer/core/page/plugin_script_forbidden_scope.h b/third_party/blink/renderer/core/page/plugin_script_forbidden_scope.h
index b7491a2..8ee2203 100644
--- a/third_party/blink/renderer/core/page/plugin_script_forbidden_scope.h
+++ b/third_party/blink/renderer/core/page/plugin_script_forbidden_scope.h
@@ -7,7 +7,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/page/scoped_page_pauser.h b/third_party/blink/renderer/core/page/scoped_page_pauser.h
index 21e6ada..5e34428f 100644
--- a/third_party/blink/renderer/core/page/scoped_page_pauser.h
+++ b/third_party/blink/renderer/core/page/scoped_page_pauser.h
@@ -23,7 +23,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/scheduler/public/thread_scheduler.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator_context.h b/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator_context.h
index 36c5074..df16b87 100644
--- a/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator_context.h
+++ b/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator_context.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/animation/compositor_animation_timeline.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace cc {
 class AnimationHost;
diff --git a/third_party/blink/renderer/core/page/scrolling/snap_coordinator.cc b/third_party/blink/renderer/core/page/scrolling/snap_coordinator.cc
index 89d6f8ef..984bd807 100644
--- a/third_party/blink/renderer/core/page/scrolling/snap_coordinator.cc
+++ b/third_party/blink/renderer/core/page/scrolling/snap_coordinator.cc
@@ -88,12 +88,6 @@
 
 void SnapCoordinator::SnapAreaDidChange(LayoutBox& snap_area,
                                         cc::ScrollSnapAlign scroll_snap_align) {
-  // The viewport defining element cannot be a snap area.
-  if (snap_area.GetNode() ==
-          snap_area.GetDocument().ViewportDefiningElement() ||
-      snap_area.IsLayoutView())
-    return;
-
   LayoutBox* old_container = snap_area.SnapContainer();
   if (scroll_snap_align.alignment_inline == cc::SnapAlignment::kNone &&
       scroll_snap_align.alignment_block == cc::SnapAlignment::kNone) {
diff --git a/third_party/blink/renderer/core/page/slot_scoped_traversal.h b/third_party/blink/renderer/core/page/slot_scoped_traversal.h
index 9b8728b..d9cc4d4 100644
--- a/third_party/blink/renderer/core/page/slot_scoped_traversal.h
+++ b/third_party/blink/renderer/core/page/slot_scoped_traversal.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAGE_SLOT_SCOPED_TRAVERSAL_H_
 
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/page/viewport_description.h b/third_party/blink/renderer/core/page/viewport_description.h
index b646fc1..6c5af02 100644
--- a/third_party/blink/renderer/core/page/viewport_description.h
+++ b/third_party/blink/renderer/core/page/viewport_description.h
@@ -35,7 +35,7 @@
 #include "third_party/blink/renderer/core/frame/page_scale_constraints.h"
 #include "third_party/blink/renderer/platform/geometry/float_size.h"
 #include "third_party/blink/renderer/platform/geometry/length.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/applied_decoration_painter.h b/third_party/blink/renderer/core/paint/applied_decoration_painter.h
index 9f4ad5173..f7d49cea 100644
--- a/third_party/blink/renderer/core/paint/applied_decoration_painter.h
+++ b/third_party/blink/renderer/core/paint/applied_decoration_painter.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/platform/geometry/float_rect.h"
 #include "third_party/blink/renderer/platform/geometry/layout_rect.h"
 #include "third_party/blink/renderer/platform/graphics/path.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/background_image_geometry.h b/third_party/blink/renderer/core/paint/background_image_geometry.h
index e4e7678b9..a5bc12b 100644
--- a/third_party/blink/renderer/core/paint/background_image_geometry.h
+++ b/third_party/blink/renderer/core/paint/background_image_geometry.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/platform/geometry/layout_rect.h"
 #include "third_party/blink/renderer/platform/geometry/layout_size.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_types.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/block_flow_paint_invalidator.h b/third_party/blink/renderer/core/paint/block_flow_paint_invalidator.h
index 86f7581d..777c22fa 100644
--- a/third_party/blink/renderer/core/paint/block_flow_paint_invalidator.h
+++ b/third_party/blink/renderer/core/paint/block_flow_paint_invalidator.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_BLOCK_FLOW_PAINT_INVALIDATOR_H_
 
 #include "third_party/blink/renderer/platform/graphics/paint_invalidation_reason.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/block_paint_invalidator.h b/third_party/blink/renderer/core/paint/block_paint_invalidator.h
index 7101dbdc..3cb6bae 100644
--- a/third_party/blink/renderer/core/paint/block_paint_invalidator.h
+++ b/third_party/blink/renderer/core/paint/block_paint_invalidator.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_BLOCK_PAINT_INVALIDATOR_H_
 
 #include "third_party/blink/renderer/platform/graphics/paint_invalidation_reason.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/block_painter.h b/third_party/blink/renderer/core/paint/block_painter.h
index a4a0776c..76b51d3 100644
--- a/third_party/blink/renderer/core/paint/block_painter.h
+++ b/third_party/blink/renderer/core/paint/block_painter.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/order_iterator.h"
 #include "third_party/blink/renderer/platform/geometry/layout_rect.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/box_model_object_painter.h b/third_party/blink/renderer/core/paint/box_model_object_painter.h
index 682ce2ee..eed39f2 100644
--- a/third_party/blink/renderer/core/paint/box_model_object_painter.h
+++ b/third_party/blink/renderer/core/paint/box_model_object_painter.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/layout/background_bleed_avoidance.h"
 #include "third_party/blink/renderer/core/paint/box_painter_base.h"
 #include "third_party/blink/renderer/platform/geometry/layout_size.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/box_paint_invalidator.h b/third_party/blink/renderer/core/paint/box_paint_invalidator.h
index 2954491..f1db827 100644
--- a/third_party/blink/renderer/core/paint/box_paint_invalidator.h
+++ b/third_party/blink/renderer/core/paint/box_paint_invalidator.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/graphics/paint_invalidation_reason.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/box_painter.h b/third_party/blink/renderer/core/paint/box_painter.h
index ccabfa3..cba9ef932 100644
--- a/third_party/blink/renderer/core/paint/box_painter.h
+++ b/third_party/blink/renderer/core/paint/box_painter.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/paint/rounded_inner_rect_clipper.h"
 #include "third_party/blink/renderer/platform/geometry/layout_size.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_types.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/box_painter_base.h b/third_party/blink/renderer/core/paint/box_painter_base.h
index ec244ad..b56d40b5 100644
--- a/third_party/blink/renderer/core/paint/box_painter_base.h
+++ b/third_party/blink/renderer/core/paint/box_painter_base.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/core/style/style_image.h"
 #include "third_party/blink/renderer/platform/geometry/layout_rect_outsets.h"
 #include "third_party/blink/renderer/platform/graphics/color.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/skia/include/core/SkBlendMode.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/paint/clip_rect.h b/third_party/blink/renderer/core/paint/clip_rect.h
index 74cc585..67ab7283 100644
--- a/third_party/blink/renderer/core/paint/clip_rect.h
+++ b/third_party/blink/renderer/core/paint/clip_rect.h
@@ -28,7 +28,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/geometry/physical_rect.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/collapsed_border_painter.h b/third_party/blink/renderer/core/paint/collapsed_border_painter.h
index 3fccd0c..2b117e207 100644
--- a/third_party/blink/renderer/core/paint/collapsed_border_painter.h
+++ b/third_party/blink/renderer/core/paint/collapsed_border_painter.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/layout/layout_table.h"
 #include "third_party/blink/renderer/core/layout/layout_table_cell.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.h b/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.h
index 77f0b9a..0b5fe83 100644
--- a/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.h
+++ b/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/renderer/platform/graphics/graphics_layer.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_layer_client.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_types.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/compositing/compositing_inputs_root.h b/third_party/blink/renderer/core/paint/compositing/compositing_inputs_root.h
index 76c9d645..fe5b27d 100644
--- a/third_party/blink/renderer/core/paint/compositing/compositing_inputs_root.h
+++ b/third_party/blink/renderer/core/paint/compositing/compositing_inputs_root.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_COMPOSITING_COMPOSITING_INPUTS_ROOT_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_COMPOSITING_COMPOSITING_INPUTS_ROOT_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/compositing/compositing_inputs_updater.h b/third_party/blink/renderer/core/paint/compositing/compositing_inputs_updater.h
index 3393699..e872b82 100644
--- a/third_party/blink/renderer/core/paint/compositing/compositing_inputs_updater.h
+++ b/third_party/blink/renderer/core/paint/compositing/compositing_inputs_updater.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_COMPOSITING_COMPOSITING_INPUTS_UPDATER_H_
 
 #include "third_party/blink/renderer/core/layout/layout_geometry_map.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/compositing/compositing_layer_assigner.h b/third_party/blink/renderer/core/paint/compositing/compositing_layer_assigner.h
index 3f68d8c..e4e34b37 100644
--- a/third_party/blink/renderer/core/paint/compositing/compositing_layer_assigner.h
+++ b/third_party/blink/renderer/core/paint/compositing/compositing_layer_assigner.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/renderer/platform/geometry/int_rect.h"
 #include "third_party/blink/renderer/platform/geometry/layout_point.h"
 #include "third_party/blink/renderer/platform/graphics/squashing_disallowed_reasons.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/compositing/compositing_layer_property_updater.h b/third_party/blink/renderer/core/paint/compositing/compositing_layer_property_updater.h
index f3e8d0d..710db41 100644
--- a/third_party/blink/renderer/core/paint/compositing/compositing_layer_property_updater.h
+++ b/third_party/blink/renderer/core/paint/compositing/compositing_layer_property_updater.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_COMPOSITING_COMPOSITING_LAYER_PROPERTY_UPDATER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_COMPOSITING_COMPOSITING_LAYER_PROPERTY_UPDATER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/compositing/compositing_reason_finder.h b/third_party/blink/renderer/core/paint/compositing/compositing_reason_finder.h
index 397600f..998c14957 100644
--- a/third_party/blink/renderer/core/paint/compositing/compositing_reason_finder.h
+++ b/third_party/blink/renderer/core/paint/compositing/compositing_reason_finder.h
@@ -8,7 +8,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/graphics/compositing_reasons.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/compositing/compositing_requirements_updater.h b/third_party/blink/renderer/core/paint/compositing/compositing_requirements_updater.h
index 81b6e85..dcb9464a 100644
--- a/third_party/blink/renderer/core/paint/compositing/compositing_requirements_updater.h
+++ b/third_party/blink/renderer/core/paint/compositing/compositing_requirements_updater.h
@@ -29,7 +29,7 @@
 
 #include "third_party/blink/renderer/platform/geometry/int_rect.h"
 #include "third_party/blink/renderer/platform/graphics/compositing_reasons.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/paint/compositing/graphics_layer_tree_builder.h b/third_party/blink/renderer/core/paint/compositing/graphics_layer_tree_builder.h
index 944933c0a..88e607b9 100644
--- a/third_party/blink/renderer/core/paint/compositing/graphics_layer_tree_builder.h
+++ b/third_party/blink/renderer/core/paint/compositing/graphics_layer_tree_builder.h
@@ -28,7 +28,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_COMPOSITING_GRAPHICS_LAYER_TREE_BUILDER_H_
 
 #include "third_party/blink/renderer/platform/graphics/graphics_layer.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/compositing/graphics_layer_updater.h b/third_party/blink/renderer/core/paint/compositing/graphics_layer_updater.h
index dd70196..4df558a 100644
--- a/third_party/blink/renderer/core/paint/compositing/graphics_layer_updater.h
+++ b/third_party/blink/renderer/core/paint/compositing/graphics_layer_updater.h
@@ -28,7 +28,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_COMPOSITING_GRAPHICS_LAYER_UPDATER_H_
 
 #include "third_party/blink/renderer/platform/graphics/graphics_layer.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/css_mask_painter.h b/third_party/blink/renderer/core/paint/css_mask_painter.h
index 469bc4d..cb2e0e82 100644
--- a/third_party/blink/renderer/core/paint/css_mask_painter.h
+++ b/third_party/blink/renderer/core/paint/css_mask_painter.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/geometry/int_rect.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_types.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/decoration_info.h b/third_party/blink/renderer/core/paint/decoration_info.h
index 6871a017..52d71f9f 100644
--- a/third_party/blink/renderer/core/paint/decoration_info.h
+++ b/third_party/blink/renderer/core/paint/decoration_info.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/platform/fonts/font_baseline.h"
 #include "third_party/blink/renderer/platform/geometry/float_point.h"
 #include "third_party/blink/renderer/platform/geometry/layout_unit.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/details_marker_painter.h b/third_party/blink/renderer/core/paint/details_marker_painter.h
index c60447c..e5b1064 100644
--- a/third_party/blink/renderer/core/paint/details_marker_painter.h
+++ b/third_party/blink/renderer/core/paint/details_marker_painter.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_DETAILS_MARKER_PAINTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_DETAILS_MARKER_PAINTER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/document_marker_painter.h b/third_party/blink/renderer/core/paint/document_marker_painter.h
index 4880a10..069343d 100644
--- a/third_party/blink/renderer/core/paint/document_marker_painter.h
+++ b/third_party/blink/renderer/core/paint/document_marker_painter.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_DOCUMENT_MARKER_PAINTER_H_
 
 #include "third_party/blink/renderer/core/editing/markers/document_marker.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/ellipsis_box_painter.h b/third_party/blink/renderer/core/paint/ellipsis_box_painter.h
index 9b23826f..e64293fc 100644
--- a/third_party/blink/renderer/core/paint/ellipsis_box_painter.h
+++ b/third_party/blink/renderer/core/paint/ellipsis_box_painter.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_ELLIPSIS_BOX_PAINTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_ELLIPSIS_BOX_PAINTER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/embedded_content_painter.h b/third_party/blink/renderer/core/paint/embedded_content_painter.h
index 643802e..9442e09 100644
--- a/third_party/blink/renderer/core/paint/embedded_content_painter.h
+++ b/third_party/blink/renderer/core/paint/embedded_content_painter.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_EMBEDDED_CONTENT_PAINTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_EMBEDDED_CONTENT_PAINTER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/embedded_object_painter.h b/third_party/blink/renderer/core/paint/embedded_object_painter.h
index 3a78245..0857bf6 100644
--- a/third_party/blink/renderer/core/paint/embedded_object_painter.h
+++ b/third_party/blink/renderer/core/paint/embedded_object_painter.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_EMBEDDED_OBJECT_PAINTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_EMBEDDED_OBJECT_PAINTER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/fieldset_painter.h b/third_party/blink/renderer/core/paint/fieldset_painter.h
index 7a810a13..7ea6c66 100644
--- a/third_party/blink/renderer/core/paint/fieldset_painter.h
+++ b/third_party/blink/renderer/core/paint/fieldset_painter.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_FIELDSET_PAINTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_FIELDSET_PAINTER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/file_upload_control_painter.h b/third_party/blink/renderer/core/paint/file_upload_control_painter.h
index 90378eba..2647b5e 100644
--- a/third_party/blink/renderer/core/paint/file_upload_control_painter.h
+++ b/third_party/blink/renderer/core/paint/file_upload_control_painter.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_FILE_UPLOAD_CONTROL_PAINTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_FILE_UPLOAD_CONTROL_PAINTER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/filter_effect_builder.h b/third_party/blink/renderer/core/paint/filter_effect_builder.h
index b23df97d..32497c0 100644
--- a/third_party/blink/renderer/core/paint/filter_effect_builder.h
+++ b/third_party/blink/renderer/core/paint/filter_effect_builder.h
@@ -30,7 +30,7 @@
 #include "third_party/blink/renderer/platform/geometry/float_rect.h"
 #include "third_party/blink/renderer/platform/graphics/paint/paint_flags.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/skia/include/effects/SkBlurImageFilter.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/paint/find_paint_offset_and_visual_rect_needing_update.h b/third_party/blink/renderer/core/paint/find_paint_offset_and_visual_rect_needing_update.h
index 7e73af9..853f329c 100644
--- a/third_party/blink/renderer/core/paint/find_paint_offset_and_visual_rect_needing_update.h
+++ b/third_party/blink/renderer/core/paint/find_paint_offset_and_visual_rect_needing_update.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/core/paint/paint_invalidator.h"
 #include "third_party/blink/renderer/core/paint/paint_layer.h"
 #include "third_party/blink/renderer/core/paint/paint_property_tree_builder.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/find_properties_needing_update.h b/third_party/blink/renderer/core/paint/find_properties_needing_update.h
index f6cd907..c61a4cb 100644
--- a/third_party/blink/renderer/core/paint/find_properties_needing_update.h
+++ b/third_party/blink/renderer/core/paint/find_properties_needing_update.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/core/layout/layout_object.h"
 #include "third_party/blink/renderer/core/paint/object_paint_properties.h"
 #include "third_party/blink/renderer/core/paint/paint_property_tree_builder.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/fragment_data.h b/third_party/blink/renderer/core/paint/fragment_data.h
index 8a35b7b..0b57cdf 100644
--- a/third_party/blink/renderer/core/paint/fragment_data.h
+++ b/third_party/blink/renderer/core/paint/fragment_data.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/layout/geometry/physical_rect.h"
 #include "third_party/blink/renderer/core/paint/object_paint_properties.h"
 #include "third_party/blink/renderer/platform/graphics/paint/ref_counted_property_tree_state.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/frame_set_painter.h b/third_party/blink/renderer/core/paint/frame_set_painter.h
index 5839aa7b..051a1992 100644
--- a/third_party/blink/renderer/core/paint/frame_set_painter.h
+++ b/third_party/blink/renderer/core/paint/frame_set_painter.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_FRAME_SET_PAINTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_FRAME_SET_PAINTER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/html_canvas_painter.h b/third_party/blink/renderer/core/paint/html_canvas_painter.h
index fdbaa3f..396ddd8 100644
--- a/third_party/blink/renderer/core/paint/html_canvas_painter.h
+++ b/third_party/blink/renderer/core/paint/html_canvas_painter.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_HTML_CANVAS_PAINTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_HTML_CANVAS_PAINTER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/image_painter.h b/third_party/blink/renderer/core/paint/image_painter.h
index 35bf83a..0690b704 100644
--- a/third_party/blink/renderer/core/paint/image_painter.h
+++ b/third_party/blink/renderer/core/paint/image_painter.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_IMAGE_PAINTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_IMAGE_PAINTER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/inline_box_painter_base.h b/third_party/blink/renderer/core/paint/inline_box_painter_base.h
index 1e1794e..0dc82e10 100644
--- a/third_party/blink/renderer/core/paint/inline_box_painter_base.h
+++ b/third_party/blink/renderer/core/paint/inline_box_painter_base.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/style/shadow_data.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_types.h"
 #include "third_party/blink/renderer/platform/text/text_direction.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/inline_flow_box_painter.h b/third_party/blink/renderer/core/paint/inline_flow_box_painter.h
index 035b1356..9b239f1 100644
--- a/third_party/blink/renderer/core/paint/inline_flow_box_painter.h
+++ b/third_party/blink/renderer/core/paint/inline_flow_box_painter.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/core/style/shadow_data.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_types.h"
 #include "third_party/blink/renderer/platform/text/text_direction.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/inline_painter.h b/third_party/blink/renderer/core/paint/inline_painter.h
index 5f8020a..04a718a 100644
--- a/third_party/blink/renderer/core/paint/inline_painter.h
+++ b/third_party/blink/renderer/core/paint/inline_painter.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_INLINE_PAINTER_H_
 
 #include "third_party/blink/renderer/core/style/computed_style_constants.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/inline_text_box_painter.h b/third_party/blink/renderer/core/paint/inline_text_box_painter.h
index 533bc38..16fca0d 100644
--- a/third_party/blink/renderer/core/paint/inline_text_box_painter.h
+++ b/third_party/blink/renderer/core/paint/inline_text_box_painter.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/editing/markers/document_marker.h"
 #include "third_party/blink/renderer/core/style/computed_style_constants.h"
 #include "third_party/blink/renderer/platform/geometry/layout_rect.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/layout_object_counter.h b/third_party/blink/renderer/core/paint/layout_object_counter.h
index 23441219..fdd37be 100644
--- a/third_party/blink/renderer/core/paint/layout_object_counter.h
+++ b/third_party/blink/renderer/core/paint/layout_object_counter.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_LAYOUT_OBJECT_COUNTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_LAYOUT_OBJECT_COUNTER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/line_box_list_painter.h b/third_party/blink/renderer/core/paint/line_box_list_painter.h
index 7044c2b..9377a43 100644
--- a/third_party/blink/renderer/core/paint/line_box_list_painter.h
+++ b/third_party/blink/renderer/core/paint/line_box_list_painter.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_LINE_BOX_LIST_PAINTER_H_
 
 #include "third_party/blink/renderer/core/style/computed_style_constants.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/list_item_painter.h b/third_party/blink/renderer/core/paint/list_item_painter.h
index 8264747c..2ea53d0 100644
--- a/third_party/blink/renderer/core/paint/list_item_painter.h
+++ b/third_party/blink/renderer/core/paint/list_item_painter.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_LIST_ITEM_PAINTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_LIST_ITEM_PAINTER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/list_marker_painter.h b/third_party/blink/renderer/core/paint/list_marker_painter.h
index fb39379..86c2023c 100644
--- a/third_party/blink/renderer/core/paint/list_marker_painter.h
+++ b/third_party/blink/renderer/core/paint/list_marker_painter.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_LIST_MARKER_PAINTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_LIST_MARKER_PAINTER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/multi_column_set_painter.h b/third_party/blink/renderer/core/paint/multi_column_set_painter.h
index 065ae54..9b8e2ec 100644
--- a/third_party/blink/renderer/core/paint/multi_column_set_painter.h
+++ b/third_party/blink/renderer/core/paint/multi_column_set_painter.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_MULTI_COLUMN_SET_PAINTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_MULTI_COLUMN_SET_PAINTER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.h b/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.h
index 097916c..88e9030 100644
--- a/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.h
+++ b/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.h
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/core/paint/ng/ng_paint_fragment.h"
 #include "third_party/blink/renderer/platform/geometry/layout_point.h"
 #include "third_party/blink/renderer/platform/geometry/layout_size.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/ng/ng_fieldset_painter.h b/third_party/blink/renderer/core/paint/ng/ng_fieldset_painter.h
index b81aaf46..844c4d21 100644
--- a/third_party/blink/renderer/core/paint/ng/ng_fieldset_painter.h
+++ b/third_party/blink/renderer/core/paint/ng/ng_fieldset_painter.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_NG_NG_FIELDSET_PAINTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_NG_NG_FIELDSET_PAINTER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/ng/ng_inline_box_fragment_painter.h b/third_party/blink/renderer/core/paint/ng/ng_inline_box_fragment_painter.h
index 235d8a9..935f725 100644
--- a/third_party/blink/renderer/core/paint/ng/ng_inline_box_fragment_painter.h
+++ b/third_party/blink/renderer/core/paint/ng/ng_inline_box_fragment_painter.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_physical_line_box_fragment.h"
 #include "third_party/blink/renderer/core/paint/inline_box_painter_base.h"
 #include "third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/ng/ng_paint_fragment.h b/third_party/blink/renderer/core/paint/ng/ng_paint_fragment.h
index 7317732a..9dc5690 100644
--- a/third_party/blink/renderer/core/paint/ng/ng_paint_fragment.h
+++ b/third_party/blink/renderer/core/paint/ng/ng_paint_fragment.h
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/core/layout/ng/ng_physical_fragment.h"
 #include "third_party/blink/renderer/core/scroll/scroll_types.h"
 #include "third_party/blink/renderer/platform/graphics/paint/display_item_client.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/ng/ng_text_fragment_painter.h b/third_party/blink/renderer/core/paint/ng/ng_text_fragment_painter.h
index 77d1c19c..4bda960 100644
--- a/third_party/blink/renderer/core/paint/ng/ng_text_fragment_painter.h
+++ b/third_party/blink/renderer/core/paint/ng/ng_text_fragment_painter.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/content_capture/content_holder.h"
 #include "third_party/blink/renderer/core/style/computed_style_constants.h"
 #include "third_party/blink/renderer/platform/geometry/layout_rect.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/object_paint_invalidator.h b/third_party/blink/renderer/core/paint/object_paint_invalidator.h
index a0605c26..a6f5f92 100644
--- a/third_party/blink/renderer/core/paint/object_paint_invalidator.h
+++ b/third_party/blink/renderer/core/paint/object_paint_invalidator.h
@@ -9,7 +9,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/graphics/paint_invalidation_reason.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/object_paint_properties.h b/third_party/blink/renderer/core/paint/object_paint_properties.h
index c84ea9e..f943119 100644
--- a/third_party/blink/renderer/core/paint/object_paint_properties.h
+++ b/third_party/blink/renderer/core/paint/object_paint_properties.h
@@ -16,7 +16,7 @@
 #include "third_party/blink/renderer/platform/graphics/paint/effect_paint_property_node.h"
 #include "third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h"
 #include "third_party/blink/renderer/platform/graphics/paint/transform_paint_property_node.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/object_painter.h b/third_party/blink/renderer/core/paint/object_painter.h
index 7f05ee4..12595d0 100644
--- a/third_party/blink/renderer/core/paint/object_painter.h
+++ b/third_party/blink/renderer/core/paint/object_painter.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/paint/object_painter_base.h"
 #include "third_party/blink/renderer/core/style/computed_style_constants.h"
 #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/object_painter_base.h b/third_party/blink/renderer/core/paint/object_painter_base.h
index 2890d89..4b0d0f12 100644
--- a/third_party/blink/renderer/core/paint/object_painter_base.h
+++ b/third_party/blink/renderer/core/paint/object_painter_base.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_OBJECT_PAINTER_BASE_H_
 
 #include "third_party/blink/renderer/core/style/computed_style_constants.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/paint/paint_info.h b/third_party/blink/renderer/core/paint/paint_info.h
index d68d5fc..ef8d43a4 100644
--- a/third_party/blink/renderer/core/paint/paint_info.h
+++ b/third_party/blink/renderer/core/paint/paint_info.h
@@ -42,7 +42,7 @@
 #include "third_party/blink/renderer/platform/graphics/paint/cull_rect.h"
 #include "third_party/blink/renderer/platform/graphics/paint/display_item.h"
 #include "third_party/blink/renderer/platform/transforms/affine_transform.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 
 #include <limits>
diff --git a/third_party/blink/renderer/core/paint/paint_invalidator.h b/third_party/blink/renderer/core/paint/paint_invalidator.h
index 6aa6908..a8aed714 100644
--- a/third_party/blink/renderer/core/paint/paint_invalidator.h
+++ b/third_party/blink/renderer/core/paint/paint_invalidator.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/paint/paint_property_tree_builder.h"
 #include "third_party/blink/renderer/platform/geometry/layout_rect.h"
 #include "third_party/blink/renderer/platform/graphics/paint_invalidation_reason.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/paint/paint_layer.h b/third_party/blink/renderer/core/paint/paint_layer.h
index 180fc18..3f01ce60 100644
--- a/third_party/blink/renderer/core/paint/paint_layer.h
+++ b/third_party/blink/renderer/core/paint/paint_layer.h
@@ -62,7 +62,7 @@
 #include "third_party/blink/renderer/platform/graphics/paint/cull_rect.h"
 #include "third_party/blink/renderer/platform/graphics/scroll_types.h"
 #include "third_party/blink/renderer/platform/graphics/squashing_disallowed_reasons.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/paint_layer_clipper.h b/third_party/blink/renderer/core/paint/paint_layer_clipper.h
index 7f7f2c9..bf102b1 100644
--- a/third_party/blink/renderer/core/paint/paint_layer_clipper.h
+++ b/third_party/blink/renderer/core/paint/paint_layer_clipper.h
@@ -49,7 +49,7 @@
 #include "third_party/blink/renderer/core/paint/clip_rects_cache.h"
 #include "third_party/blink/renderer/platform/graphics/paint/cull_rect.h"
 #include "third_party/blink/renderer/platform/graphics/scroll_types.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/paint_layer_fragment.h b/third_party/blink/renderer/core/paint/paint_layer_fragment.h
index a159871a..6b0d2e3a 100644
--- a/third_party/blink/renderer/core/paint/paint_layer_fragment.h
+++ b/third_party/blink/renderer/core/paint/paint_layer_fragment.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_PAINT_LAYER_FRAGMENT_H_
 
 #include "third_party/blink/renderer/core/paint/clip_rect.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/paint/paint_layer_painter.h b/third_party/blink/renderer/core/paint/paint_layer_painter.h
index 263079da..7c48860 100644
--- a/third_party/blink/renderer/core/paint/paint_layer_painter.h
+++ b/third_party/blink/renderer/core/paint/paint_layer_painter.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/paint/paint_layer_fragment.h"
 #include "third_party/blink/renderer/core/paint/paint_layer_painting_info.h"
 #include "third_party/blink/renderer/core/paint/paint_result.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/paint_layer_painting_info.h b/third_party/blink/renderer/core/paint/paint_layer_painting_info.h
index 661f807b..c3aa21e 100644
--- a/third_party/blink/renderer/core/paint/paint_layer_painting_info.h
+++ b/third_party/blink/renderer/core/paint/paint_layer_painting_info.h
@@ -49,7 +49,7 @@
 #include "third_party/blink/renderer/core/layout/geometry/physical_offset.h"
 #include "third_party/blink/renderer/core/paint/paint_phase.h"
 #include "third_party/blink/renderer/platform/graphics/paint/cull_rect.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 #if DCHECK_IS_ON()
 #include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
diff --git a/third_party/blink/renderer/core/paint/paint_layer_stacking_node.h b/third_party/blink/renderer/core/paint/paint_layer_stacking_node.h
index 76ad5db..3439dec 100644
--- a/third_party/blink/renderer/core/paint/paint_layer_stacking_node.h
+++ b/third_party/blink/renderer/core/paint/paint_layer_stacking_node.h
@@ -49,7 +49,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/layout_box_model_object.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/paint/paint_layer_stacking_node_iterator.h b/third_party/blink/renderer/core/paint/paint_layer_stacking_node_iterator.h
index 4013683..a002e2cf 100644
--- a/third_party/blink/renderer/core/paint/paint_layer_stacking_node_iterator.h
+++ b/third_party/blink/renderer/core/paint/paint_layer_stacking_node_iterator.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_PAINT_LAYER_STACKING_NODE_ITERATOR_H_
 
 #include "base/macros.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/paint_property_tree_builder.h b/third_party/blink/renderer/core/paint/paint_property_tree_builder.h
index 9b7c6d6..3e0e874 100644
--- a/third_party/blink/renderer/core/paint/paint_property_tree_builder.h
+++ b/third_party/blink/renderer/core/paint/paint_property_tree_builder.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/platform/graphics/paint/effect_paint_property_node.h"
 #include "third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h"
 #include "third_party/blink/renderer/platform/graphics/paint/transform_paint_property_node.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/pre_paint_tree_walk.h b/third_party/blink/renderer/core/paint/pre_paint_tree_walk.h
index cc7711c..7798e35 100644
--- a/third_party/blink/renderer/core/paint/pre_paint_tree_walk.h
+++ b/third_party/blink/renderer/core/paint/pre_paint_tree_walk.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/paint/clip_rect.h"
 #include "third_party/blink/renderer/core/paint/paint_invalidator.h"
 #include "third_party/blink/renderer/core/paint/paint_property_tree_builder.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/replaced_painter.h b/third_party/blink/renderer/core/paint/replaced_painter.h
index 59a3256..7a987fd 100644
--- a/third_party/blink/renderer/core/paint/replaced_painter.h
+++ b/third_party/blink/renderer/core/paint/replaced_painter.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_REPLACED_PAINTER_H_
 
 #include "third_party/blink/renderer/platform/geometry/layout_point.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/root_inline_box_painter.h b/third_party/blink/renderer/core/paint/root_inline_box_painter.h
index 01aa375..5072a09 100644
--- a/third_party/blink/renderer/core/paint/root_inline_box_painter.h
+++ b/third_party/blink/renderer/core/paint/root_inline_box_painter.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_ROOT_INLINE_BOX_PAINTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_ROOT_INLINE_BOX_PAINTER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/rounded_inner_rect_clipper.h b/third_party/blink/renderer/core/paint/rounded_inner_rect_clipper.h
index 2a98bb7..58e13f8 100644
--- a/third_party/blink/renderer/core/paint/rounded_inner_rect_clipper.h
+++ b/third_party/blink/renderer/core/paint/rounded_inner_rect_clipper.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_ROUNDED_INNER_RECT_CLIPPER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_ROUNDED_INNER_RECT_CLIPPER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/selection_painting_utils.h b/third_party/blink/renderer/core/paint/selection_painting_utils.h
index bd0ff15..f8953a4 100644
--- a/third_party/blink/renderer/core/paint/selection_painting_utils.h
+++ b/third_party/blink/renderer/core/paint/selection_painting_utils.h
@@ -8,7 +8,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/paint/paint_phase.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/svg_container_painter.h b/third_party/blink/renderer/core/paint/svg_container_painter.h
index b81b9e6..9c13032a 100644
--- a/third_party/blink/renderer/core/paint/svg_container_painter.h
+++ b/third_party/blink/renderer/core/paint/svg_container_painter.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_SVG_CONTAINER_PAINTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_SVG_CONTAINER_PAINTER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/svg_filter_painter.h b/third_party/blink/renderer/core/paint/svg_filter_painter.h
index d0989c42..7dd90ff 100644
--- a/third_party/blink/renderer/core/paint/svg_filter_painter.h
+++ b/third_party/blink/renderer/core/paint/svg_filter_painter.h
@@ -9,7 +9,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_context.h"
 #include "third_party/blink/renderer/platform/graphics/paint/paint_controller.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/svg_foreign_object_painter.h b/third_party/blink/renderer/core/paint/svg_foreign_object_painter.h
index 095518a2..520aac1 100644
--- a/third_party/blink/renderer/core/paint/svg_foreign_object_painter.h
+++ b/third_party/blink/renderer/core/paint/svg_foreign_object_painter.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_SVG_FOREIGN_OBJECT_PAINTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_SVG_FOREIGN_OBJECT_PAINTER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/svg_image_painter.h b/third_party/blink/renderer/core/paint/svg_image_painter.h
index 84904b8..f7177fa 100644
--- a/third_party/blink/renderer/core/paint/svg_image_painter.h
+++ b/third_party/blink/renderer/core/paint/svg_image_painter.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_SVG_IMAGE_PAINTER_H_
 
 #include "third_party/blink/renderer/platform/geometry/float_size.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/svg_inline_flow_box_painter.h b/third_party/blink/renderer/core/paint/svg_inline_flow_box_painter.h
index 53adfa63..99e5ac02 100644
--- a/third_party/blink/renderer/core/paint/svg_inline_flow_box_painter.h
+++ b/third_party/blink/renderer/core/paint/svg_inline_flow_box_painter.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_SVG_INLINE_FLOW_BOX_PAINTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_SVG_INLINE_FLOW_BOX_PAINTER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/svg_inline_text_box_painter.h b/third_party/blink/renderer/core/paint/svg_inline_text_box_painter.h
index 2fd216f..69e1fe5 100644
--- a/third_party/blink/renderer/core/paint/svg_inline_text_box_painter.h
+++ b/third_party/blink/renderer/core/paint/svg_inline_text_box_painter.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/layout/svg/layout_svg_resource_paint_server.h"
 #include "third_party/blink/renderer/core/style/computed_style_constants.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/svg_mask_painter.h b/third_party/blink/renderer/core/paint/svg_mask_painter.h
index 3e854ad..af65990 100644
--- a/third_party/blink/renderer/core/paint/svg_mask_painter.h
+++ b/third_party/blink/renderer/core/paint/svg_mask_painter.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_SVG_MASK_PAINTER_H_
 
 #include "third_party/blink/renderer/platform/geometry/float_rect.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/svg_model_object_painter.h b/third_party/blink/renderer/core/paint/svg_model_object_painter.h
index 12d30044..7498f38 100644
--- a/third_party/blink/renderer/core/paint/svg_model_object_painter.h
+++ b/third_party/blink/renderer/core/paint/svg_model_object_painter.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_SVG_MODEL_OBJECT_PAINTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_SVG_MODEL_OBJECT_PAINTER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/svg_object_painter.h b/third_party/blink/renderer/core/paint/svg_object_painter.h
index b209d6b..9e4c594 100644
--- a/third_party/blink/renderer/core/paint/svg_object_painter.h
+++ b/third_party/blink/renderer/core/paint/svg_object_painter.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/layout/layout_object.h"
 #include "third_party/blink/renderer/core/layout/svg/layout_svg_resource_paint_server.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/svg_root_inline_box_painter.h b/third_party/blink/renderer/core/paint/svg_root_inline_box_painter.h
index a84b66f..05319d2 100644
--- a/third_party/blink/renderer/core/paint/svg_root_inline_box_painter.h
+++ b/third_party/blink/renderer/core/paint/svg_root_inline_box_painter.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_SVG_ROOT_INLINE_BOX_PAINTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_SVG_ROOT_INLINE_BOX_PAINTER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/svg_root_painter.h b/third_party/blink/renderer/core/paint/svg_root_painter.h
index 7dfb8bc7..aacce7f0 100644
--- a/third_party/blink/renderer/core/paint/svg_root_painter.h
+++ b/third_party/blink/renderer/core/paint/svg_root_painter.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_SVG_ROOT_PAINTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_SVG_ROOT_PAINTER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/svg_shape_painter.h b/third_party/blink/renderer/core/paint/svg_shape_painter.h
index 29bf5087..9c3ce88 100644
--- a/third_party/blink/renderer/core/paint/svg_shape_painter.h
+++ b/third_party/blink/renderer/core/paint/svg_shape_painter.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_SVG_SHAPE_PAINTER_H_
 
 #include "third_party/blink/renderer/platform/graphics/paint/paint_flags.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/skia/include/core/SkPath.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/paint/svg_text_painter.h b/third_party/blink/renderer/core/paint/svg_text_painter.h
index ff43ec261..cb4e44505 100644
--- a/third_party/blink/renderer/core/paint/svg_text_painter.h
+++ b/third_party/blink/renderer/core/paint/svg_text_painter.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_SVG_TEXT_PAINTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_SVG_TEXT_PAINTER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/table_cell_paint_invalidator.h b/third_party/blink/renderer/core/paint/table_cell_paint_invalidator.h
index e5a3086..787643f 100644
--- a/third_party/blink/renderer/core/paint/table_cell_paint_invalidator.h
+++ b/third_party/blink/renderer/core/paint/table_cell_paint_invalidator.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_TABLE_CELL_PAINT_INVALIDATOR_H_
 
 #include "third_party/blink/renderer/platform/graphics/paint_invalidation_reason.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/table_cell_painter.h b/third_party/blink/renderer/core/paint/table_cell_painter.h
index 1d8d6a3a..94f569b4 100644
--- a/third_party/blink/renderer/core/paint/table_cell_painter.h
+++ b/third_party/blink/renderer/core/paint/table_cell_painter.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_TABLE_CELL_PAINTER_H_
 
 #include "third_party/blink/renderer/platform/graphics/paint/display_item.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/table_paint_invalidator.h b/third_party/blink/renderer/core/paint/table_paint_invalidator.h
index 2bcadfb..a756719 100644
--- a/third_party/blink/renderer/core/paint/table_paint_invalidator.h
+++ b/third_party/blink/renderer/core/paint/table_paint_invalidator.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_TABLE_PAINT_INVALIDATOR_H_
 
 #include "third_party/blink/renderer/platform/graphics/paint_invalidation_reason.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/table_painter.h b/third_party/blink/renderer/core/paint/table_painter.h
index 1a3d513..dc4d8bf 100644
--- a/third_party/blink/renderer/core/paint/table_painter.h
+++ b/third_party/blink/renderer/core/paint/table_painter.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_TABLE_PAINTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_TABLE_PAINTER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/table_row_painter.h b/third_party/blink/renderer/core/paint/table_row_painter.h
index 298526c..0971604 100644
--- a/third_party/blink/renderer/core/paint/table_row_painter.h
+++ b/third_party/blink/renderer/core/paint/table_row_painter.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_TABLE_ROW_PAINTER_H_
 
 #include "third_party/blink/renderer/core/style/shadow_data.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/table_section_painter.h b/third_party/blink/renderer/core/paint/table_section_painter.h
index 68159e9..4f19519e 100644
--- a/third_party/blink/renderer/core/paint/table_section_painter.h
+++ b/third_party/blink/renderer/core/paint/table_section_painter.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/paint/paint_phase.h"
 #include "third_party/blink/renderer/core/style/shadow_data.h"
 #include "third_party/blink/renderer/platform/geometry/layout_rect.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/text_control_single_line_painter.h b/third_party/blink/renderer/core/paint/text_control_single_line_painter.h
index 8c9f898..cd8bc96b 100644
--- a/third_party/blink/renderer/core/paint/text_control_single_line_painter.h
+++ b/third_party/blink/renderer/core/paint/text_control_single_line_painter.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_TEXT_CONTROL_SINGLE_LINE_PAINTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_TEXT_CONTROL_SINGLE_LINE_PAINTER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/text_paint_style.h b/third_party/blink/renderer/core/paint/text_paint_style.h
index b333afeb..e5411fd 100644
--- a/third_party/blink/renderer/core/paint/text_paint_style.h
+++ b/third_party/blink/renderer/core/paint/text_paint_style.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/graphics/color.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/text_painter_base.h b/third_party/blink/renderer/core/paint/text_painter_base.h
index 4c6bf8bf..4b13914 100644
--- a/third_party/blink/renderer/core/paint/text_painter_base.h
+++ b/third_party/blink/renderer/core/paint/text_painter_base.h
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/platform/fonts/font.h"
 #include "third_party/blink/renderer/platform/graphics/color.h"
 #include "third_party/blink/renderer/platform/transforms/affine_transform.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/paint/theme_painter.h b/third_party/blink/renderer/core/paint/theme_painter.h
index 6ab0254..4ffa1ca 100644
--- a/third_party/blink/renderer/core/paint/theme_painter.h
+++ b/third_party/blink/renderer/core/paint/theme_painter.h
@@ -24,7 +24,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_THEME_PAINTER_H_
 
 #include "third_party/blink/renderer/platform/theme_types.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/video_painter.h b/third_party/blink/renderer/core/paint/video_painter.h
index 8dd89ea..c8f0ccbd 100644
--- a/third_party/blink/renderer/core/paint/video_painter.h
+++ b/third_party/blink/renderer/core/paint/video_painter.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_VIDEO_PAINTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_VIDEO_PAINTER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/paint/view_painter.h b/third_party/blink/renderer/core/paint/view_painter.h
index 36563c5a..652ffd6 100644
--- a/third_party/blink/renderer/core/paint/view_painter.h
+++ b/third_party/blink/renderer/core/paint/view_painter.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_VIEW_PAINTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_VIEW_PAINTER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/script/ignore_destructive_write_count_incrementer.h b/third_party/blink/renderer/core/script/ignore_destructive_write_count_incrementer.h
index cedad851..02738ad 100644
--- a/third_party/blink/renderer/core/script/ignore_destructive_write_count_incrementer.h
+++ b/third_party/blink/renderer/core/script/ignore_destructive_write_count_incrementer.h
@@ -28,7 +28,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/dom/document.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/script/resources/layered_api/PRESUBMIT.py b/third_party/blink/renderer/core/script/resources/layered_api/PRESUBMIT.py
new file mode 100644
index 0000000..3c26ba1
--- /dev/null
+++ b/third_party/blink/renderer/core/script/resources/layered_api/PRESUBMIT.py
@@ -0,0 +1,39 @@
+# Copyright 2019 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+
+import sys
+
+
+def _CommonChecks(input_api, output_api):
+  results = []
+  # We don't apply eslint to virtual-scroller/, which is not developed here.
+  # TODO(tkent): kv-storage/.eslintrc.js specifies babel-eslint parser, which
+  # is not in third_party/node/node_modules/.
+  mjs_files = input_api.AffectedFiles(
+      file_filter=lambda f: (f.LocalPath().endswith('.mjs') and
+                             not 'virtual-scroller' in f.LocalPath() and
+                             not 'kv-storage' in f.LocalPath()),
+      include_deletes=False)
+  if not mjs_files:
+    return results
+  try:
+    old_sys_path = sys.path[:]
+    cwd = input_api.PresubmitLocalPath()
+    sys.path += [input_api.os_path.join(cwd, '..', '..', '..', '..', '..',
+                                        '..', '..', 'tools')]
+    import web_dev_style.js_checker
+    checker = web_dev_style.js_checker.JSChecker(input_api, output_api)
+    results += checker.RunEsLintChecks(mjs_files)
+  finally:
+    sys.path = old_sys_path
+  return results
+
+
+def CheckChangeOnUpload(input_api, output_api):
+  return _CommonChecks(input_api, output_api)
+
+
+def CheckChangeOnCommit(input_api, output_api):
+  return _CommonChecks(input_api, output_api)
diff --git a/third_party/blink/renderer/core/scroll/programmatic_scroll_animator.h b/third_party/blink/renderer/core/scroll/programmatic_scroll_animator.h
index 0e0142ad..e9f8feb 100644
--- a/third_party/blink/renderer/core/scroll/programmatic_scroll_animator.h
+++ b/third_party/blink/renderer/core/scroll/programmatic_scroll_animator.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/core/scroll/scroll_animator_compositor_coordinator.h"
 #include "third_party/blink/renderer/core/scroll/scrollable_area.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/scroll/scroll_alignment.h b/third_party/blink/renderer/core/scroll/scroll_alignment.h
index aa5373f..1e9ab6f4 100644
--- a/third_party/blink/renderer/core/scroll/scroll_alignment.h
+++ b/third_party/blink/renderer/core/scroll/scroll_alignment.h
@@ -46,7 +46,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/scroll/scroll_types.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/scroll/scroll_animator_compositor_coordinator.h b/third_party/blink/renderer/core/scroll/scroll_animator_compositor_coordinator.h
index 53026d2..814d082 100644
--- a/third_party/blink/renderer/core/scroll/scroll_animator_compositor_coordinator.h
+++ b/third_party/blink/renderer/core/scroll/scroll_animator_compositor_coordinator.h
@@ -15,7 +15,7 @@
 #include "third_party/blink/renderer/platform/animation/compositor_animation_delegate.h"
 #include "third_party/blink/renderer/platform/graphics/compositor_element_id.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/streams/miscellaneous_operations.h b/third_party/blink/renderer/core/streams/miscellaneous_operations.h
index f490157e..8d71510 100644
--- a/third_party/blink/renderer/core/streams/miscellaneous_operations.h
+++ b/third_party/blink/renderer/core/streams/miscellaneous_operations.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/bindings/core/v8/script_value.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/streams/transform_stream_default_controller_interface.h b/third_party/blink/renderer/core/streams/transform_stream_default_controller_interface.h
index 3ce6138..d87de7fe 100644
--- a/third_party/blink/renderer/core/streams/transform_stream_default_controller_interface.h
+++ b/third_party/blink/renderer/core/streams/transform_stream_default_controller_interface.h
@@ -7,7 +7,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/streams/transform_stream_native.cc b/third_party/blink/renderer/core/streams/transform_stream_native.cc
index 4bd47ac..825cece3 100644
--- a/third_party/blink/renderer/core/streams/transform_stream_native.cc
+++ b/third_party/blink/renderer/core/streams/transform_stream_native.cc
@@ -22,7 +22,7 @@
 #include "third_party/blink/renderer/platform/bindings/v8_binding.h"
 #include "third_party/blink/renderer/platform/heap/visitor.h"
 #include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/streams/transform_stream_wrapper.h b/third_party/blink/renderer/core/streams/transform_stream_wrapper.h
index 022a175c..f0668df 100644
--- a/third_party/blink/renderer/core/streams/transform_stream_wrapper.h
+++ b/third_party/blink/renderer/core/streams/transform_stream_wrapper.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/bindings/core/v8/script_value.h"
 #include "third_party/blink/renderer/platform/heap/member.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/style/applied_text_decoration.h b/third_party/blink/renderer/core/style/applied_text_decoration.h
index be8772e3..5d8855aa 100644
--- a/third_party/blink/renderer/core/style/applied_text_decoration.h
+++ b/third_party/blink/renderer/core/style/applied_text_decoration.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/style/computed_style_constants.h"
 #include "third_party/blink/renderer/platform/graphics/color.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/style/basic_shapes.h b/third_party/blink/renderer/core/style/basic_shapes.h
index 9c852ff..d73aa6e 100644
--- a/third_party/blink/renderer/core/style/basic_shapes.h
+++ b/third_party/blink/renderer/core/style/basic_shapes.h
@@ -35,7 +35,7 @@
 #include "third_party/blink/renderer/platform/geometry/length.h"
 #include "third_party/blink/renderer/platform/geometry/length_size.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_types.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/core/style/border_edge.h b/third_party/blink/renderer/core/style/border_edge.h
index 623b962..86fcbc74 100644
--- a/third_party/blink/renderer/core/style/border_edge.h
+++ b/third_party/blink/renderer/core/style/border_edge.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/style/computed_style_constants.h"
 #include "third_party/blink/renderer/platform/graphics/color.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/style/border_image_length.h b/third_party/blink/renderer/core/style/border_image_length.h
index 12ec360..fba0e1a0 100644
--- a/third_party/blink/renderer/core/style/border_image_length.h
+++ b/third_party/blink/renderer/core/style/border_image_length.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_BORDER_IMAGE_LENGTH_H_
 
 #include "third_party/blink/renderer/platform/geometry/length.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/style/border_image_length_box.h b/third_party/blink/renderer/core/style/border_image_length_box.h
index 6c75b2e..c6187a4 100644
--- a/third_party/blink/renderer/core/style/border_image_length_box.h
+++ b/third_party/blink/renderer/core/style/border_image_length_box.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_BORDER_IMAGE_LENGTH_BOX_H_
 
 #include "third_party/blink/renderer/core/style/border_image_length.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/style/border_style.h b/third_party/blink/renderer/core/style/border_style.h
index 0702b117..53c279f 100644
--- a/third_party/blink/renderer/core/style/border_style.h
+++ b/third_party/blink/renderer/core/style/border_style.h
@@ -28,7 +28,7 @@
 #include "third_party/blink/renderer/core/css/style_color.h"
 #include "third_party/blink/renderer/core/style/computed_style_constants.h"
 #include "third_party/blink/renderer/platform/graphics/color.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/style/border_value.h b/third_party/blink/renderer/core/style/border_value.h
index 46ff113..af4aa75 100644
--- a/third_party/blink/renderer/core/style/border_value.h
+++ b/third_party/blink/renderer/core/style/border_value.h
@@ -28,7 +28,7 @@
 #include "third_party/blink/renderer/core/css/style_color.h"
 #include "third_party/blink/renderer/core/style/computed_style_constants.h"
 #include "third_party/blink/renderer/platform/graphics/color.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/style/cached_ua_style.h b/third_party/blink/renderer/core/style/cached_ua_style.h
index 4a8a479..9bd97ccb 100644
--- a/third_party/blink/renderer/core/style/cached_ua_style.h
+++ b/third_party/blink/renderer/core/style/cached_ua_style.h
@@ -32,7 +32,7 @@
 #include "third_party/blink/renderer/core/style/nine_piece_image.h"
 #include "third_party/blink/renderer/platform/geometry/length_size.h"
 #include "third_party/blink/renderer/platform/graphics/color.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/style/clip_path_operation.h b/third_party/blink/renderer/core/style/clip_path_operation.h
index e09bd0b..289ab95 100644
--- a/third_party/blink/renderer/core/style/clip_path_operation.h
+++ b/third_party/blink/renderer/core/style/clip_path_operation.h
@@ -30,7 +30,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_CLIP_PATH_OPERATION_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_CLIP_PATH_OPERATION_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/core/style/counter_directives.h b/third_party/blink/renderer/core/style/counter_directives.h
index bf316c4..cc096ba 100644
--- a/third_party/blink/renderer/core/style/counter_directives.h
+++ b/third_party/blink/renderer/core/style/counter_directives.h
@@ -30,7 +30,7 @@
 #include "base/memory/ptr_util.h"
 #include "base/memory/scoped_refptr.h"
 #include "base/numerics/checked_math.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/math_extras.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
diff --git a/third_party/blink/renderer/core/style/data_ref.h b/third_party/blink/renderer/core/style/data_ref.h
index 59e7f82..6186788 100644
--- a/third_party/blink/renderer/core/style/data_ref.h
+++ b/third_party/blink/renderer/core/style/data_ref.h
@@ -25,7 +25,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_DATA_REF_H_
 
 #include "base/memory/scoped_refptr.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/style/fill_layer.h b/third_party/blink/renderer/core/style/fill_layer.h
index 9502f6e..b4d9f18 100644
--- a/third_party/blink/renderer/core/style/fill_layer.h
+++ b/third_party/blink/renderer/core/style/fill_layer.h
@@ -33,7 +33,7 @@
 #include "third_party/blink/renderer/platform/geometry/length_size.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_types.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/style/gap_length.h b/third_party/blink/renderer/core/style/gap_length.h
index a70a322..d0a356f 100644
--- a/third_party/blink/renderer/core/style/gap_length.h
+++ b/third_party/blink/renderer/core/style/gap_length.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_GAP_LENGTH_H_
 
 #include "third_party/blink/renderer/platform/geometry/length.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/style/grid_area.h b/third_party/blink/renderer/core/style/grid_area.h
index a7be2490..87fc702 100644
--- a/third_party/blink/renderer/core/style/grid_area.h
+++ b/third_party/blink/renderer/core/style/grid_area.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_GRID_AREA_H_
 
 #include "third_party/blink/renderer/core/style/grid_positions_resolver.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/math_extras.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
diff --git a/third_party/blink/renderer/core/style/grid_length.h b/third_party/blink/renderer/core/style/grid_length.h
index 0e6d874f..12f0d134 100644
--- a/third_party/blink/renderer/core/style/grid_length.h
+++ b/third_party/blink/renderer/core/style/grid_length.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_GRID_LENGTH_H_
 
 #include "third_party/blink/renderer/platform/geometry/length.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/style/grid_position.h b/third_party/blink/renderer/core/style/grid_position.h
index a26b712..5e1d16d 100644
--- a/third_party/blink/renderer/core/style/grid_position.h
+++ b/third_party/blink/renderer/core/style/grid_position.h
@@ -31,7 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_GRID_POSITION_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_GRID_POSITION_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/style/grid_positions_resolver.h b/third_party/blink/renderer/core/style/grid_positions_resolver.h
index 08ab54d..475819d 100644
--- a/third_party/blink/renderer/core/style/grid_positions_resolver.h
+++ b/third_party/blink/renderer/core/style/grid_positions_resolver.h
@@ -7,7 +7,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/style/grid_position.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/style/grid_track_size.h b/third_party/blink/renderer/core/style/grid_track_size.h
index 76298bf7..89e38c2 100644
--- a/third_party/blink/renderer/core/style/grid_track_size.h
+++ b/third_party/blink/renderer/core/style/grid_track_size.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_GRID_TRACK_SIZE_H_
 
 #include "third_party/blink/renderer/core/style/grid_length.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/style/nine_piece_image.h b/third_party/blink/renderer/core/style/nine_piece_image.h
index d2a26d3..e50133b 100644
--- a/third_party/blink/renderer/core/style/nine_piece_image.h
+++ b/third_party/blink/renderer/core/style/nine_piece_image.h
@@ -32,7 +32,7 @@
 #include "third_party/blink/renderer/platform/geometry/layout_unit.h"
 #include "third_party/blink/renderer/platform/geometry/length_box.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/style/quotes_data.h b/third_party/blink/renderer/core/style/quotes_data.h
index 33e0a6dc..ad734a3 100644
--- a/third_party/blink/renderer/core/style/quotes_data.h
+++ b/third_party/blink/renderer/core/style/quotes_data.h
@@ -23,7 +23,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_QUOTES_DATA_H_
 
 #include "base/memory/scoped_refptr.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/core/style/shadow_list.h b/third_party/blink/renderer/core/style/shadow_list.h
index 2b55f2a0..ea239ab 100644
--- a/third_party/blink/renderer/core/style/shadow_list.h
+++ b/third_party/blink/renderer/core/style/shadow_list.h
@@ -35,7 +35,7 @@
 #include "third_party/blink/renderer/core/style/shadow_data.h"
 #include "third_party/blink/renderer/platform/geometry/float_rect_outsets.h"
 #include "third_party/blink/renderer/platform/graphics/draw_looper_builder.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/core/style/style_content_alignment_data.h b/third_party/blink/renderer/core/style/style_content_alignment_data.h
index 81cb8973..13d1a9f6 100644
--- a/third_party/blink/renderer/core/style/style_content_alignment_data.h
+++ b/third_party/blink/renderer/core/style/style_content_alignment_data.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_STYLE_CONTENT_ALIGNMENT_DATA_H_
 
 #include "third_party/blink/renderer/core/style/computed_style_constants.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/style/style_difference.h b/third_party/blink/renderer/core/style/style_difference.h
index a005d4c..b3cf6266 100644
--- a/third_party/blink/renderer/core/style/style_difference.h
+++ b/third_party/blink/renderer/core/style/style_difference.h
@@ -7,7 +7,7 @@
 
 #include <iosfwd>
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/style/style_non_inherited_variables.h b/third_party/blink/renderer/core/style/style_non_inherited_variables.h
index e68c998..e8e36c2 100644
--- a/third_party/blink/renderer/core/style/style_non_inherited_variables.h
+++ b/third_party/blink/renderer/core/style/style_non_inherited_variables.h
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/core/css/css_variable_data.h"
 #include "third_party/blink/renderer/core/style/style_variables.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string_hash.h"
diff --git a/third_party/blink/renderer/core/style/style_reflection.h b/third_party/blink/renderer/core/style/style_reflection.h
index 672305d7..d6fc71c3 100644
--- a/third_party/blink/renderer/core/style/style_reflection.h
+++ b/third_party/blink/renderer/core/style/style_reflection.h
@@ -28,7 +28,7 @@
 #include "third_party/blink/renderer/core/css/css_reflection_direction.h"
 #include "third_party/blink/renderer/core/style/nine_piece_image.h"
 #include "third_party/blink/renderer/platform/geometry/length.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/style/style_self_alignment_data.h b/third_party/blink/renderer/core/style/style_self_alignment_data.h
index 3fd513d..18816e7 100644
--- a/third_party/blink/renderer/core/style/style_self_alignment_data.h
+++ b/third_party/blink/renderer/core/style/style_self_alignment_data.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_STYLE_SELF_ALIGNMENT_DATA_H_
 
 #include "third_party/blink/renderer/core/style/computed_style_constants.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/style/style_svg_resource.h b/third_party/blink/renderer/core/style/style_svg_resource.h
index 97573a0..646b28e 100644
--- a/third_party/blink/renderer/core/style/style_svg_resource.h
+++ b/third_party/blink/renderer/core/style/style_svg_resource.h
@@ -9,7 +9,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/core/svg/svg_resource.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/style/svg_computed_style.h b/third_party/blink/renderer/core/style/svg_computed_style.h
index 8c1d1eb..f5d3a27 100644
--- a/third_party/blink/renderer/core/style/svg_computed_style.h
+++ b/third_party/blink/renderer/core/style/svg_computed_style.h
@@ -30,7 +30,7 @@
 #include "third_party/blink/renderer/core/style/svg_computed_style_defs.h"
 #include "third_party/blink/renderer/platform/geometry/length.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_types.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 
diff --git a/third_party/blink/renderer/core/style/svg_computed_style_defs.h b/third_party/blink/renderer/core/style/svg_computed_style_defs.h
index e0c4c48..33f2bcf 100644
--- a/third_party/blink/renderer/core/style/svg_computed_style_defs.h
+++ b/third_party/blink/renderer/core/style/svg_computed_style_defs.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/core/style/style_path.h"
 #include "third_party/blink/renderer/platform/geometry/length.h"
 #include "third_party/blink/renderer/platform/graphics/color.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/core/style/text_size_adjust.h b/third_party/blink/renderer/core/style/text_size_adjust.h
index a0a58cb1..2f5e6af 100644
--- a/third_party/blink/renderer/core/style/text_size_adjust.h
+++ b/third_party/blink/renderer/core/style/text_size_adjust.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_TEXT_SIZE_ADJUST_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_TEXT_SIZE_ADJUST_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/style/transform_origin.h b/third_party/blink/renderer/core/style/transform_origin.h
index db1ac80..7fa384d 100644
--- a/third_party/blink/renderer/core/style/transform_origin.h
+++ b/third_party/blink/renderer/core/style/transform_origin.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_TRANSFORM_ORIGIN_H_
 
 #include "third_party/blink/renderer/platform/geometry/length.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
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 378ab8b5..bea1545 100644
--- a/third_party/blink/renderer/core/svg/animation/smil_time.h
+++ b/third_party/blink/renderer/core/svg/animation/smil_time.h
@@ -26,7 +26,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_SVG_ANIMATION_SMIL_TIME_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_ANIMATION_SMIL_TIME_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/hash_traits.h"
 #include "third_party/blink/renderer/platform/wtf/math_extras.h"
diff --git a/third_party/blink/renderer/core/svg/color_distance.h b/third_party/blink/renderer/core/svg/color_distance.h
index f69c1c1..cef574f 100644
--- a/third_party/blink/renderer/core/svg/color_distance.h
+++ b/third_party/blink/renderer/core/svg/color_distance.h
@@ -20,7 +20,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_SVG_COLOR_DISTANCE_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_COLOR_DISTANCE_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/gradient_attributes.h b/third_party/blink/renderer/core/svg/gradient_attributes.h
index a6eb387..18eadcfd 100644
--- a/third_party/blink/renderer/core/svg/gradient_attributes.h
+++ b/third_party/blink/renderer/core/svg/gradient_attributes.h
@@ -22,7 +22,7 @@
 
 #include "third_party/blink/renderer/core/svg/svg_gradient_element.h"
 #include "third_party/blink/renderer/core/svg/svg_unit_types.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/graphics/dark_mode_svg_image_classifier.h b/third_party/blink/renderer/core/svg/graphics/dark_mode_svg_image_classifier.h
index 62bdaf9f..98fa960a 100644
--- a/third_party/blink/renderer/core/svg/graphics/dark_mode_svg_image_classifier.h
+++ b/third_party/blink/renderer/core/svg/graphics/dark_mode_svg_image_classifier.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/svg/graphics/svg_image.h"
 #include "third_party/blink/renderer/platform/geometry/float_rect.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_types.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/graphics/svg_image.h b/third_party/blink/renderer/core/svg/graphics/svg_image.h
index c50156397..bead97b 100644
--- a/third_party/blink/renderer/core/svg/graphics/svg_image.h
+++ b/third_party/blink/renderer/core/svg/graphics/svg_image.h
@@ -33,7 +33,7 @@
 #include "third_party/blink/renderer/platform/graphics/paint/paint_record.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/skia/include/core/SkRefCnt.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/svg/properties/svg_list_property_helper.h b/third_party/blink/renderer/core/svg/properties/svg_list_property_helper.h
index 8668172..7596e65 100644
--- a/third_party/blink/renderer/core/svg/properties/svg_list_property_helper.h
+++ b/third_party/blink/renderer/core/svg/properties/svg_list_property_helper.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/renderer/platform/bindings/exception_messages.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/heap/heap.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/svg/svg_element.h b/third_party/blink/renderer/core/svg/svg_element.h
index 435e7dd..c6e7689 100644
--- a/third_party/blink/renderer/core/svg/svg_element.h
+++ b/third_party/blink/renderer/core/svg/svg_element.h
@@ -29,7 +29,7 @@
 #include "third_party/blink/renderer/core/svg/svg_parsing_error.h"
 #include "third_party/blink/renderer/core/svg_names.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 
diff --git a/third_party/blink/renderer/core/svg/svg_path_blender.cc b/third_party/blink/renderer/core/svg/svg_path_blender.cc
index 3fd84ceb..feeb3608 100644
--- a/third_party/blink/renderer/core/svg/svg_path_blender.cc
+++ b/third_party/blink/renderer/core/svg/svg_path_blender.cc
@@ -23,7 +23,7 @@
 #include "third_party/blink/renderer/core/svg/svg_path_consumer.h"
 #include "third_party/blink/renderer/core/svg/svg_path_data.h"
 #include "third_party/blink/renderer/platform/animation/animation_utilities.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_path_data.h b/third_party/blink/renderer/core/svg/svg_path_data.h
index 9e4f84ab..c58d9fd 100644
--- a/third_party/blink/renderer/core/svg/svg_path_data.h
+++ b/third_party/blink/renderer/core/svg/svg_path_data.h
@@ -22,7 +22,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_PATH_DATA_H_
 
 #include "third_party/blink/renderer/platform/geometry/float_point.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_path_query.h b/third_party/blink/renderer/core/svg/svg_path_query.h
index c4b5738..5cb68be 100644
--- a/third_party/blink/renderer/core/svg/svg_path_query.h
+++ b/third_party/blink/renderer/core/svg/svg_path_query.h
@@ -21,7 +21,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_PATH_QUERY_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_PATH_QUERY_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_rect.h b/third_party/blink/renderer/core/svg/svg_rect.h
index 9f32545d..e579b27 100644
--- a/third_party/blink/renderer/core/svg/svg_rect.h
+++ b/third_party/blink/renderer/core/svg/svg_rect.h
@@ -23,7 +23,7 @@
 #include "third_party/blink/renderer/core/svg/properties/svg_property_helper.h"
 #include "third_party/blink/renderer/core/svg/svg_parsing_error.h"
 #include "third_party/blink/renderer/platform/geometry/float_rect.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/svg/svg_transform_distance.h b/third_party/blink/renderer/core/svg/svg_transform_distance.h
index 6fa9ab66..3f0bb93 100644
--- a/third_party/blink/renderer/core/svg/svg_transform_distance.h
+++ b/third_party/blink/renderer/core/svg/svg_transform_distance.h
@@ -21,7 +21,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_TRANSFORM_DISTANCE_H_
 
 #include "third_party/blink/renderer/core/svg/svg_transform.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/testing/core_unit_test_helper.h b/third_party/blink/renderer/core/testing/core_unit_test_helper.h
index 51dab05..27033e5 100644
--- a/third_party/blink/renderer/core/testing/core_unit_test_helper.h
+++ b/third_party/blink/renderer/core/testing/core_unit_test_helper.h
@@ -22,7 +22,7 @@
 #include "third_party/blink/renderer/core/testing/page_test_base.h"
 #include "third_party/blink/renderer/core/testing/use_mock_scrollbar_settings.h"
 #include "third_party/blink/renderer/platform/testing/layer_tree_host_embedder.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/testing/dummy_page_holder.h b/third_party/blink/renderer/core/testing/dummy_page_holder.h
index fc6ef6c..e3bb93c 100644
--- a/third_party/blink/renderer/core/testing/dummy_page_holder.h
+++ b/third_party/blink/renderer/core/testing/dummy_page_holder.h
@@ -37,7 +37,7 @@
 #include "third_party/blink/renderer/core/page/page.h"
 #include "third_party/blink/renderer/platform/geometry/int_size.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/testing/gc_object_liveness_observer.h b/third_party/blink/renderer/core/testing/gc_object_liveness_observer.h
index e713a435..651661b 100644
--- a/third_party/blink/renderer/core/testing/gc_object_liveness_observer.h
+++ b/third_party/blink/renderer/core/testing/gc_object_liveness_observer.h
@@ -8,7 +8,7 @@
 #include <memory>
 
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/testing/internal_settings.h b/third_party/blink/renderer/core/testing/internal_settings.h
index 6b87770c..fe1c122 100644
--- a/third_party/blink/renderer/core/testing/internal_settings.h
+++ b/third_party/blink/renderer/core/testing/internal_settings.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/platform/geometry/int_size.h"
 #include "third_party/blink/renderer/platform/graphics/image_animation_policy.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/testing/origin_trials_test_partial.h b/third_party/blink/renderer/core/testing/origin_trials_test_partial.h
index 5ebf225..ca280786 100644
--- a/third_party/blink/renderer/core/testing/origin_trials_test_partial.h
+++ b/third_party/blink/renderer/core/testing/origin_trials_test_partial.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_TESTING_ORIGIN_TRIALS_TEST_PARTIAL_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_TESTING_ORIGIN_TRIALS_TEST_PARTIAL_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/testing/sim/sim_canvas.h b/third_party/blink/renderer/core/testing/sim/sim_canvas.h
index 64a92cd..eaf713f1 100644
--- a/third_party/blink/renderer/core/testing/sim/sim_canvas.h
+++ b/third_party/blink/renderer/core/testing/sim/sim_canvas.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_TESTING_SIM_SIM_CANVAS_H_
 
 #include "third_party/blink/renderer/platform/graphics/color.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 #include "third_party/skia/include/core/SkCanvas.h"
diff --git a/third_party/blink/renderer/core/testing/sim/sim_page.h b/third_party/blink/renderer/core/testing/sim/sim_page.h
index a2c4c57f..4b02b74 100644
--- a/third_party/blink/renderer/core/testing/sim/sim_page.h
+++ b/third_party/blink/renderer/core/testing/sim/sim_page.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_TESTING_SIM_SIM_PAGE_H_
 
 #include "third_party/blink/renderer/platform/heap/persistent.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/timing/event_timing.h b/third_party/blink/renderer/core/timing/event_timing.h
index 9768e3fd..329cb08 100644
--- a/third_party/blink/renderer/core/timing/event_timing.h
+++ b/third_party/blink/renderer/core/timing/event_timing.h
@@ -9,7 +9,7 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/timing/window_performance.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/timing/memory_info.h b/third_party/blink/renderer/core/timing/memory_info.h
index b73e146..665e53b8 100644
--- a/third_party/blink/renderer/core/timing/memory_info.h
+++ b/third_party/blink/renderer/core/timing/memory_info.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace base {
 class TickClock;
diff --git a/third_party/blink/renderer/core/timing/sub_task_attribution.h b/third_party/blink/renderer/core/timing/sub_task_attribution.h
index 781d3fee..af084e9 100644
--- a/third_party/blink/renderer/core/timing/sub_task_attribution.h
+++ b/third_party/blink/renderer/core/timing/sub_task_attribution.h
@@ -9,7 +9,7 @@
 
 #include "third_party/blink/renderer/core/dom/dom_high_res_time_stamp.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/time.h"
 
diff --git a/third_party/blink/renderer/core/timing/time_clamper.h b/third_party/blink/renderer/core/timing/time_clamper.h
index 8f29456..1664bb3 100644
--- a/third_party/blink/renderer/core/timing/time_clamper.h
+++ b/third_party/blink/renderer/core/timing/time_clamper.h
@@ -8,7 +8,7 @@
 #include "base/macros.h"
 #include "build/build_config.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 #include <stdint.h>
 
diff --git a/third_party/blink/renderer/core/workers/installed_scripts_manager.h b/third_party/blink/renderer/core/workers/installed_scripts_manager.h
index 51f80981..62317bf 100644
--- a/third_party/blink/renderer/core/workers/installed_scripts_manager.h
+++ b/third_party/blink/renderer/core/workers/installed_scripts_manager.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/platform/network/content_security_policy_response_headers.h"
 #include "third_party/blink/renderer/platform/network/http_header_map.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/workers/parent_execution_context_task_runners.h b/third_party/blink/renderer/core/workers/parent_execution_context_task_runners.h
index 950e40b..8473491 100644
--- a/third_party/blink/renderer/core/workers/parent_execution_context_task_runners.h
+++ b/third_party/blink/renderer/core/workers/parent_execution_context_task_runners.h
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/core/dom/task_type_traits.h"
 #include "third_party/blink/renderer/core/execution_context/context_lifecycle_observer.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/workers/worker_backing_thread.h b/third_party/blink/renderer/core/workers/worker_backing_thread.h
index 58de18ea..78e0e2b 100644
--- a/third_party/blink/renderer/core/workers/worker_backing_thread.h
+++ b/third_party/blink/renderer/core/workers/worker_backing_thread.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/thread_state.h"
 #include "third_party/blink/renderer/platform/scheduler/public/thread.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/threading_primitives.h"
 #include "v8/include/v8.h"
diff --git a/third_party/blink/renderer/core/workers/worker_classic_script_loader.h b/third_party/blink/renderer/core/workers/worker_classic_script_loader.h
index 255334b..93e2689eb 100644
--- a/third_party/blink/renderer/core/workers/worker_classic_script_loader.h
+++ b/third_party/blink/renderer/core/workers/worker_classic_script_loader.h
@@ -39,7 +39,7 @@
 #include "third_party/blink/renderer/platform/loader/allowed_by_nosniff.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_request.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
diff --git a/third_party/blink/renderer/core/workers/worker_settings.h b/third_party/blink/renderer/core/workers/worker_settings.h
index ccf9549..bb45465 100644
--- a/third_party/blink/renderer/core/workers/worker_settings.h
+++ b/third_party/blink/renderer/core/workers/worker_settings.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/frame/settings.h"
 #include "third_party/blink/renderer/platform/fonts/generic_font_family_settings.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/workers/worker_thread.h b/third_party/blink/renderer/core/workers/worker_thread.h
index 1d41cd4..57064eb 100644
--- a/third_party/blink/renderer/core/workers/worker_thread.h
+++ b/third_party/blink/renderer/core/workers/worker_thread.h
@@ -46,7 +46,7 @@
 #include "third_party/blink/renderer/platform/scheduler/public/post_cross_thread_task.h"
 #include "third_party/blink/renderer/platform/scheduler/public/thread.h"
 #include "third_party/blink/renderer/platform/scheduler/public/worker_scheduler.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
diff --git a/third_party/blink/renderer/core/workers/worklet_module_responses_map.h b/third_party/blink/renderer/core/workers/worklet_module_responses_map.h
index 507f2d3..2e95cd1 100644
--- a/third_party/blink/renderer/core/workers/worklet_module_responses_map.h
+++ b/third_party/blink/renderer/core/workers/worklet_module_responses_map.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/platform/heap/heap_allocator.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl_hash.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/threading_primitives.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/xml/parser/shared_buffer_reader.h b/third_party/blink/renderer/core/xml/parser/shared_buffer_reader.h
index f517788..02218b2 100644
--- a/third_party/blink/renderer/core/xml/parser/shared_buffer_reader.h
+++ b/third_party/blink/renderer/core/xml/parser/shared_buffer_reader.h
@@ -33,7 +33,7 @@
 
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/xml/parser/xml_document_parser.h b/third_party/blink/renderer/core/xml/parser/xml_document_parser.h
index 42e7943a..8239772 100644
--- a/third_party/blink/renderer/core/xml/parser/xml_document_parser.h
+++ b/third_party/blink/renderer/core/xml/parser/xml_document_parser.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_client.h"
 #include "third_party/blink/renderer/platform/text/segmented_string.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
diff --git a/third_party/blink/renderer/core/xml/parser/xml_parser_input.h b/third_party/blink/renderer/core/xml/parser/xml_parser_input.h
index 5e906406..0006ea5 100644
--- a/third_party/blink/renderer/core/xml/parser/xml_parser_input.h
+++ b/third_party/blink/renderer/core/xml/parser/xml_parser_input.h
@@ -31,7 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_XML_PARSER_XML_PARSER_INPUT_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_XML_PARSER_XML_PARSER_INPUT_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/xml/xpath_functions_test.cc b/third_party/blink/renderer/core/xml/xpath_functions_test.cc
index aec2da1..575ff41 100644
--- a/third_party/blink/renderer/core/xml/xpath_functions_test.cc
+++ b/third_party/blink/renderer/core/xml/xpath_functions_test.cc
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/core/xml/xpath_value.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"  // HeapVector, Member, etc.
 #include "third_party/blink/renderer/platform/heap/heap.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 #include <cmath>
 #include <limits>
diff --git a/third_party/blink/renderer/core/xml/xpath_parser.h b/third_party/blink/renderer/core/xml/xpath_parser.h
index 46e69a1..5c05b545 100644
--- a/third_party/blink/renderer/core/xml/xpath_parser.h
+++ b/third_party/blink/renderer/core/xml/xpath_parser.h
@@ -31,7 +31,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/xml/xpath_predicate.h"
 #include "third_party/blink/renderer/core/xml/xpath_step.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
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 5b20d15..aba83d8 100644
--- a/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.cc
+++ b/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.cc
@@ -89,7 +89,7 @@
 #include "third_party/blink/renderer/platform/shared_buffer.h"
 #include "third_party/blink/renderer/platform/weborigin/security_origin.h"
 #include "third_party/blink/renderer/platform/weborigin/security_policy.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
diff --git a/third_party/blink/renderer/core/xmlhttprequest/xml_http_request_progress_event_throttle.h b/third_party/blink/renderer/core/xmlhttprequest/xml_http_request_progress_event_throttle.h
index d8b7719a..ac02446 100644
--- a/third_party/blink/renderer/core/xmlhttprequest/xml_http_request_progress_event_throttle.h
+++ b/third_party/blink/renderer/core/xmlhttprequest/xml_http_request_progress_event_throttle.h
@@ -30,7 +30,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/timer.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/devtools/front_end/components/ImagePreview.js b/third_party/blink/renderer/devtools/front_end/components/ImagePreview.js
index aa8c4de6..29af920 100644
--- a/third_party/blink/renderer/devtools/front_end/components/ImagePreview.js
+++ b/third_party/blink/renderer/devtools/front_end/components/ImagePreview.js
@@ -49,9 +49,12 @@
       const renderedHeight = precomputedFeatures ? precomputedFeatures.renderedHeight : intrinsicHeight;
       let description;
       if (showDimensions) {
-        description = ls`${renderedWidth} \xd7 ${renderedHeight} pixels`;
-        if (renderedHeight !== intrinsicHeight || renderedWidth !== intrinsicWidth)
-          description += ls` (intrinsic: ${intrinsicWidth} \xd7 ${intrinsicHeight} pixels)`;
+        if (renderedHeight !== intrinsicHeight || renderedWidth !== intrinsicWidth) {
+          description = ls`${renderedWidth} \xd7 ${renderedHeight} pixels (intrinsic: ${intrinsicWidth} \xd7 ${
+              intrinsicHeight} pixels)`;
+        } else {
+          description = ls`${renderedWidth} \xd7 ${renderedHeight} pixels`;
+        }
       }
 
       container.createChild('tr').createChild('td', 'image-container').appendChild(imageElement);
diff --git a/third_party/blink/renderer/devtools/front_end/components/components_strings.grdp b/third_party/blink/renderer/devtools/front_end/components/components_strings.grdp
index 599e065..e0d6107 100644
--- a/third_party/blink/renderer/devtools/front_end/components/components_strings.grdp
+++ b/third_party/blink/renderer/devtools/front_end/components/components_strings.grdp
@@ -15,6 +15,9 @@
   <message name="IDS_DEVTOOLS_7f52f5f786eb8d9bf9e56ce89fb3db3a" desc="">
     Show 1 more frame
   </message>
+  <message name="IDS_DEVTOOLS_908ae571a925e675f5c55619aa16a99b" desc="">
+    <ph name="RENDEREDWIDTH">$1s</ph> × <ph name="RENDEREDHEIGHT">$2s</ph> pixels (intrinsic: <ph name="INTRINSICWIDTH">$3s</ph> × <ph name="INTRINSICHEIGHT">$4s</ph> pixels)
+  </message>
   <message name="IDS_DEVTOOLS_93898e12951c906e5286ccb36d980ce5" desc="">
     Blackbox script
   </message>
@@ -24,9 +27,6 @@
   <message name="IDS_DEVTOOLS_a498f0751d1221223efb0defc71cc804" desc="">
     <ph name="RENDEREDWIDTH">$1s</ph> × <ph name="RENDEREDHEIGHT">$2s</ph> pixels
   </message>
-  <message name="IDS_DEVTOOLS_b836d99a391a4d2baf6624f8f4acbfc0" desc="">
-    ''' (intrinsic: <ph name="INTRINSICWIDTH">$1s</ph> × <ph name="INTRINSICHEIGHT">$2s</ph> pixels)
-  </message>
   <message name="IDS_DEVTOOLS_b9dee6bade160c89fb7f0e539d453513" desc="">
     Dock to bottom
   </message>
diff --git a/third_party/blink/renderer/modules/accessibility/ax_position.h b/third_party/blink/renderer/modules/accessibility/ax_position.h
index d1861e2..5aff37591 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_position.h
+++ b/third_party/blink/renderer/modules/accessibility/ax_position.h
@@ -14,7 +14,7 @@
 #include "third_party/blink/renderer/core/editing/text_affinity.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/accessibility/ax_range.h b/third_party/blink/renderer/modules/accessibility/ax_range.h
index b5cd3b7..74303f3 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_range.h
+++ b/third_party/blink/renderer/modules/accessibility/ax_range.h
@@ -12,7 +12,7 @@
 #include <base/logging.h>
 #include "third_party/blink/renderer/modules/accessibility/ax_position.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/accessibility/ax_relation_cache.h b/third_party/blink/renderer/modules/accessibility/ax_relation_cache.h
index 78d1ef0..ab482f4f 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_relation_cache.h
+++ b/third_party/blink/renderer/modules/accessibility/ax_relation_cache.h
@@ -8,7 +8,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 
diff --git a/third_party/blink/renderer/modules/accessibility/ax_selection.h b/third_party/blink/renderer/modules/accessibility/ax_selection.h
index 24dc036..bca557a84 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_selection.h
+++ b/third_party/blink/renderer/modules/accessibility/ax_selection.h
@@ -16,7 +16,7 @@
 #include "third_party/blink/renderer/core/html/forms/text_control_element.h"
 #include "third_party/blink/renderer/modules/accessibility/ax_position.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/accessibility/ax_sparse_attribute_setter.h b/third_party/blink/renderer/modules/accessibility/ax_sparse_attribute_setter.h
index f6bc656..75f088f 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_sparse_attribute_setter.h
+++ b/third_party/blink/renderer/modules/accessibility/ax_sparse_attribute_setter.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/aom/accessible_node.h"
 #include "third_party/blink/renderer/core/aom/accessible_node_list.h"
 #include "third_party/blink/renderer/modules/accessibility/ax_object.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/accessibility/testing/accessibility_selection_test.h b/third_party/blink/renderer/modules/accessibility/testing/accessibility_selection_test.h
index a95a336..8d605e0 100644
--- a/third_party/blink/renderer/modules/accessibility/testing/accessibility_selection_test.h
+++ b/third_party/blink/renderer/modules/accessibility/testing/accessibility_selection_test.h
@@ -8,7 +8,7 @@
 #include <string>
 
 #include "third_party/blink/renderer/modules/accessibility/testing/accessibility_test.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/accessibility/testing/accessibility_test.h b/third_party/blink/renderer/modules/accessibility/testing/accessibility_test.h
index bd126b23..7461c5b 100644
--- a/third_party/blink/renderer/modules/accessibility/testing/accessibility_test.h
+++ b/third_party/blink/renderer/modules/accessibility/testing/accessibility_test.h
@@ -11,7 +11,7 @@
 
 #include "third_party/blink/renderer/core/accessibility/ax_context.h"
 #include "third_party/blink/renderer/core/testing/core_unit_test_helper.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/accessibility/testing/internals_accessibility.h b/third_party/blink/renderer/modules/accessibility/testing/internals_accessibility.h
index 7a3ff03..050daa5 100644
--- a/third_party/blink/renderer/modules/accessibility/testing/internals_accessibility.h
+++ b/third_party/blink/renderer/modules/accessibility/testing/internals_accessibility.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_ACCESSIBILITY_TESTING_INTERNALS_ACCESSIBILITY_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_ACCESSIBILITY_TESTING_INTERNALS_ACCESSIBILITY_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/app_banner/app_banner_controller.h b/third_party/blink/renderer/modules/app_banner/app_banner_controller.h
index d3ba895..2143c54 100644
--- a/third_party/blink/renderer/modules/app_banner/app_banner_controller.h
+++ b/third_party/blink/renderer/modules/app_banner/app_banner_controller.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/public/mojom/app_banner/app_banner.mojom-blink.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/background_fetch/service_worker_global_scope_background_fetch.h b/third_party/blink/renderer/modules/background_fetch/service_worker_global_scope_background_fetch.h
index a5b970d..436f955 100644
--- a/third_party/blink/renderer/modules/background_fetch/service_worker_global_scope_background_fetch.h
+++ b/third_party/blink/renderer/modules/background_fetch/service_worker_global_scope_background_fetch.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_BACKGROUND_FETCH_SERVICE_WORKER_GLOBAL_SCOPE_BACKGROUND_FETCH_H_
 
 #include "third_party/blink/renderer/core/dom/events/event_target.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/battery/battery_status.h b/third_party/blink/renderer/modules/battery/battery_status.h
index 0f7922f..e1796cf 100644
--- a/third_party/blink/renderer/modules/battery/battery_status.h
+++ b/third_party/blink/renderer/modules/battery/battery_status.h
@@ -6,7 +6,7 @@
 #define BLINK_MODULES_BATTERY_BATTERY_STATUS_H_
 
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 
 #include <cmath>
diff --git a/third_party/blink/renderer/modules/bluetooth/bluetooth_error.h b/third_party/blink/renderer/modules/bluetooth/bluetooth_error.h
index 1ff9b08..a884500 100644
--- a/third_party/blink/renderer/modules/bluetooth/bluetooth_error.h
+++ b/third_party/blink/renderer/modules/bluetooth/bluetooth_error.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/public/mojom/bluetooth/web_bluetooth.mojom-blink.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/bluetooth/bluetooth_remote_gatt_utils.h b/third_party/blink/renderer/modules/bluetooth/bluetooth_remote_gatt_utils.h
index 4523196d..d20a309 100644
--- a/third_party/blink/renderer/modules/bluetooth/bluetooth_remote_gatt_utils.h
+++ b/third_party/blink/renderer/modules/bluetooth/bluetooth_remote_gatt_utils.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_BLUETOOTH_BLUETOOTH_REMOTE_GATT_UTILS_H_
 
 #include "third_party/blink/renderer/core/typed_arrays/dom_data_view.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/cache_storage/cache_storage_error.h b/third_party/blink/renderer/modules/cache_storage/cache_storage_error.h
index a2befd1e..6d2bb59a 100644
--- a/third_party/blink/renderer/modules/cache_storage/cache_storage_error.h
+++ b/third_party/blink/renderer/modules/cache_storage/cache_storage_error.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_CACHE_STORAGE_CACHE_STORAGE_ERROR_H_
 
 #include "third_party/blink/public/mojom/cache_storage/cache_storage.mojom-blink.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/cache_storage/global_cache_storage.h b/third_party/blink/renderer/modules/cache_storage/global_cache_storage.h
index 1d017bb..d20a6ec28 100644
--- a/third_party/blink/renderer/modules/cache_storage/global_cache_storage.h
+++ b/third_party/blink/renderer/modules/cache_storage/global_cache_storage.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_CACHE_STORAGE_GLOBAL_CACHE_STORAGE_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_CACHE_STORAGE_GLOBAL_CACHE_STORAGE_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/cache_storage/inspector_cache_storage_agent.cc b/third_party/blink/renderer/modules/cache_storage/inspector_cache_storage_agent.cc
index 7c5119a..d540fd9 100644
--- a/third_party/blink/renderer/modules/cache_storage/inspector_cache_storage_agent.cc
+++ b/third_party/blink/renderer/modules/cache_storage/inspector_cache_storage_agent.cc
@@ -32,7 +32,7 @@
 #include "third_party/blink/renderer/platform/shared_buffer.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/weborigin/security_origin.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/time.h"
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_path.h b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_path.h
index 38ede735..27fb15f4 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_path.h
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_path.h
@@ -33,7 +33,7 @@
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/graphics/path.h"
 #include "third_party/blink/renderer/platform/transforms/affine_transform.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/clip_list.h b/third_party/blink/renderer/modules/canvas/canvas2d/clip_list.h
index 6dc8547d..d8b958d0 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/clip_list.h
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/clip_list.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_CANVAS_CANVAS2D_CLIP_LIST_H_
 
 #include "third_party/blink/renderer/platform/graphics/graphics_types.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 class SkPath;
diff --git a/third_party/blink/renderer/modules/canvas/offscreencanvas/offscreen_canvas_module.h b/third_party/blink/renderer/modules/canvas/offscreencanvas/offscreen_canvas_module.h
index c574a580..145092b 100644
--- a/third_party/blink/renderer/modules/canvas/offscreencanvas/offscreen_canvas_module.h
+++ b/third_party/blink/renderer/modules/canvas/offscreencanvas/offscreen_canvas_module.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/cookie_store/service_worker_global_scope_cookie_store.h b/third_party/blink/renderer/modules/cookie_store/service_worker_global_scope_cookie_store.h
index 3b8c598..ce9a7188 100644
--- a/third_party/blink/renderer/modules/cookie_store/service_worker_global_scope_cookie_store.h
+++ b/third_party/blink/renderer/modules/cookie_store/service_worker_global_scope_cookie_store.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_COOKIE_STORE_SERVICE_WORKER_GLOBAL_SCOPE_COOKIE_STORE_H_
 
 #include "third_party/blink/renderer/core/dom/events/event_target.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/cookie_store/window_cookie_store.h b/third_party/blink/renderer/modules/cookie_store/window_cookie_store.h
index aed59ca4..e0ce5c5 100644
--- a/third_party/blink/renderer/modules/cookie_store/window_cookie_store.h
+++ b/third_party/blink/renderer/modules/cookie_store/window_cookie_store.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_COOKIE_STORE_WINDOW_COOKIE_STORE_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_COOKIE_STORE_WINDOW_COOKIE_STORE_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/credentialmanager/scoped_promise_resolver.h b/third_party/blink/renderer/modules/credentialmanager/scoped_promise_resolver.h
index 4875499..63a9866 100644
--- a/third_party/blink/renderer/modules/credentialmanager/scoped_promise_resolver.h
+++ b/third_party/blink/renderer/modules/credentialmanager/scoped_promise_resolver.h
@@ -7,7 +7,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/crypto/normalize_algorithm.cc b/third_party/blink/renderer/modules/crypto/normalize_algorithm.cc
index 47f23db..c691635 100644
--- a/third_party/blink/renderer/modules/crypto/normalize_algorithm.cc
+++ b/third_party/blink/renderer/modules/crypto/normalize_algorithm.cc
@@ -45,7 +45,7 @@
 #include "third_party/blink/renderer/core/typed_arrays/dom_array_piece.h"
 #include "third_party/blink/renderer/core/typed_arrays/dom_typed_array.h"
 #include "third_party/blink/renderer/modules/crypto/crypto_utilities.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/math_extras.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/modules/crypto/normalize_algorithm.h b/third_party/blink/renderer/modules/crypto/normalize_algorithm.h
index 527807e..7252959 100644
--- a/third_party/blink/renderer/modules/crypto/normalize_algorithm.h
+++ b/third_party/blink/renderer/modules/crypto/normalize_algorithm.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/public/platform/web_string.h"
 #include "third_party/blink/renderer/bindings/modules/v8/dictionary_or_string.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
diff --git a/third_party/blink/renderer/modules/document_metadata/copyless_paste_extractor.h b/third_party/blink/renderer/modules/document_metadata/copyless_paste_extractor.h
index 7adc74a..2f6ec20 100644
--- a/third_party/blink/renderer/modules/document_metadata/copyless_paste_extractor.h
+++ b/third_party/blink/renderer/modules/document_metadata/copyless_paste_extractor.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/public/mojom/document_metadata/copyless_paste.mojom-blink.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/encryptedmedia/encrypted_media_utils.h b/third_party/blink/renderer/modules/encryptedmedia/encrypted_media_utils.h
index 81b7415..a3af818 100644
--- a/third_party/blink/renderer/modules/encryptedmedia/encrypted_media_utils.h
+++ b/third_party/blink/renderer/modules/encryptedmedia/encrypted_media_utils.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/public/platform/web_encrypted_media_key_information.h"
 #include "third_party/blink/public/platform/web_encrypted_media_types.h"
 #include "third_party/blink/public/platform/web_media_key_system_configuration.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/encryptedmedia/media_keys_get_status_for_policy.h b/third_party/blink/renderer/modules/encryptedmedia/media_keys_get_status_for_policy.h
index 81156ff..246e7a5 100644
--- a/third_party/blink/renderer/modules/encryptedmedia/media_keys_get_status_for_policy.h
+++ b/third_party/blink/renderer/modules/encryptedmedia/media_keys_get_status_for_policy.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_ENCRYPTEDMEDIA_MEDIA_KEYS_GET_STATUS_FOR_POLICY_H_
 
 #include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/filesystem/data_transfer_item_file_system.h b/third_party/blink/renderer/modules/filesystem/data_transfer_item_file_system.h
index 10b169e..b8f437e 100644
--- a/third_party/blink/renderer/modules/filesystem/data_transfer_item_file_system.h
+++ b/third_party/blink/renderer/modules/filesystem/data_transfer_item_file_system.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_FILESYSTEM_DATA_TRANSFER_ITEM_FILE_SYSTEM_H_
 
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/filesystem/dev_tools_host_file_system.h b/third_party/blink/renderer/modules/filesystem/dev_tools_host_file_system.h
index 8925e1b..46540a5b 100644
--- a/third_party/blink/renderer/modules/filesystem/dev_tools_host_file_system.h
+++ b/third_party/blink/renderer/modules/filesystem/dev_tools_host_file_system.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_FILESYSTEM_DEV_TOOLS_HOST_FILE_SYSTEM_H_
 
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/filesystem/dom_file_path.h b/third_party/blink/renderer/modules/filesystem/dom_file_path.h
index bf1131e..6d9ac4c66 100644
--- a/third_party/blink/renderer/modules/filesystem/dom_file_path.h
+++ b/third_party/blink/renderer/modules/filesystem/dom_file_path.h
@@ -31,7 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_FILESYSTEM_DOM_FILE_PATH_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_FILESYSTEM_DOM_FILE_PATH_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/filesystem/dom_window_file_system.h b/third_party/blink/renderer/modules/filesystem/dom_window_file_system.h
index b367dcb..5ac7f814 100644
--- a/third_party/blink/renderer/modules/filesystem/dom_window_file_system.h
+++ b/third_party/blink/renderer/modules/filesystem/dom_window_file_system.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_FILESYSTEM_DOM_WINDOW_FILE_SYSTEM_H_
 
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/filesystem/file_system_client.h b/third_party/blink/renderer/modules/filesystem/file_system_client.h
index 3a806e4..7288beb2 100644
--- a/third_party/blink/renderer/modules/filesystem/file_system_client.h
+++ b/third_party/blink/renderer/modules/filesystem/file_system_client.h
@@ -37,7 +37,7 @@
 #include "base/macros.h"
 #include "third_party/blink/public/mojom/filesystem/file_system.mojom-blink.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/filesystem/html_input_element_file_system.h b/third_party/blink/renderer/modules/filesystem/html_input_element_file_system.h
index 8ed5a23c..c47488f 100644
--- a/third_party/blink/renderer/modules/filesystem/html_input_element_file_system.h
+++ b/third_party/blink/renderer/modules/filesystem/html_input_element_file_system.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_FILESYSTEM_HTML_INPUT_ELEMENT_FILE_SYSTEM_H_
 
 #include "third_party/blink/renderer/modules/filesystem/entry_heap_vector.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/gamepad/gamepad_comparisons.h b/third_party/blink/renderer/modules/gamepad/gamepad_comparisons.h
index 511f73e..5f2e1db 100644
--- a/third_party/blink/renderer/modules/gamepad/gamepad_comparisons.h
+++ b/third_party/blink/renderer/modules/gamepad/gamepad_comparisons.h
@@ -10,7 +10,7 @@
 #include "device/gamepad/public/cpp/gamepads.h"
 #include "third_party/blink/renderer/modules/gamepad/gamepad_list.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/indexeddb/global_indexed_db.h b/third_party/blink/renderer/modules/indexeddb/global_indexed_db.h
index 9ebad86c..f1acb66 100644
--- a/third_party/blink/renderer/modules/indexeddb/global_indexed_db.h
+++ b/third_party/blink/renderer/modules/indexeddb/global_indexed_db.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_INDEXEDDB_GLOBAL_INDEXED_DB_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_INDEXEDDB_GLOBAL_INDEXED_DB_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_event_dispatcher.h b/third_party/blink/renderer/modules/indexeddb/idb_event_dispatcher.h
index d9f5685..728102f 100644
--- a/third_party/blink/renderer/modules/indexeddb/idb_event_dispatcher.h
+++ b/third_party/blink/renderer/modules/indexeddb/idb_event_dispatcher.h
@@ -32,7 +32,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/core/dom/events/event_target.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_factory.cc b/third_party/blink/renderer/modules/indexeddb/idb_factory.cc
index f50de00..0608709 100644
--- a/third_party/blink/renderer/modules/indexeddb/idb_factory.cc
+++ b/third_party/blink/renderer/modules/indexeddb/idb_factory.cc
@@ -61,7 +61,7 @@
 #include "third_party/blink/renderer/platform/histogram.h"
 #include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
 #include "third_party/blink/renderer/platform/weborigin/security_origin.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_key.h b/third_party/blink/renderer/modules/indexeddb/idb_key.h
index 96d626e2..819974c 100644
--- a/third_party/blink/renderer/modules/indexeddb/idb_key.h
+++ b/third_party/blink/renderer/modules/indexeddb/idb_key.h
@@ -35,7 +35,7 @@
 #include "third_party/blink/public/mojom/indexeddb/indexeddb.mojom-shared.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/shared_buffer.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_key_path.h b/third_party/blink/renderer/modules/indexeddb/idb_key_path.h
index c31407fc..3a9dbe2 100644
--- a/third_party/blink/renderer/modules/indexeddb/idb_key_path.h
+++ b/third_party/blink/renderer/modules/indexeddb/idb_key_path.h
@@ -29,7 +29,7 @@
 #include "third_party/blink/public/mojom/indexeddb/indexeddb.mojom-shared.h"
 #include "third_party/blink/renderer/bindings/core/v8/string_or_string_sequence.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_metadata.h b/third_party/blink/renderer/modules/indexeddb/idb_metadata.h
index 6bda5a22..8425d65 100644
--- a/third_party/blink/renderer/modules/indexeddb/idb_metadata.h
+++ b/third_party/blink/renderer/modules/indexeddb/idb_metadata.h
@@ -31,7 +31,7 @@
 
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/modules/indexeddb/idb_key_path.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_request_loader.h b/third_party/blink/renderer/modules/indexeddb/idb_request_loader.h
index a6d5dd98..7d242af 100644
--- a/third_party/blink/renderer/modules/indexeddb/idb_request_loader.h
+++ b/third_party/blink/renderer/modules/indexeddb/idb_request_loader.h
@@ -8,7 +8,7 @@
 #include <memory>
 
 #include "third_party/blink/renderer/core/fileapi/file_reader_loader_client.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_request_queue_item.h b/third_party/blink/renderer/modules/indexeddb/idb_request_queue_item.h
index 16b7ca1..6ddc872 100644
--- a/third_party/blink/renderer/modules/indexeddb/idb_request_queue_item.h
+++ b/third_party/blink/renderer/modules/indexeddb/idb_request_queue_item.h
@@ -9,7 +9,7 @@
 
 #include "base/callback.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_value_wrapping.h b/third_party/blink/renderer/modules/indexeddb/idb_value_wrapping.h
index b2ff10e..990e9b5f 100644
--- a/third_party/blink/renderer/modules/indexeddb/idb_value_wrapping.h
+++ b/third_party/blink/renderer/modules/indexeddb/idb_value_wrapping.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/shared_buffer.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_view.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 #include "v8/include/v8.h"
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_value_wrapping_test.cc b/third_party/blink/renderer/modules/indexeddb/idb_value_wrapping_test.cc
index 04d80067..36116bf2 100644
--- a/third_party/blink/renderer/modules/indexeddb/idb_value_wrapping_test.cc
+++ b/third_party/blink/renderer/modules/indexeddb/idb_value_wrapping_test.cc
@@ -15,7 +15,7 @@
 #include "third_party/blink/renderer/modules/indexeddb/idb_key.h"
 #include "third_party/blink/renderer/modules/indexeddb/idb_key_path.h"
 #include "third_party/blink/renderer/modules/indexeddb/idb_value.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/modules/indexeddb/indexed_db_dispatcher.h b/third_party/blink/renderer/modules/indexeddb/indexed_db_dispatcher.h
index 85a6e27..d096380 100644
--- a/third_party/blink/renderer/modules/indexeddb/indexed_db_dispatcher.h
+++ b/third_party/blink/renderer/modules/indexeddb/indexed_db_dispatcher.h
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/modules/indexeddb/indexed_db_database_callbacks_impl.h"
 #include "third_party/blink/renderer/modules/indexeddb/web_idb_callbacks.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/thread_specific.h"
 
diff --git a/third_party/blink/renderer/modules/indexeddb/web_idb_callbacks_impl.h b/third_party/blink/renderer/modules/indexeddb/web_idb_callbacks_impl.h
index 981f9e2..b189a947 100644
--- a/third_party/blink/renderer/modules/indexeddb/web_idb_callbacks_impl.h
+++ b/third_party/blink/renderer/modules/indexeddb/web_idb_callbacks_impl.h
@@ -35,7 +35,7 @@
 #include "third_party/blink/public/mojom/indexeddb/indexeddb.mojom-blink.h"
 #include "third_party/blink/renderer/modules/indexeddb/web_idb_callbacks.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/indexeddb/web_idb_database_callbacks_impl.h b/third_party/blink/renderer/modules/indexeddb/web_idb_database_callbacks_impl.h
index 8485b35..628240f 100644
--- a/third_party/blink/renderer/modules/indexeddb/web_idb_database_callbacks_impl.h
+++ b/third_party/blink/renderer/modules/indexeddb/web_idb_database_callbacks_impl.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/renderer/modules/indexeddb/idb_database_callbacks.h"
 #include "third_party/blink/renderer/modules/indexeddb/web_idb_database_callbacks.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/launch/dom_window_launch_params.h b/third_party/blink/renderer/modules/launch/dom_window_launch_params.h
index b65f742..ff99bdb 100644
--- a/third_party/blink/renderer/modules/launch/dom_window_launch_params.h
+++ b/third_party/blink/renderer/modules/launch/dom_window_launch_params.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/platform/heap/heap.h"
 #include "third_party/blink/renderer/platform/heap/heap_allocator.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/locks/navigator_locks.h b/third_party/blink/renderer/modules/locks/navigator_locks.h
index a03cd64..600a0fd 100644
--- a/third_party/blink/renderer/modules/locks/navigator_locks.h
+++ b/third_party/blink/renderer/modules/locks/navigator_locks.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_LOCKS_NAVIGATOR_LOCKS_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_LOCKS_NAVIGATOR_LOCKS_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_elements_helper.h b/third_party/blink/renderer/modules/media_controls/elements/media_control_elements_helper.h
index a96e365b..a28ebda 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_elements_helper.h
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_elements_helper.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIA_CONTROLS_ELEMENTS_MEDIA_CONTROL_ELEMENTS_HELPER_H_
 
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace WTF {
 class AtomicString;
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_metrics.h b/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_metrics.h
index ae1c1af5..aa405a91 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_metrics.h
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_timeline_metrics.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/public/common/screen_orientation/web_screen_orientation_type.h"
 #include "third_party/blink/renderer/platform/histogram.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/time.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/media_controls/media_controls_shared_helper.h b/third_party/blink/renderer/modules/media_controls/media_controls_shared_helper.h
index 4920fef..82c0ab64 100644
--- a/third_party/blink/renderer/modules/media_controls/media_controls_shared_helper.h
+++ b/third_party/blink/renderer/modules/media_controls/media_controls_shared_helper.h
@@ -8,7 +8,7 @@
 #include "base/callback.h"
 #include "base/optional.h"
 #include "third_party/blink/renderer/core/dom/events/native_event_listener.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/mediacapturefromelement/html_canvas_element_capture.h b/third_party/blink/renderer/modules/mediacapturefromelement/html_canvas_element_capture.h
index 13cb910..7efecae4 100644
--- a/third_party/blink/renderer/modules/mediacapturefromelement/html_canvas_element_capture.h
+++ b/third_party/blink/renderer/modules/mediacapturefromelement/html_canvas_element_capture.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/core/html/canvas/html_canvas_element.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/mediacapturefromelement/html_media_element_capture.h b/third_party/blink/renderer/modules/mediacapturefromelement/html_media_element_capture.h
index 5865116..2cd63ad 100644
--- a/third_party/blink/renderer/modules/mediacapturefromelement/html_media_element_capture.h
+++ b/third_party/blink/renderer/modules/mediacapturefromelement/html_media_element_capture.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIACAPTUREFROMELEMENT_HTML_MEDIA_ELEMENT_CAPTURE_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIACAPTUREFROMELEMENT_HTML_MEDIA_ELEMENT_CAPTURE_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/mediasession/media_metadata_sanitizer.h b/third_party/blink/renderer/modules/mediasession/media_metadata_sanitizer.h
index afaf74f3..28c0d45 100644
--- a/third_party/blink/renderer/modules/mediasession/media_metadata_sanitizer.h
+++ b/third_party/blink/renderer/modules/mediasession/media_metadata_sanitizer.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIASESSION_MEDIA_METADATA_SANITIZER_H_
 
 #include "third_party/blink/public/mojom/mediasession/media_session.mojom-blink.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/mediasource/html_video_element_media_source.h b/third_party/blink/renderer/modules/mediasource/html_video_element_media_source.h
index f3176b98..a3ff449 100644
--- a/third_party/blink/renderer/modules/mediasource/html_video_element_media_source.h
+++ b/third_party/blink/renderer/modules/mediasource/html_video_element_media_source.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIASOURCE_HTML_VIDEO_ELEMENT_MEDIA_SOURCE_H_
 
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/mediasource/source_buffer_track_base_supplement.h b/third_party/blink/renderer/modules/mediasource/source_buffer_track_base_supplement.h
index 832a523a..8b30e0f 100644
--- a/third_party/blink/renderer/modules/mediasource/source_buffer_track_base_supplement.h
+++ b/third_party/blink/renderer/modules/mediasource/source_buffer_track_base_supplement.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIASOURCE_SOURCE_BUFFER_TRACK_BASE_SUPPLEMENT_H_
 
 #include "third_party/blink/renderer/platform/supplementable.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/mediasource/url_media_source.h b/third_party/blink/renderer/modules/mediasource/url_media_source.h
index 4090ef9..24d0f99 100644
--- a/third_party/blink/renderer/modules/mediasource/url_media_source.h
+++ b/third_party/blink/renderer/modules/mediasource/url_media_source.h
@@ -31,7 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIASOURCE_URL_MEDIA_SOURCE_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIASOURCE_URL_MEDIA_SOURCE_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/mediastream/media_error_state.h b/third_party/blink/renderer/modules/mediastream/media_error_state.h
index 66e882c..34ba5342 100644
--- a/third_party/blink/renderer/modules/mediastream/media_error_state.h
+++ b/third_party/blink/renderer/modules/mediastream/media_error_state.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/bindings/modules/v8/dom_exception_or_overconstrained_error.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_track_content_hint.h b/third_party/blink/renderer/modules/mediastream/media_stream_track_content_hint.h
index 688eb6f9..30551a8 100644
--- a/third_party/blink/renderer/modules/mediastream/media_stream_track_content_hint.h
+++ b/third_party/blink/renderer/modules/mediastream/media_stream_track_content_hint.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIASTREAM_MEDIA_STREAM_TRACK_CONTENT_HINT_H_
 
 #include "third_party/blink/renderer/modules/mediastream/media_stream_track.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/mediastream/navigator_media_stream.h b/third_party/blink/renderer/modules/mediastream/navigator_media_stream.h
index 307b164..80ff37c 100644
--- a/third_party/blink/renderer/modules/mediastream/navigator_media_stream.h
+++ b/third_party/blink/renderer/modules/mediastream/navigator_media_stream.h
@@ -22,7 +22,7 @@
 
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/mediastream/testing/internals_media_stream.h b/third_party/blink/renderer/modules/mediastream/testing/internals_media_stream.h
index 03b9f3b4..2875479 100644
--- a/third_party/blink/renderer/modules/mediastream/testing/internals_media_stream.h
+++ b/third_party/blink/renderer/modules/mediastream/testing/internals_media_stream.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIASTREAM_TESTING_INTERNALS_MEDIA_STREAM_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIASTREAM_TESTING_INTERNALS_MEDIA_STREAM_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/mediastream/user_media_client.h b/third_party/blink/renderer/modules/mediastream/user_media_client.h
index 4b6675a..96b17db 100644
--- a/third_party/blink/renderer/modules/mediastream/user_media_client.h
+++ b/third_party/blink/renderer/modules/mediastream/user_media_client.h
@@ -37,7 +37,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/modules/mediastream/user_media_client.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/native_file_system/window_native_file_system.h b/third_party/blink/renderer/modules/native_file_system/window_native_file_system.h
index 821ed65..c72d8e3 100644
--- a/third_party/blink/renderer/modules/native_file_system/window_native_file_system.h
+++ b/third_party/blink/renderer/modules/native_file_system/window_native_file_system.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_NATIVE_FILE_SYSTEM_WINDOW_NATIVE_FILE_SYSTEM_H_
 
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/nfc/nfc_error.h b/third_party/blink/renderer/modules/nfc/nfc_error.h
index 3023cc2f..82077749 100644
--- a/third_party/blink/renderer/modules/nfc/nfc_error.h
+++ b/third_party/blink/renderer/modules/nfc/nfc_error.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_NFC_NFC_ERROR_H_
 
 #include "services/device/public/mojom/nfc.mojom-blink.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/notifications/service_worker_global_scope_notifications.h b/third_party/blink/renderer/modules/notifications/service_worker_global_scope_notifications.h
index 9e53798..bc37ecb 100644
--- a/third_party/blink/renderer/modules/notifications/service_worker_global_scope_notifications.h
+++ b/third_party/blink/renderer/modules/notifications/service_worker_global_scope_notifications.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_NOTIFICATIONS_SERVICE_WORKER_GLOBAL_SCOPE_NOTIFICATIONS_H_
 
 #include "third_party/blink/renderer/core/dom/events/event_target.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/payments/payment_app_service_worker_global_scope.h b/third_party/blink/renderer/modules/payments/payment_app_service_worker_global_scope.h
index d702ec3..5e2d5f0 100644
--- a/third_party/blink/renderer/modules/payments/payment_app_service_worker_global_scope.h
+++ b/third_party/blink/renderer/modules/payments/payment_app_service_worker_global_scope.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_PAYMENTS_PAYMENT_APP_SERVICE_WORKER_GLOBAL_SCOPE_H_
 
 #include "third_party/blink/renderer/core/dom/events/event_target.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/payments/payment_event_data_conversion.h b/third_party/blink/renderer/modules/payments/payment_event_data_conversion.h
index c6c1deb..7fd5625a 100644
--- a/third_party/blink/renderer/modules/payments/payment_event_data_conversion.h
+++ b/third_party/blink/renderer/modules/payments/payment_event_data_conversion.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/public/mojom/payments/payment_app.mojom-blink.h"
 #include "third_party/blink/renderer/modules/payments/can_make_payment_event_init.h"
 #include "third_party/blink/renderer/modules/payments/payment_request_event_init.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/payments/payment_handler_utils.h b/third_party/blink/renderer/modules/payments/payment_handler_utils.h
index b47f52e..63a4fae 100644
--- a/third_party/blink/renderer/modules/payments/payment_handler_utils.h
+++ b/third_party/blink/renderer/modules/payments/payment_handler_utils.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_PAYMENTS_PAYMENT_HANDLER_UTILS_H_
 
 #include "third_party/blink/public/mojom/service_worker/service_worker_error_type.mojom-blink.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/payments/payment_request_details_test.cc b/third_party/blink/renderer/modules/payments/payment_request_details_test.cc
index 772ad9dc..1516417 100644
--- a/third_party/blink/renderer/modules/payments/payment_request_details_test.cc
+++ b/third_party/blink/renderer/modules/payments/payment_request_details_test.cc
@@ -14,7 +14,7 @@
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
 #include "third_party/blink/renderer/platform/weborigin/security_origin.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 namespace {
diff --git a/third_party/blink/renderer/modules/payments/payment_test_helper.h b/third_party/blink/renderer/modules/payments/payment_test_helper.h
index dad9726..2909873 100644
--- a/third_party/blink/renderer/modules/payments/payment_test_helper.h
+++ b/third_party/blink/renderer/modules/payments/payment_test_helper.h
@@ -15,7 +15,7 @@
 #include "third_party/blink/renderer/modules/payments/payment_shipping_option.h"
 #include "third_party/blink/renderer/platform/heap/heap_allocator.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/modules/payments/payments_validators.h b/third_party/blink/renderer/modules/payments/payments_validators.h
index a47ae15..45c8def3 100644
--- a/third_party/blink/renderer/modules/payments/payments_validators.h
+++ b/third_party/blink/renderer/modules/payments/payments_validators.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/public/mojom/payments/payment_request.mojom-blink.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/peerconnection/adapters/ice_transport_adapter.h b/third_party/blink/renderer/modules/peerconnection/adapters/ice_transport_adapter.h
index bcfbcca..8db89c3 100644
--- a/third_party/blink/renderer/modules/peerconnection/adapters/ice_transport_adapter.h
+++ b/third_party/blink/renderer/modules/peerconnection/adapters/ice_transport_adapter.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_PEERCONNECTION_ADAPTERS_ICE_TRANSPORT_ADAPTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_PEERCONNECTION_ADAPTERS_ICE_TRANSPORT_ADAPTER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/webrtc/p2p/base/p2p_transport_channel.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/peerconnection/adapters/ice_transport_proxy.h b/third_party/blink/renderer/modules/peerconnection/adapters/ice_transport_proxy.h
index cbbd9a3..1fdcabc3 100644
--- a/third_party/blink/renderer/modules/peerconnection/adapters/ice_transport_proxy.h
+++ b/third_party/blink/renderer/modules/peerconnection/adapters/ice_transport_proxy.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/modules/peerconnection/adapters/ice_transport_adapter.h"
 #include "third_party/blink/renderer/modules/peerconnection/adapters/ice_transport_adapter_cross_thread_factory.h"
 #include "third_party/blink/renderer/platform/scheduler/public/frame_scheduler.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/webrtc/p2p/base/p2p_transport_channel.h"
 
 namespace rtc {
diff --git a/third_party/blink/renderer/modules/peerconnection/adapters/p2p_quic_transport.h b/third_party/blink/renderer/modules/peerconnection/adapters/p2p_quic_transport.h
index fb77ff03..0709185 100644
--- a/third_party/blink/renderer/modules/peerconnection/adapters/p2p_quic_transport.h
+++ b/third_party/blink/renderer/modules/peerconnection/adapters/p2p_quic_transport.h
@@ -7,7 +7,7 @@
 
 #include "base/logging.h"
 #include "third_party/blink/renderer/modules/peerconnection/adapters/p2p_quic_transport_stats.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 #include "third_party/webrtc/rtc_base/ssl_fingerprint.h"
 
diff --git a/third_party/blink/renderer/modules/peerconnection/adapters/p2p_quic_transport_test.cc b/third_party/blink/renderer/modules/peerconnection/adapters/p2p_quic_transport_test.cc
index 258ce658..0fca01d 100644
--- a/third_party/blink/renderer/modules/peerconnection/adapters/p2p_quic_transport_test.cc
+++ b/third_party/blink/renderer/modules/peerconnection/adapters/p2p_quic_transport_test.cc
@@ -28,7 +28,7 @@
 #include "third_party/blink/renderer/modules/peerconnection/adapters/test/mock_p2p_quic_packet_transport.h"
 #include "third_party/blink/renderer/modules/peerconnection/adapters/test/mock_p2p_quic_stream_delegate.h"
 #include "third_party/blink/renderer/modules/peerconnection/adapters/test/mock_p2p_quic_transport_delegate.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/webrtc/rtc_base/rtc_certificate.h"
 #include "third_party/webrtc/rtc_base/ssl_fingerprint.h"
 #include "third_party/webrtc/rtc_base/ssl_identity.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/adapters/quic_transport_proxy.h b/third_party/blink/renderer/modules/peerconnection/adapters/quic_transport_proxy.h
index 2b8f039..4f48e714 100644
--- a/third_party/blink/renderer/modules/peerconnection/adapters/quic_transport_proxy.h
+++ b/third_party/blink/renderer/modules/peerconnection/adapters/quic_transport_proxy.h
@@ -15,7 +15,7 @@
 #include "third_party/blink/renderer/modules/peerconnection/adapters/p2p_quic_transport.h"
 #include "third_party/blink/renderer/modules/peerconnection/adapters/p2p_quic_transport_factory.h"
 #include "third_party/blink/renderer/modules/peerconnection/adapters/p2p_quic_transport_stats.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/webrtc/api/scoped_refptr.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/peerconnection/byte_buffer_queue.h b/third_party/blink/renderer/modules/peerconnection/byte_buffer_queue.h
index 7339356..d3438e8 100644
--- a/third_party/blink/renderer/modules/peerconnection/byte_buffer_queue.h
+++ b/third_party/blink/renderer/modules/peerconnection/byte_buffer_queue.h
@@ -7,7 +7,7 @@
 
 #include "base/containers/span.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/deque.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/modules/peerconnection/call_setup_state_tracker.h b/third_party/blink/renderer/modules/peerconnection/call_setup_state_tracker.h
index e545974..470f56aa 100644
--- a/third_party/blink/renderer/modules/peerconnection/call_setup_state_tracker.h
+++ b/third_party/blink/renderer/modules/peerconnection/call_setup_state_tracker.h
@@ -9,7 +9,7 @@
 #include <utility>
 
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_ice_transport.cc b/third_party/blink/renderer/modules/peerconnection/rtc_ice_transport.cc
index 86288e4e..3e7ef3d7 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_ice_transport.cc
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_ice_transport.cc
@@ -45,7 +45,7 @@
     const RTCIceCandidate& candidate) {
   webrtc::JsepIceCandidate jsep_candidate("", 0);
   webrtc::SdpParseError error;
-  if (!webrtc::SdpDeserializeCandidate(WebString(candidate.candidate()).Utf8(),
+  if (!webrtc::SdpDeserializeCandidate(candidate.candidate().Utf8(),
                                        &jsep_candidate, &error)) {
     LOG(WARNING) << "Failed to deserialize candidate: " << error.description;
     return base::nullopt;
@@ -55,7 +55,7 @@
 
 RTCIceCandidate* ConvertToRtcIceCandidate(const cricket::Candidate& candidate) {
   return RTCIceCandidate::Create(WebRTCICECandidate::Create(
-      WebString::FromUTF8(webrtc::SdpSerializeCandidate(candidate)), "", 0));
+      String::FromUTF8(webrtc::SdpSerializeCandidate(candidate)), "", 0));
 }
 
 class DtlsIceTransportAdapterCrossThreadFactory
@@ -303,19 +303,18 @@
     url_strings.push_back(ice_server->url());
   }
   for (const String& url_string : url_strings) {
-    converted_ice_server.urls.push_back(WebString(url_string).Utf8());
+    converted_ice_server.urls.push_back(url_string.Utf8());
   }
-  converted_ice_server.username = WebString(ice_server->username()).Utf8();
-  converted_ice_server.password = WebString(ice_server->credential()).Utf8();
+  converted_ice_server.username = ice_server->username().Utf8();
+  converted_ice_server.password = ice_server->credential().Utf8();
   return converted_ice_server;
 }
 
 static cricket::IceParameters ConvertIceParameters(
     const RTCIceParameters* ice_parameters) {
   cricket::IceParameters converted_ice_parameters;
-  converted_ice_parameters.ufrag =
-      WebString(ice_parameters->usernameFragment()).Utf8();
-  converted_ice_parameters.pwd = WebString(ice_parameters->password()).Utf8();
+  converted_ice_parameters.ufrag = ice_parameters->usernameFragment().Utf8();
+  converted_ice_parameters.pwd = ice_parameters->password().Utf8();
   return converted_ice_parameters;
 }
 
@@ -465,9 +464,9 @@
 void RTCIceTransport::GenerateLocalParameters() {
   local_parameters_ = RTCIceParameters::Create();
   local_parameters_->setUsernameFragment(
-      WebString::FromUTF8(rtc::CreateRandomString(cricket::ICE_UFRAG_LENGTH)));
+      String::FromUTF8(rtc::CreateRandomString(cricket::ICE_UFRAG_LENGTH)));
   local_parameters_->setPassword(
-      WebString::FromUTF8(rtc::CreateRandomString(cricket::ICE_PWD_LENGTH)));
+      String::FromUTF8(rtc::CreateRandomString(cricket::ICE_PWD_LENGTH)));
 }
 
 void RTCIceTransport::OnGatheringStateChanged(
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc
index 9b455f0..1fb1fe2 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc
@@ -397,9 +397,9 @@
         }
         ice_servers.emplace_back();
         auto& converted_ice_server = ice_servers.back();
-        converted_ice_server.urls.push_back(WebString(url).Utf8());
-        converted_ice_server.username = WebString(username).Utf8();
-        converted_ice_server.password = WebString(credential).Utf8();
+        converted_ice_server.urls.push_back(String(url).Utf8());
+        converted_ice_server.username = username.Utf8();
+        converted_ice_server.password = credential.Utf8();
       }
     }
     web_configuration.servers = ice_servers;
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_quic_transport.cc b/third_party/blink/renderer/modules/peerconnection/rtc_quic_transport.cc
index ca7c422..4113555 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_quic_transport.cc
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_quic_transport.cc
@@ -263,8 +263,8 @@
 
 static std::unique_ptr<rtc::SSLFingerprint> RTCDtlsFingerprintToSSLFingerprint(
     const RTCDtlsFingerprint* dtls_fingerprint) {
-  std::string algorithm = WebString(dtls_fingerprint->algorithm()).Utf8();
-  std::string value = WebString(dtls_fingerprint->value()).Utf8();
+  std::string algorithm = dtls_fingerprint->algorithm().Utf8();
+  std::string value = dtls_fingerprint->value().Utf8();
   std::unique_ptr<rtc::SSLFingerprint> rtc_fingerprint =
       rtc::SSLFingerprint::CreateUniqueFromRfc4572(algorithm, value);
   DCHECK(rtc_fingerprint);
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc
index 41c0703..f4a6925 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc
@@ -265,7 +265,7 @@
   // codecPayloadType, dtx, ptime, maxFramerate, scaleResolutionDownBy.
   webrtc::RtpEncodingParameters webrtc_encoding;
   if (encoding->hasRid()) {
-    webrtc_encoding.rid = WebString(encoding->rid()).Utf8();
+    webrtc_encoding.rid = encoding->rid().Utf8();
   }
   webrtc_encoding.active = encoding->active();
   webrtc_encoding.bitrate_priority = PriorityToDouble(encoding->priority());
diff --git a/third_party/blink/renderer/modules/peerconnection/testing/internals_rtc_certificate.h b/third_party/blink/renderer/modules/peerconnection/testing/internals_rtc_certificate.h
index fc1c1dd..ffb2b40 100644
--- a/third_party/blink/renderer/modules/peerconnection/testing/internals_rtc_certificate.h
+++ b/third_party/blink/renderer/modules/peerconnection/testing/internals_rtc_certificate.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_PEERCONNECTION_TESTING_INTERNALS_RTC_CERTIFICATE_H_
 
 #include "third_party/blink/renderer/modules/peerconnection/rtc_certificate.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/peerconnection/testing/internals_rtc_peer_connection.h b/third_party/blink/renderer/modules/peerconnection/testing/internals_rtc_peer_connection.h
index bc04860..8f1119a2 100644
--- a/third_party/blink/renderer/modules/peerconnection/testing/internals_rtc_peer_connection.h
+++ b/third_party/blink/renderer/modules/peerconnection/testing/internals_rtc_peer_connection.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_PEERCONNECTION_TESTING_INTERNALS_RTC_PEER_CONNECTION_H_
 
 #include "third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/picture_in_picture/html_element_picture_in_picture.h b/third_party/blink/renderer/modules/picture_in_picture/html_element_picture_in_picture.h
index ec1ab5fc..51f58faf 100644
--- a/third_party/blink/renderer/modules/picture_in_picture/html_element_picture_in_picture.h
+++ b/third_party/blink/renderer/modules/picture_in_picture/html_element_picture_in_picture.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_PICTURE_IN_PICTURE_HTML_ELEMENT_PICTURE_IN_PICTURE_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_PICTURE_IN_PICTURE_HTML_ELEMENT_PICTURE_IN_PICTURE_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/presentation/presentation_availability_callbacks.h b/third_party/blink/renderer/modules/presentation/presentation_availability_callbacks.h
index 7277217..64ed0b16 100644
--- a/third_party/blink/renderer/modules/presentation/presentation_availability_callbacks.h
+++ b/third_party/blink/renderer/modules/presentation/presentation_availability_callbacks.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/modules/presentation/presentation_promise_property.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/presentation/presentation_availability_state.h b/third_party/blink/renderer/modules/presentation/presentation_availability_state.h
index b0b1aa9..842881a 100644
--- a/third_party/blink/renderer/modules/presentation/presentation_availability_state.h
+++ b/third_party/blink/renderer/modules/presentation/presentation_availability_state.h
@@ -14,7 +14,7 @@
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/modules/presentation/presentation_availability_callbacks.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/presentation/presentation_connection_callbacks.h b/third_party/blink/renderer/modules/presentation/presentation_connection_callbacks.h
index d10ea2c..86b9868 100644
--- a/third_party/blink/renderer/modules/presentation/presentation_connection_callbacks.h
+++ b/third_party/blink/renderer/modules/presentation/presentation_connection_callbacks.h
@@ -8,7 +8,7 @@
 #include "base/macros.h"
 #include "third_party/blink/public/mojom/presentation/presentation.mojom-blink.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/push_messaging/push_error.h b/third_party/blink/renderer/modules/push_messaging/push_error.h
index 6687bdb..045878d 100644
--- a/third_party/blink/renderer/modules/push_messaging/push_error.h
+++ b/third_party/blink/renderer/modules/push_messaging/push_error.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/public/mojom/push_messaging/push_messaging.mojom-blink.h"
 #include "third_party/blink/renderer/core/dom/dom_exception.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/remoteplayback/html_media_element_remote_playback.h b/third_party/blink/renderer/modules/remoteplayback/html_media_element_remote_playback.h
index 189c33d..3f2cc4a 100644
--- a/third_party/blink/renderer/modules/remoteplayback/html_media_element_remote_playback.h
+++ b/third_party/blink/renderer/modules/remoteplayback/html_media_element_remote_playback.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/supplementable.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/sensor/sensor_reading_remapper.h b/third_party/blink/renderer/modules/sensor/sensor_reading_remapper.h
index 0a9f3628..b912c58 100644
--- a/third_party/blink/renderer/modules/sensor/sensor_reading_remapper.h
+++ b/third_party/blink/renderer/modules/sensor/sensor_reading_remapper.h
@@ -7,7 +7,7 @@
 
 #include "services/device/public/cpp/generic_sensor/sensor_reading.h"
 #include "services/device/public/mojom/sensor.mojom-blink.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_container_test.cc b/third_party/blink/renderer/modules/service_worker/service_worker_container_test.cc
index ca07a97..83ac45e 100644
--- a/third_party/blink/renderer/modules/service_worker/service_worker_container_test.cc
+++ b/third_party/blink/renderer/modules/service_worker/service_worker_container_test.cc
@@ -25,7 +25,7 @@
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/weborigin/security_origin.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_installed_scripts_manager.cc b/third_party/blink/renderer/modules/service_worker/service_worker_installed_scripts_manager.cc
index 66e5238..d44416b9 100644
--- a/third_party/blink/renderer/modules/service_worker/service_worker_installed_scripts_manager.cc
+++ b/third_party/blink/renderer/modules/service_worker/service_worker_installed_scripts_manager.cc
@@ -14,7 +14,7 @@
 #include "third_party/blink/renderer/modules/service_worker/service_worker_thread.h"
 #include "third_party/blink/renderer/platform/instrumentation/tracing/traced_value.h"
 #include "third_party/blink/renderer/platform/scheduler/public/post_cross_thread_task.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
diff --git a/third_party/blink/renderer/modules/service_worker/testing/internals_service_worker.h b/third_party/blink/renderer/modules/service_worker/testing/internals_service_worker.h
index c765b7b..37ce921 100644
--- a/third_party/blink/renderer/modules/service_worker/testing/internals_service_worker.h
+++ b/third_party/blink/renderer/modules/service_worker/testing/internals_service_worker.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_SERVICE_WORKER_TESTING_INTERNALS_SERVICE_WORKER_H_
 
 #include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/speech/testing/internals_speech_synthesis.h b/third_party/blink/renderer/modules/speech/testing/internals_speech_synthesis.h
index b1428fff..a046427 100644
--- a/third_party/blink/renderer/modules/speech/testing/internals_speech_synthesis.h
+++ b/third_party/blink/renderer/modules/speech/testing/internals_speech_synthesis.h
@@ -31,7 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_SPEECH_TESTING_INTERNALS_SPEECH_SYNTHESIS_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_SPEECH_TESTING_INTERNALS_SPEECH_SYNTHESIS_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/srcobject/html_media_element_src_object.h b/third_party/blink/renderer/modules/srcobject/html_media_element_src_object.h
index bb8967f..7f7b0a0a 100644
--- a/third_party/blink/renderer/modules/srcobject/html_media_element_src_object.h
+++ b/third_party/blink/renderer/modules/srcobject/html_media_element_src_object.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_SRCOBJECT_HTML_MEDIA_ELEMENT_SRC_OBJECT_H_
 
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/storage/storage_area_map.h b/third_party/blink/renderer/modules/storage/storage_area_map.h
index 0beb759..8575762b 100644
--- a/third_party/blink/renderer/modules/storage/storage_area_map.h
+++ b/third_party/blink/renderer/modules/storage/storage_area_map.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_STORAGE_STORAGE_AREA_MAP_H_
 
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/modules/storage/storage_controller.h b/third_party/blink/renderer/modules/storage/storage_controller.h
index 7c64d1c0..a9f7c4b9 100644
--- a/third_party/blink/renderer/modules/storage/storage_controller.h
+++ b/third_party/blink/renderer/modules/storage/storage_controller.h
@@ -14,7 +14,7 @@
 #include "third_party/blink/renderer/modules/storage/storage_area.h"
 #include "third_party/blink/renderer/platform/heap/heap_allocator.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace base {
 class SingleThreadTaskRunner;
diff --git a/third_party/blink/renderer/modules/vibration/testing/internals_vibration.h b/third_party/blink/renderer/modules/vibration/testing/internals_vibration.h
index fe35944..38fc2e09 100644
--- a/third_party/blink/renderer/modules/vibration/testing/internals_vibration.h
+++ b/third_party/blink/renderer/modules/vibration/testing/internals_vibration.h
@@ -31,7 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_VIBRATION_TESTING_INTERNALS_VIBRATION_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_VIBRATION_TESTING_INTERNALS_VIBRATION_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/wake_lock/wake_lock_test_utils.h b/third_party/blink/renderer/modules/wake_lock/wake_lock_test_utils.h
index bc439fba5..beba8a18 100644
--- a/third_party/blink/renderer/modules/wake_lock/wake_lock_test_utils.h
+++ b/third_party/blink/renderer/modules/wake_lock/wake_lock_test_utils.h
@@ -21,7 +21,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_testing.h"
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/modules/wake_lock/wake_lock_type.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "v8/include/v8.h"
diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.h b/third_party/blink/renderer/modules/webaudio/audio_buffer.h
index 1bf9cff..1eb87af1 100644
--- a/third_party/blink/renderer/modules/webaudio/audio_buffer.h
+++ b/third_party/blink/renderer/modules/webaudio/audio_buffer.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/core/typed_arrays/dom_typed_array.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/webaudio/audio_node_input.h b/third_party/blink/renderer/modules/webaudio/audio_node_input.h
index 51db7a1b..794bea7 100644
--- a/third_party/blink/renderer/modules/webaudio/audio_node_input.h
+++ b/third_party/blink/renderer/modules/webaudio/audio_node_input.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/renderer/modules/webaudio/audio_node.h"
 #include "third_party/blink/renderer/modules/webaudio/audio_summing_junction.h"
 #include "third_party/blink/renderer/platform/audio/audio_bus.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/webaudio/audio_node_wiring.h b/third_party/blink/renderer/modules/webaudio/audio_node_wiring.h
index 239e8d83..cff1e238 100644
--- a/third_party/blink/renderer/modules/webaudio/audio_node_wiring.h
+++ b/third_party/blink/renderer/modules/webaudio/audio_node_wiring.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBAUDIO_AUDIO_NODE_WIRING_H_
 
 #include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/webaudio/audio_worklet_global_scope.h b/third_party/blink/renderer/modules/webaudio/audio_worklet_global_scope.h
index afc99d1..6166e0b 100644
--- a/third_party/blink/renderer/modules/webaudio/audio_worklet_global_scope.h
+++ b/third_party/blink/renderer/modules/webaudio/audio_worklet_global_scope.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/modules/webaudio/audio_param_descriptor.h"
 #include "third_party/blink/renderer/platform/audio/audio_array.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/webaudio/testing/internals_web_audio.h b/third_party/blink/renderer/modules/webaudio/testing/internals_web_audio.h
index f9af7d0..7a640fc 100644
--- a/third_party/blink/renderer/modules/webaudio/testing/internals_web_audio.h
+++ b/third_party/blink/renderer/modules/webaudio/testing/internals_web_audio.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_WEBAUDIO_TESTING_INTERNALS_WEB_AUDIO_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBAUDIO_TESTING_INTERNALS_WEB_AUDIO_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/webdatabase/change_version_data.h b/third_party/blink/renderer/modules/webdatabase/change_version_data.h
index 8ecbd09..c82f0a0 100644
--- a/third_party/blink/renderer/modules/webdatabase/change_version_data.h
+++ b/third_party/blink/renderer/modules/webdatabase/change_version_data.h
@@ -26,7 +26,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_WEBDATABASE_CHANGE_VERSION_DATA_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBDATABASE_CHANGE_VERSION_DATA_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/webdatabase/database.cc b/third_party/blink/renderer/modules/webdatabase/database.cc
index 60777c6..c413db01 100644
--- a/third_party/blink/renderer/modules/webdatabase/database.cc
+++ b/third_party/blink/renderer/modules/webdatabase/database.cc
@@ -52,7 +52,7 @@
 #include "third_party/blink/renderer/modules/webdatabase/sqlite/sqlite_transaction.h"
 #include "third_party/blink/renderer/modules/webdatabase/storage_log.h"
 #include "third_party/blink/renderer/platform/scheduler/public/post_cross_thread_task.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
 
 // Registering "opened" databases with the DatabaseTracker
diff --git a/third_party/blink/renderer/modules/webdatabase/database_authorizer.h b/third_party/blink/renderer/modules/webdatabase/database_authorizer.h
index 912203f..a3b4881 100644
--- a/third_party/blink/renderer/modules/webdatabase/database_authorizer.h
+++ b/third_party/blink/renderer/modules/webdatabase/database_authorizer.h
@@ -28,7 +28,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_WEBDATABASE_DATABASE_AUTHORIZER_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBDATABASE_DATABASE_AUTHORIZER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/webdatabase/sql_transaction_client.h b/third_party/blink/renderer/modules/webdatabase/sql_transaction_client.h
index f6024dee2..192bf52b 100644
--- a/third_party/blink/renderer/modules/webdatabase/sql_transaction_client.h
+++ b/third_party/blink/renderer/modules/webdatabase/sql_transaction_client.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBDATABASE_SQL_TRANSACTION_CLIENT_H_
 
 #include "base/macros.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/webdatabase/sqlite/sandboxed_vfs.h b/third_party/blink/renderer/modules/webdatabase/sqlite/sandboxed_vfs.h
index 366ade9e..c30de109 100644
--- a/third_party/blink/renderer/modules/webdatabase/sqlite/sandboxed_vfs.h
+++ b/third_party/blink/renderer/modules/webdatabase/sqlite/sandboxed_vfs.h
@@ -8,7 +8,7 @@
 #include <tuple>
 
 #include "base/files/file.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/time.h"
 #include "third_party/sqlite/sqlite3.h"
diff --git a/third_party/blink/renderer/modules/webdatabase/sqlite/sandboxed_vfs_file.h b/third_party/blink/renderer/modules/webdatabase/sqlite/sandboxed_vfs_file.h
index a0e76ac..d2b95a0 100644
--- a/third_party/blink/renderer/modules/webdatabase/sqlite/sandboxed_vfs_file.h
+++ b/third_party/blink/renderer/modules/webdatabase/sqlite/sandboxed_vfs_file.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBDATABASE_SQLITE_SANDBOXED_VFS_FILE_H_
 
 #include "base/files/file.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/sqlite/sqlite3.h"
 
diff --git a/third_party/blink/renderer/modules/webdatabase/sqlite/sql_value.h b/third_party/blink/renderer/modules/webdatabase/sqlite/sql_value.h
index 06e2573..b76deef2 100644
--- a/third_party/blink/renderer/modules/webdatabase/sqlite/sql_value.h
+++ b/third_party/blink/renderer/modules/webdatabase/sqlite/sql_value.h
@@ -29,7 +29,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_WEBDATABASE_SQLITE_SQL_VALUE_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBDATABASE_SQLITE_SQL_VALUE_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/webdatabase/sqlite/sqlite_database.h b/third_party/blink/renderer/modules/webdatabase/sqlite/sqlite_database.h
index 1d3ebdd7..a38bdc1dc 100644
--- a/third_party/blink/renderer/modules/webdatabase/sqlite/sqlite_database.h
+++ b/third_party/blink/renderer/modules/webdatabase/sqlite/sqlite_database.h
@@ -29,7 +29,7 @@
 
 #include "base/macros.h"
 #include "build/build_config.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/threading.h"
 #include "third_party/blink/renderer/platform/wtf/threading_primitives.h"
diff --git a/third_party/blink/renderer/modules/webdatabase/sqlite/sqlite_transaction.h b/third_party/blink/renderer/modules/webdatabase/sqlite/sqlite_transaction.h
index b2610eb..dacede5 100644
--- a/third_party/blink/renderer/modules/webdatabase/sqlite/sqlite_transaction.h
+++ b/third_party/blink/renderer/modules/webdatabase/sqlite/sqlite_transaction.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBDATABASE_SQLITE_SQLITE_TRANSACTION_H_
 
 #include "base/macros.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/webmidi/midi_accessor.h b/third_party/blink/renderer/modules/webmidi/midi_accessor.h
index f5c8401..30dac5e 100644
--- a/third_party/blink/renderer/modules/webmidi/midi_accessor.h
+++ b/third_party/blink/renderer/modules/webmidi/midi_accessor.h
@@ -35,7 +35,7 @@
 #include "base/time/time.h"
 #include "media/midi/midi_service.mojom-blink.h"
 #include "third_party/blink/renderer/modules/webmidi/midi_dispatcher.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/modules/webmidi/midi_output.cc b/third_party/blink/renderer/modules/webmidi/midi_output.cc
index 08a8b2f..5612350 100644
--- a/third_party/blink/renderer/modules/webmidi/midi_output.cc
+++ b/third_party/blink/renderer/modules/webmidi/midi_output.cc
@@ -41,7 +41,7 @@
 #include "third_party/blink/renderer/modules/webmidi/midi_access.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 using midi::mojom::PortState;
 
diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
index 1f23d692..9c1af1ec 100644
--- a/third_party/blink/renderer/platform/BUILD.gn
+++ b/third_party/blink/renderer/platform/BUILD.gn
@@ -1568,8 +1568,6 @@
     "testing/weburl_loader_mock.h",
     "testing/weburl_loader_mock_factory_impl.cc",
     "testing/weburl_loader_mock_factory_impl.h",
-    "testing/wtf/scoped_mock_clock.cc",
-    "testing/wtf/scoped_mock_clock.h",
   ]
 
   configs += [
diff --git a/third_party/blink/renderer/platform/animation/compositor_animation_timeline.h b/third_party/blink/renderer/platform/animation/compositor_animation_timeline.h
index d38525d..b4e6b842 100644
--- a/third_party/blink/renderer/platform/animation/compositor_animation_timeline.h
+++ b/third_party/blink/renderer/platform/animation/compositor_animation_timeline.h
@@ -12,7 +12,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "cc/animation/animation_timeline.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/animation/compositor_keyframe_model.h b/third_party/blink/renderer/platform/animation/compositor_keyframe_model.h
index 52db455..a62df96c 100644
--- a/third_party/blink/renderer/platform/animation/compositor_keyframe_model.h
+++ b/third_party/blink/renderer/platform/animation/compositor_keyframe_model.h
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/platform/animation/compositor_target_property.h"
 #include "third_party/blink/renderer/platform/graphics/compositor_element_id.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 
 namespace cc {
diff --git a/third_party/blink/renderer/platform/animation/compositor_transform_operations.h b/third_party/blink/renderer/platform/animation/compositor_transform_operations.h
index 1983a95..46a5bccb 100644
--- a/third_party/blink/renderer/platform/animation/compositor_transform_operations.h
+++ b/third_party/blink/renderer/platform/animation/compositor_transform_operations.h
@@ -7,7 +7,7 @@
 
 #include "cc/animation/transform_operations.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 class SkMatrix44;
 
diff --git a/third_party/blink/renderer/platform/audio/audio_array.h b/third_party/blink/renderer/platform/audio/audio_array.h
index b9da1b6..7ff276e5 100644
--- a/third_party/blink/renderer/platform/audio/audio_array.h
+++ b/third_party/blink/renderer/platform/audio/audio_array.h
@@ -34,7 +34,7 @@
 #include "base/macros.h"
 #include "base/numerics/checked_math.h"
 #include "build/build_config.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/partitions.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/audio/audio_channel.h b/third_party/blink/renderer/platform/audio/audio_channel.h
index 5ac656d..5adffb5 100644
--- a/third_party/blink/renderer/platform/audio/audio_channel.h
+++ b/third_party/blink/renderer/platform/audio/audio_channel.h
@@ -34,7 +34,7 @@
 #include "base/numerics/checked_math.h"
 #include "third_party/blink/renderer/platform/audio/audio_array.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/audio/audio_dsp_kernel.h b/third_party/blink/renderer/platform/audio/audio_dsp_kernel.h
index 35f9190b..09f2443 100644
--- a/third_party/blink/renderer/platform/audio/audio_dsp_kernel.h
+++ b/third_party/blink/renderer/platform/audio/audio_dsp_kernel.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_AUDIO_AUDIO_DSP_KERNEL_H_
 
 #include "third_party/blink/renderer/platform/audio/audio_dsp_kernel_processor.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/audio/audio_processor.h b/third_party/blink/renderer/platform/audio/audio_processor.h
index 87e61c66..4633005a 100644
--- a/third_party/blink/renderer/platform/audio/audio_processor.h
+++ b/third_party/blink/renderer/platform/audio/audio_processor.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_AUDIO_AUDIO_PROCESSOR_H_
 
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/audio/audio_resampler.h b/third_party/blink/renderer/platform/audio/audio_resampler.h
index 103698c..3398214 100644
--- a/third_party/blink/renderer/platform/audio/audio_resampler.h
+++ b/third_party/blink/renderer/platform/audio/audio_resampler.h
@@ -32,7 +32,7 @@
 #include "third_party/blink/renderer/platform/audio/audio_bus.h"
 #include "third_party/blink/renderer/platform/audio/audio_resampler_kernel.h"
 #include "third_party/blink/renderer/platform/audio/audio_source_provider.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/audio/audio_resampler_kernel.h b/third_party/blink/renderer/platform/audio/audio_resampler_kernel.h
index a0d333a..c52fc1b4 100644
--- a/third_party/blink/renderer/platform/audio/audio_resampler_kernel.h
+++ b/third_party/blink/renderer/platform/audio/audio_resampler_kernel.h
@@ -28,7 +28,7 @@
 
 #include "third_party/blink/renderer/platform/audio/audio_array.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/audio/audio_source_provider.h b/third_party/blink/renderer/platform/audio/audio_source_provider.h
index 0f5cfb4..88759ef 100644
--- a/third_party/blink/renderer/platform/audio/audio_source_provider.h
+++ b/third_party/blink/renderer/platform/audio/audio_source_provider.h
@@ -32,7 +32,7 @@
 #include <cstddef>
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/audio/biquad.h b/third_party/blink/renderer/platform/audio/biquad.h
index 30d9a2a..bde33ee 100644
--- a/third_party/blink/renderer/platform/audio/biquad.h
+++ b/third_party/blink/renderer/platform/audio/biquad.h
@@ -36,7 +36,7 @@
 #include "build/build_config.h"
 #include "third_party/blink/renderer/platform/audio/audio_array.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/audio/cone_effect.h b/third_party/blink/renderer/platform/audio/cone_effect.h
index c3c39cfc..fcf4f06 100644
--- a/third_party/blink/renderer/platform/audio/cone_effect.h
+++ b/third_party/blink/renderer/platform/audio/cone_effect.h
@@ -31,7 +31,7 @@
 
 #include "third_party/blink/renderer/platform/geometry/float_point_3d.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/audio/denormal_disabler.h b/third_party/blink/renderer/platform/audio/denormal_disabler.h
index e943584..1e20045 100644
--- a/third_party/blink/renderer/platform/audio/denormal_disabler.h
+++ b/third_party/blink/renderer/platform/audio/denormal_disabler.h
@@ -28,7 +28,7 @@
 
 #include <float.h>
 #include "build/build_config.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/math_extras.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/audio/direct_convolver.h b/third_party/blink/renderer/platform/audio/direct_convolver.h
index 965a7ee6..af5f461 100644
--- a/third_party/blink/renderer/platform/audio/direct_convolver.h
+++ b/third_party/blink/renderer/platform/audio/direct_convolver.h
@@ -34,7 +34,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/audio/audio_array.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/audio/distance_effect.h b/third_party/blink/renderer/platform/audio/distance_effect.h
index ef0e641..b9fd9da 100644
--- a/third_party/blink/renderer/platform/audio/distance_effect.h
+++ b/third_party/blink/renderer/platform/audio/distance_effect.h
@@ -30,7 +30,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_AUDIO_DISTANCE_EFFECT_H_
 
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/audio/down_sampler.h b/third_party/blink/renderer/platform/audio/down_sampler.h
index 5587a70d..494e8a2 100644
--- a/third_party/blink/renderer/platform/audio/down_sampler.h
+++ b/third_party/blink/renderer/platform/audio/down_sampler.h
@@ -34,7 +34,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/audio/audio_array.h"
 #include "third_party/blink/renderer/platform/audio/simple_fft_convolver.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/audio/dynamics_compressor.h b/third_party/blink/renderer/platform/audio/dynamics_compressor.h
index ff5245a..985d4239 100644
--- a/third_party/blink/renderer/platform/audio/dynamics_compressor.h
+++ b/third_party/blink/renderer/platform/audio/dynamics_compressor.h
@@ -34,7 +34,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/audio/audio_array.h"
 #include "third_party/blink/renderer/platform/audio/dynamics_compressor_kernel.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/audio/dynamics_compressor_kernel.h b/third_party/blink/renderer/platform/audio/dynamics_compressor_kernel.h
index 7ebf0129..3d72920 100644
--- a/third_party/blink/renderer/platform/audio/dynamics_compressor_kernel.h
+++ b/third_party/blink/renderer/platform/audio/dynamics_compressor_kernel.h
@@ -33,7 +33,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/audio/audio_array.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/audio/fft_convolver.h b/third_party/blink/renderer/platform/audio/fft_convolver.h
index f384df7..bc33555 100644
--- a/third_party/blink/renderer/platform/audio/fft_convolver.h
+++ b/third_party/blink/renderer/platform/audio/fft_convolver.h
@@ -32,7 +32,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/audio/audio_array.h"
 #include "third_party/blink/renderer/platform/audio/fft_frame.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/audio/fft_frame.h b/third_party/blink/renderer/platform/audio/fft_frame.h
index 502a4f5..a6022b9 100644
--- a/third_party/blink/renderer/platform/audio/fft_frame.h
+++ b/third_party/blink/renderer/platform/audio/fft_frame.h
@@ -34,7 +34,7 @@
 #include "build/build_config.h"
 #include "third_party/blink/renderer/platform/audio/audio_array.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/threading.h"
 
diff --git a/third_party/blink/renderer/platform/audio/hrtf_database.h b/third_party/blink/renderer/platform/audio/hrtf_database.h
index 0a7a6b2..5040564 100644
--- a/third_party/blink/renderer/platform/audio/hrtf_database.h
+++ b/third_party/blink/renderer/platform/audio/hrtf_database.h
@@ -34,7 +34,7 @@
 #include "base/macros.h"
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/platform/audio/hrtf_elevation.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/platform/audio/hrtf_database_loader.h b/third_party/blink/renderer/platform/audio/hrtf_database_loader.h
index 1a32714..3ce476f 100644
--- a/third_party/blink/renderer/platform/audio/hrtf_database_loader.h
+++ b/third_party/blink/renderer/platform/audio/hrtf_database_loader.h
@@ -33,7 +33,7 @@
 #include "base/synchronization/waitable_event.h"
 #include "third_party/blink/renderer/platform/audio/hrtf_database.h"
 #include "third_party/blink/renderer/platform/scheduler/public/thread.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/threading_primitives.h"
diff --git a/third_party/blink/renderer/platform/audio/hrtf_elevation.h b/third_party/blink/renderer/platform/audio/hrtf_elevation.h
index 61b0a45e..1d425076 100644
--- a/third_party/blink/renderer/platform/audio/hrtf_elevation.h
+++ b/third_party/blink/renderer/platform/audio/hrtf_elevation.h
@@ -34,7 +34,7 @@
 #include "base/macros.h"
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/platform/audio/hrtf_kernel.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/audio/hrtf_kernel.h b/third_party/blink/renderer/platform/audio/hrtf_kernel.h
index 093f89d..001a477 100644
--- a/third_party/blink/renderer/platform/audio/hrtf_kernel.h
+++ b/third_party/blink/renderer/platform/audio/hrtf_kernel.h
@@ -35,7 +35,7 @@
 #include "base/macros.h"
 #include "base/memory/ptr_util.h"
 #include "third_party/blink/renderer/platform/audio/fft_frame.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/audio/media_multi_channel_resampler.h b/third_party/blink/renderer/platform/audio/media_multi_channel_resampler.h
index adb0064..73b8b34 100644
--- a/third_party/blink/renderer/platform/audio/media_multi_channel_resampler.h
+++ b/third_party/blink/renderer/platform/audio/media_multi_channel_resampler.h
@@ -10,7 +10,7 @@
 #include "base/macros.h"
 #include "media/base/multi_channel_resampler.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
 
 namespace media {
diff --git a/third_party/blink/renderer/platform/audio/multi_channel_resampler.h b/third_party/blink/renderer/platform/audio/multi_channel_resampler.h
index 26645bc4..84eaa98 100644
--- a/third_party/blink/renderer/platform/audio/multi_channel_resampler.h
+++ b/third_party/blink/renderer/platform/audio/multi_channel_resampler.h
@@ -33,7 +33,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/audio/sinc_resampler.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/audio/panner.h b/third_party/blink/renderer/platform/audio/panner.h
index 655250c..1b5e3357 100644
--- a/third_party/blink/renderer/platform/audio/panner.h
+++ b/third_party/blink/renderer/platform/audio/panner.h
@@ -34,7 +34,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/audio/audio_bus.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/audio/push_pull_fifo.h b/third_party/blink/renderer/platform/audio/push_pull_fifo.h
index 0d44e29..d7373903 100644
--- a/third_party/blink/renderer/platform/audio/push_pull_fifo.h
+++ b/third_party/blink/renderer/platform/audio/push_pull_fifo.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/public/platform/web_common.h"
 #include "third_party/blink/renderer/platform/audio/audio_bus.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
 #include "third_party/blink/renderer/platform/wtf/threading.h"
 #include "third_party/blink/renderer/platform/wtf/threading_primitives.h"
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 811e9c80..e9a1443 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
@@ -14,7 +14,7 @@
 #include "third_party/blink/renderer/platform/testing/testing_platform_support.h"
 #include "third_party/blink/renderer/platform/testing/testing_platform_support_with_mock_scheduler.h"
 #include "third_party/blink/renderer/platform/testing/unit_test_helpers.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
 
diff --git a/third_party/blink/renderer/platform/audio/reverb.h b/third_party/blink/renderer/platform/audio/reverb.h
index b36f6de..c201ac5 100644
--- a/third_party/blink/renderer/platform/audio/reverb.h
+++ b/third_party/blink/renderer/platform/audio/reverb.h
@@ -33,7 +33,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/audio/reverb_convolver.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/audio/reverb_accumulation_buffer.h b/third_party/blink/renderer/platform/audio/reverb_accumulation_buffer.h
index 270af89..ee12f0c 100644
--- a/third_party/blink/renderer/platform/audio/reverb_accumulation_buffer.h
+++ b/third_party/blink/renderer/platform/audio/reverb_accumulation_buffer.h
@@ -32,7 +32,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/audio/audio_array.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/audio/reverb_convolver.h b/third_party/blink/renderer/platform/audio/reverb_convolver.h
index b1513df..1134670 100644
--- a/third_party/blink/renderer/platform/audio/reverb_convolver.h
+++ b/third_party/blink/renderer/platform/audio/reverb_convolver.h
@@ -38,7 +38,7 @@
 #include "third_party/blink/renderer/platform/audio/reverb_convolver_stage.h"
 #include "third_party/blink/renderer/platform/audio/reverb_input_buffer.h"
 #include "third_party/blink/renderer/platform/scheduler/public/thread.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/audio/reverb_convolver_stage.h b/third_party/blink/renderer/platform/audio/reverb_convolver_stage.h
index bc99b57..8c0d70e 100644
--- a/third_party/blink/renderer/platform/audio/reverb_convolver_stage.h
+++ b/third_party/blink/renderer/platform/audio/reverb_convolver_stage.h
@@ -34,7 +34,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/audio/audio_array.h"
 #include "third_party/blink/renderer/platform/audio/fft_frame.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/audio/reverb_input_buffer.h b/third_party/blink/renderer/platform/audio/reverb_input_buffer.h
index df147a03..7907204 100644
--- a/third_party/blink/renderer/platform/audio/reverb_input_buffer.h
+++ b/third_party/blink/renderer/platform/audio/reverb_input_buffer.h
@@ -33,7 +33,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/audio/audio_array.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/audio/simple_fft_convolver.h b/third_party/blink/renderer/platform/audio/simple_fft_convolver.h
index 6b7220fb..f8d02e0 100644
--- a/third_party/blink/renderer/platform/audio/simple_fft_convolver.h
+++ b/third_party/blink/renderer/platform/audio/simple_fft_convolver.h
@@ -10,7 +10,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/audio/audio_array.h"
 #include "third_party/blink/renderer/platform/audio/fft_frame.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/audio/sinc_resampler.h b/third_party/blink/renderer/platform/audio/sinc_resampler.h
index 484e654..68786b6a 100644
--- a/third_party/blink/renderer/platform/audio/sinc_resampler.h
+++ b/third_party/blink/renderer/platform/audio/sinc_resampler.h
@@ -33,7 +33,7 @@
 #include "third_party/blink/renderer/platform/audio/audio_array.h"
 #include "third_party/blink/renderer/platform/audio/audio_source_provider.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/audio/stereo_panner.h b/third_party/blink/renderer/platform/audio/stereo_panner.h
index 49dbdac..7a58743 100644
--- a/third_party/blink/renderer/platform/audio/stereo_panner.h
+++ b/third_party/blink/renderer/platform/audio/stereo_panner.h
@@ -7,7 +7,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/audio/up_sampler.h b/third_party/blink/renderer/platform/audio/up_sampler.h
index 399852bb..0ee63c8 100644
--- a/third_party/blink/renderer/platform/audio/up_sampler.h
+++ b/third_party/blink/renderer/platform/audio/up_sampler.h
@@ -37,7 +37,7 @@
 #include "third_party/blink/renderer/platform/audio/audio_array.h"
 #include "third_party/blink/renderer/platform/audio/direct_convolver.h"
 #include "third_party/blink/renderer/platform/audio/simple_fft_convolver.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/audio/vector_math_test.cc b/third_party/blink/renderer/platform/audio/vector_math_test.cc
index 6965f16..6f8430e 100644
--- a/third_party/blink/renderer/platform/audio/vector_math_test.cc
+++ b/third_party/blink/renderer/platform/audio/vector_math_test.cc
@@ -14,7 +14,7 @@
 
 #include "build/build_config.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/math_extras.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/bindings/OWNERS b/third_party/blink/renderer/platform/bindings/OWNERS
index 750dcc6..09f5935 100644
--- a/third_party/blink/renderer/platform/bindings/OWNERS
+++ b/third_party/blink/renderer/platform/bindings/OWNERS
@@ -3,3 +3,6 @@
 
 # TEAM: blink-reviews-bindings@chromium.org
 # COMPONENT: Blink>Bindings
+
+per-file *_messages*.h=set noparent
+per-file *_messages*.h=file://ipc/SECURITY_OWNERS
diff --git a/third_party/blink/renderer/platform/bindings/binding_security_for_platform.h b/third_party/blink/renderer/platform/bindings/binding_security_for_platform.h
index 1470bc7..73def63 100644
--- a/third_party/blink/renderer/platform/bindings/binding_security_for_platform.h
+++ b/third_party/blink/renderer/platform/bindings/binding_security_for_platform.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_BINDINGS_BINDING_SECURITY_FOR_PLATFORM_H_
 
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/bindings/dom_data_store.h b/third_party/blink/renderer/platform/bindings/dom_data_store.h
index 3387994c..0660dd18 100644
--- a/third_party/blink/renderer/platform/bindings/dom_data_store.h
+++ b/third_party/blink/renderer/platform/bindings/dom_data_store.h
@@ -37,7 +37,7 @@
 #include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
 #include "third_party/blink/renderer/platform/bindings/wrapper_type_info.h"
 #include "third_party/blink/renderer/platform/heap/unified_heap_marking_visitor.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/stack_util.h"
 #include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
 #include "v8/include/v8.h"
diff --git a/third_party/blink/renderer/platform/bindings/dom_wrapper_world.h b/third_party/blink/renderer/platform/bindings/dom_wrapper_world.h
index fadd745c..4ee39fc3 100644
--- a/third_party/blink/renderer/platform/bindings/dom_wrapper_world.h
+++ b/third_party/blink/renderer/platform/bindings/dom_wrapper_world.h
@@ -38,7 +38,7 @@
 #include "third_party/blink/public/platform/web_isolated_world_ids.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "v8/include/v8.h"
diff --git a/third_party/blink/renderer/platform/bindings/exception_messages.h b/third_party/blink/renderer/platform/bindings/exception_messages.h
index 6ba3229..e509c74 100644
--- a/third_party/blink/renderer/platform/bindings/exception_messages.h
+++ b/third_party/blink/renderer/platform/bindings/exception_messages.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_BINDINGS_EXCEPTION_MESSAGES_H_
 
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/math_extras.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/platform/bindings/exception_state.h b/third_party/blink/renderer/platform/bindings/exception_state.h
index 8f7fb5f..24d9879 100644
--- a/third_party/blink/renderer/platform/bindings/exception_state.h
+++ b/third_party/blink/renderer/platform/bindings/exception_state.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/renderer/platform/bindings/scoped_persistent.h"
 #include "third_party/blink/renderer/platform/bindings/v8_throw_exception.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/platform/bindings/microtask.h b/third_party/blink/renderer/platform/bindings/microtask.h
index be2e694..5ef3a4a 100644
--- a/third_party/blink/renderer/platform/bindings/microtask.h
+++ b/third_party/blink/renderer/platform/bindings/microtask.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_BINDINGS_MICROTASK_H_
 
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/platform/bindings/parkable_string.cc b/third_party/blink/renderer/platform/bindings/parkable_string.cc
index a307d5a..05bd7d3 100644
--- a/third_party/blink/renderer/platform/bindings/parkable_string.cc
+++ b/third_party/blink/renderer/platform/bindings/parkable_string.cc
@@ -18,7 +18,7 @@
 #include "third_party/blink/renderer/platform/scheduler/public/post_cross_thread_task.h"
 #include "third_party/blink/renderer/platform/scheduler/public/thread.h"
 #include "third_party/blink/renderer/platform/scheduler/public/worker_pool.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/partitions.h"
 #include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
 #include "third_party/blink/renderer/platform/wtf/sanitizers.h"
diff --git a/third_party/blink/renderer/platform/bindings/parkable_string.h b/third_party/blink/renderer/platform/bindings/parkable_string.h
index ede2d5f..4b68ce3 100644
--- a/third_party/blink/renderer/platform/bindings/parkable_string.h
+++ b/third_party/blink/renderer/platform/bindings/parkable_string.h
@@ -14,7 +14,7 @@
 #include "base/macros.h"
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/threading.h"
diff --git a/third_party/blink/renderer/platform/bindings/parkable_string_manager.h b/third_party/blink/renderer/platform/bindings/parkable_string_manager.h
index afd152b..8bbcbd9 100644
--- a/third_party/blink/renderer/platform/bindings/parkable_string_manager.h
+++ b/third_party/blink/renderer/platform/bindings/parkable_string_manager.h
@@ -12,7 +12,7 @@
 #include "base/trace_event/memory_dump_provider.h"
 #include "third_party/blink/renderer/platform/bindings/parkable_string.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_functions.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
diff --git a/third_party/blink/renderer/platform/bindings/runtime_call_stats.h b/third_party/blink/renderer/platform/bindings/runtime_call_stats.h
index 2716de4..845865c 100644
--- a/third_party/blink/renderer/platform/bindings/runtime_call_stats.h
+++ b/third_party/blink/renderer/platform/bindings/runtime_call_stats.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/platform/bindings/buildflags.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/time.h"
 #include "v8/include/v8.h"
diff --git a/third_party/blink/renderer/platform/bindings/scoped_persistent.h b/third_party/blink/renderer/platform/bindings/scoped_persistent.h
index 86ef8551..fd3267a 100644
--- a/third_party/blink/renderer/platform/bindings/scoped_persistent.h
+++ b/third_party/blink/renderer/platform/bindings/scoped_persistent.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_BINDINGS_SCOPED_PERSISTENT_H_
 
 #include "base/macros.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/bindings/script_forbidden_scope.h b/third_party/blink/renderer/platform/bindings/script_forbidden_scope.h
index ae44c6d..d749dc6a 100644
--- a/third_party/blink/renderer/platform/bindings/script_forbidden_scope.h
+++ b/third_party/blink/renderer/platform/bindings/script_forbidden_scope.h
@@ -9,7 +9,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/bindings/v8_throw_exception.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/stack_util.h"
 #include "third_party/blink/renderer/platform/wtf/wtf.h"
 
diff --git a/third_party/blink/renderer/platform/bindings/string_resource.h b/third_party/blink/renderer/platform/bindings/string_resource.h
index 6cd6989f..b874846 100644
--- a/third_party/blink/renderer/platform/bindings/string_resource.h
+++ b/third_party/blink/renderer/platform/bindings/string_resource.h
@@ -8,7 +8,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/bindings/parkable_string.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/threading.h"
 #include "v8/include/v8.h"
diff --git a/third_party/blink/renderer/platform/bindings/v0_custom_element_binding.h b/third_party/blink/renderer/platform/bindings/v0_custom_element_binding.h
index 46eae21..401a51a 100644
--- a/third_party/blink/renderer/platform/bindings/v0_custom_element_binding.h
+++ b/third_party/blink/renderer/platform/bindings/v0_custom_element_binding.h
@@ -35,7 +35,7 @@
 
 #include "third_party/blink/renderer/platform/bindings/scoped_persistent.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/bindings/v8_cross_origin_setter_info.h b/third_party/blink/renderer/platform/bindings/v8_cross_origin_setter_info.h
index 85b2e4d..068c3f8e 100644
--- a/third_party/blink/renderer/platform/bindings/v8_cross_origin_setter_info.h
+++ b/third_party/blink/renderer/platform/bindings/v8_cross_origin_setter_info.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_BINDINGS_V8_CROSS_ORIGIN_SETTER_INFO_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_BINDINGS_V8_CROSS_ORIGIN_SETTER_INFO_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/bindings/v8_global_value_map.h b/third_party/blink/renderer/platform/bindings/v8_global_value_map.h
index 6ca82ae..eb5e19b 100644
--- a/third_party/blink/renderer/platform/bindings/v8_global_value_map.h
+++ b/third_party/blink/renderer/platform/bindings/v8_global_value_map.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_BINDINGS_V8_GLOBAL_VALUE_MAP_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_BINDINGS_V8_GLOBAL_VALUE_MAP_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
 #include "v8/include/v8-util.h"
diff --git a/third_party/blink/renderer/platform/bindings/v8_object_constructor.h b/third_party/blink/renderer/platform/bindings/v8_object_constructor.h
index 89f99bf..322b265 100644
--- a/third_party/blink/renderer/platform/bindings/v8_object_constructor.h
+++ b/third_party/blink/renderer/platform/bindings/v8_object_constructor.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/platform/bindings/v8_per_isolate_data.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/bindings/v8_per_context_data.h b/third_party/blink/renderer/platform/bindings/v8_per_context_data.h
index 89b5777..146dbe6b 100644
--- a/third_party/blink/renderer/platform/bindings/v8_per_context_data.h
+++ b/third_party/blink/renderer/platform/bindings/v8_per_context_data.h
@@ -40,7 +40,7 @@
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string_hash.h"
diff --git a/third_party/blink/renderer/platform/bindings/v8_private_property.h b/third_party/blink/renderer/platform/bindings/v8_private_property.h
index a0a07915..0075921 100644
--- a/third_party/blink/renderer/platform/bindings/v8_private_property.h
+++ b/third_party/blink/renderer/platform/bindings/v8_private_property.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/platform/bindings/v8_binding_macros.h"
 #include "third_party/blink/renderer/platform/bindings/v8_per_isolate_data.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "v8/include/v8.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/bindings/v8_throw_exception.h b/third_party/blink/renderer/platform/bindings/v8_throw_exception.h
index 24431f5..db4162d 100644
--- a/third_party/blink/renderer/platform/bindings/v8_throw_exception.h
+++ b/third_party/blink/renderer/platform/bindings/v8_throw_exception.h
@@ -26,7 +26,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_BINDINGS_V8_THROW_EXCEPTION_H_
 
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/platform/bindings/v8_value_cache.h b/third_party/blink/renderer/platform/bindings/v8_value_cache.h
index 5f8d3142..5e75c0b4 100644
--- a/third_party/blink/renderer/platform/bindings/v8_value_cache.h
+++ b/third_party/blink/renderer/platform/bindings/v8_value_cache.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/renderer/platform/bindings/parkable_string.h"
 #include "third_party/blink/renderer/platform/bindings/v8_global_value_map.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/platform/bindings/wrapper_type_info.h b/third_party/blink/renderer/platform/bindings/wrapper_type_info.h
index 6bdd8b74..4b873d3 100644
--- a/third_party/blink/renderer/platform/bindings/wrapper_type_info.h
+++ b/third_party/blink/renderer/platform/bindings/wrapper_type_info.h
@@ -33,7 +33,7 @@
 
 #include "gin/public/wrapper_info.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "v8/include/v8.h"
 
diff --git a/third_party/blink/renderer/platform/blob/blob_bytes_provider.cc b/third_party/blink/renderer/platform/blob/blob_bytes_provider.cc
index eab93dd..403ee61e 100644
--- a/third_party/blink/renderer/platform/blob/blob_bytes_provider.cc
+++ b/third_party/blink/renderer/platform/blob/blob_bytes_provider.cc
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/platform/histogram.h"
 #include "third_party/blink/renderer/platform/scheduler/public/post_cross_thread_task.h"
 #include "third_party/blink/renderer/platform/scheduler/public/thread.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
 
diff --git a/third_party/blink/renderer/platform/blob/blob_data.h b/third_party/blink/renderer/platform/blob/blob_data.h
index 82135c9..2df92b52 100644
--- a/third_party/blink/renderer/platform/blob/blob_data.h
+++ b/third_party/blink/renderer/platform/blob/blob_data.h
@@ -44,7 +44,7 @@
 #include "mojo/public/cpp/bindings/interface_ptr.h"
 #include "mojo/public/cpp/bindings/struct_ptr.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/thread_safe_ref_counted.h"
diff --git a/third_party/blink/renderer/platform/blob/blob_registry.h b/third_party/blink/renderer/platform/blob/blob_registry.h
index 13cd04d..d4bd386 100644
--- a/third_party/blink/renderer/platform/blob/blob_registry.h
+++ b/third_party/blink/renderer/platform/blob/blob_registry.h
@@ -33,7 +33,7 @@
 
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/blob/blob_url.h b/third_party/blink/renderer/platform/blob/blob_url.h
index 6290673..ff76da3 100644
--- a/third_party/blink/renderer/platform/blob/blob_url.h
+++ b/third_party/blink/renderer/platform/blob/blob_url.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_BLOB_BLOB_URL_H_
 
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/blob/testing/fake_blob.cc b/third_party/blink/renderer/platform/blob/testing/fake_blob.cc
index cefdbf3..52c0235 100644
--- a/third_party/blink/renderer/platform/blob/testing/fake_blob.cc
+++ b/third_party/blink/renderer/platform/blob/testing/fake_blob.cc
@@ -7,7 +7,6 @@
 #include "mojo/public/cpp/bindings/strong_binding.h"
 #include "mojo/public/cpp/system/data_pipe_utils.h"
 #include "services/network/public/mojom/data_pipe_getter.mojom-blink.h"
-#include "third_party/blink/public/platform/web_string.h"
 
 namespace blink {
 namespace {
@@ -21,7 +20,7 @@
   void Read(mojo::ScopedDataPipeProducerHandle handle,
             ReadCallback callback) override {
     std::move(callback).Run(0 /* OK */, str_.length());
-    bool result = mojo::BlockingCopyFromString(WebString(str_).Utf8(), handle);
+    bool result = mojo::BlockingCopyFromString(str_.Utf8(), handle);
     DCHECK(result);
   }
 
@@ -67,7 +66,7 @@
     state_->did_initiate_read_operation = true;
   if (client)
     client->OnCalculatedSize(body_.length(), body_.length());
-  bool result = mojo::BlockingCopyFromString(WebString(body_).Utf8(), handle);
+  bool result = mojo::BlockingCopyFromString(body_.Utf8(), handle);
   DCHECK(result);
   if (client)
     client->OnComplete(0 /* OK */, body_.length());
diff --git a/third_party/blink/renderer/platform/crypto.h b/third_party/blink/renderer/platform/crypto.h
index 09258ac..b6663502 100644
--- a/third_party/blink/renderer/platform/crypto.h
+++ b/third_party/blink/renderer/platform/crypto.h
@@ -7,7 +7,7 @@
 
 #include "base/containers/span.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_functions.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_hasher.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/platform/exported/platform.cc b/third_party/blink/renderer/platform/exported/platform.cc
index 1861861..499aaa0e0 100644
--- a/third_party/blink/renderer/platform/exported/platform.cc
+++ b/third_party/blink/renderer/platform/exported/platform.cc
@@ -62,7 +62,7 @@
 #include "third_party/blink/renderer/platform/scheduler/common/simple_thread_scheduler.h"
 #include "third_party/blink/renderer/platform/scheduler/public/post_cross_thread_task.h"
 #include "third_party/blink/renderer/platform/scheduler/public/thread.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/webrtc/api/async_resolver_factory.h"
diff --git a/third_party/blink/renderer/platform/exported/web_font.cc b/third_party/blink/renderer/platform/exported/web_font.cc
index ef94ae8..daec7cee 100644
--- a/third_party/blink/renderer/platform/exported/web_font.cc
+++ b/third_party/blink/renderer/platform/exported/web_font.cc
@@ -17,7 +17,7 @@
 #include "third_party/blink/renderer/platform/graphics/paint/drawing_recorder.h"
 #include "third_party/blink/renderer/platform/graphics/paint/paint_record_builder.h"
 #include "third_party/blink/renderer/platform/text/text_run.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/exported/web_http_header_map.cc b/third_party/blink/renderer/platform/exported/web_http_header_map.cc
index d2cd272..0e63830c 100644
--- a/third_party/blink/renderer/platform/exported/web_http_header_map.cc
+++ b/third_party/blink/renderer/platform/exported/web_http_header_map.cc
@@ -10,7 +10,7 @@
 #include "net/http/http_response_headers.h"
 #include "third_party/blink/public/platform/web_string.h"
 #include "third_party/blink/renderer/platform/network/http_header_map.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/exported/web_rtc_session_description.cc b/third_party/blink/renderer/platform/exported/web_rtc_session_description.cc
index 178a06b2..2de0d60 100644
--- a/third_party/blink/renderer/platform/exported/web_rtc_session_description.cc
+++ b/third_party/blink/renderer/platform/exported/web_rtc_session_description.cc
@@ -32,7 +32,7 @@
 
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/public/platform/web_string.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/exported/web_url_request.cc b/third_party/blink/renderer/platform/exported/web_url_request.cc
index 1a7c46b..acf0939 100644
--- a/third_party/blink/renderer/platform/exported/web_url_request.cc
+++ b/third_party/blink/renderer/platform/exported/web_url_request.cc
@@ -42,7 +42,7 @@
 #include "third_party/blink/renderer/platform/loader/fetch/resource_request.h"
 #include "third_party/blink/renderer/platform/network/encoded_form_data.h"
 #include "third_party/blink/renderer/platform/weborigin/security_origin.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 using blink::mojom::FetchCacheMode;
 
diff --git a/third_party/blink/renderer/platform/exported/web_url_response.cc b/third_party/blink/renderer/platform/exported/web_url_response.cc
index c3274be..5b0f59cf 100644
--- a/third_party/blink/renderer/platform/exported/web_url_response.cc
+++ b/third_party/blink/renderer/platform/exported/web_url_response.cc
@@ -43,7 +43,7 @@
 #include "third_party/blink/public/platform/web_url_load_timing.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_load_timing.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_response.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/exported/wrapped_resource_request.h b/third_party/blink/renderer/platform/exported/wrapped_resource_request.h
index 5cdf3ed..c1cceec 100644
--- a/third_party/blink/renderer/platform/exported/wrapped_resource_request.h
+++ b/third_party/blink/renderer/platform/exported/wrapped_resource_request.h
@@ -33,7 +33,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/public/platform/web_url_request.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/file_metadata.h b/third_party/blink/renderer/platform/file_metadata.h
index f2ca14d..10db67e 100644
--- a/third_party/blink/renderer/platform/file_metadata.h
+++ b/third_party/blink/renderer/platform/file_metadata.h
@@ -35,7 +35,7 @@
 #include "base/files/file.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/math_extras.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/platform/fonts/bitmap_glyphs_block_list.h b/third_party/blink/renderer/platform/fonts/bitmap_glyphs_block_list.h
index e46a4e9e..b8a4621 100644
--- a/third_party/blink/renderer/platform/fonts/bitmap_glyphs_block_list.h
+++ b/third_party/blink/renderer/platform/fonts/bitmap_glyphs_block_list.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_BITMAP_GLYPHS_BLOCK_LIST_H_
 
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 class SkTypeface;
 
diff --git a/third_party/blink/renderer/platform/fonts/fallback_list_composite_key.h b/third_party/blink/renderer/platform/fonts/fallback_list_composite_key.h
index 1693b83..14572e7 100644
--- a/third_party/blink/renderer/platform/fonts/fallback_list_composite_key.h
+++ b/third_party/blink/renderer/platform/fonts/fallback_list_composite_key.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/platform/fonts/font_cache_key.h"
 #include "third_party/blink/renderer/platform/fonts/font_description.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/hash_table_deleted_value_type.h"
 
diff --git a/third_party/blink/renderer/platform/fonts/font.h b/third_party/blink/renderer/platform/fonts/font.h
index 524afd2f..9657c86 100644
--- a/third_party/blink/renderer/platform/fonts/font.h
+++ b/third_party/blink/renderer/platform/fonts/font.h
@@ -33,7 +33,7 @@
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/text/tab_size.h"
 #include "third_party/blink/renderer/platform/text/text_direction.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/math_extras.h"
diff --git a/third_party/blink/renderer/platform/fonts/font_cache.h b/third_party/blink/renderer/platform/fonts/font_cache.h
index 19eea65..9845fcd 100644
--- a/third_party/blink/renderer/platform/fonts/font_cache.h
+++ b/third_party/blink/renderer/platform/fonts/font_cache.h
@@ -46,7 +46,7 @@
 #include "third_party/blink/renderer/platform/heap/heap_allocator.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
diff --git a/third_party/blink/renderer/platform/fonts/font_cache_key.h b/third_party/blink/renderer/platform/fonts/font_cache_key.h
index f9d07ff2..73a8779b 100644
--- a/third_party/blink/renderer/platform/fonts/font_cache_key.h
+++ b/third_party/blink/renderer/platform/fonts/font_cache_key.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/platform/fonts/font_face_creation_params.h"
 #include "third_party/blink/renderer/platform/fonts/opentype/font_settings.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/hash_table_deleted_value_type.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string_hash.h"
diff --git a/third_party/blink/renderer/platform/fonts/font_cache_memory_dump_provider.h b/third_party/blink/renderer/platform/fonts/font_cache_memory_dump_provider.h
index abac740..6bd0fb9f 100644
--- a/third_party/blink/renderer/platform/fonts/font_cache_memory_dump_provider.h
+++ b/third_party/blink/renderer/platform/fonts/font_cache_memory_dump_provider.h
@@ -9,7 +9,7 @@
 #include "base/trace_event/memory_dump_provider.h"
 #include "base/trace_event/process_memory_dump.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/fonts/font_custom_platform_data.h b/third_party/blink/renderer/platform/fonts/font_custom_platform_data.h
index 6a1806a..002e284 100644
--- a/third_party/blink/renderer/platform/fonts/font_custom_platform_data.h
+++ b/third_party/blink/renderer/platform/fonts/font_custom_platform_data.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/renderer/platform/fonts/font_orientation.h"
 #include "third_party/blink/renderer/platform/fonts/font_selection_types.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/platform/fonts/font_data.h b/third_party/blink/renderer/platform/fonts/font_data.h
index f6544d37..3535115d 100644
--- a/third_party/blink/renderer/platform/fonts/font_data.h
+++ b/third_party/blink/renderer/platform/fonts/font_data.h
@@ -29,7 +29,7 @@
 #include "base/macros.h"
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
diff --git a/third_party/blink/renderer/platform/fonts/font_data_for_range_set.h b/third_party/blink/renderer/platform/fonts/font_data_for_range_set.h
index 568e5de2..7e218d6 100644
--- a/third_party/blink/renderer/platform/fonts/font_data_for_range_set.h
+++ b/third_party/blink/renderer/platform/fonts/font_data_for_range_set.h
@@ -29,7 +29,7 @@
 #include "third_party/blink/renderer/platform/fonts/font_data.h"
 #include "third_party/blink/renderer/platform/fonts/simple_font_data.h"
 #include "third_party/blink/renderer/platform/fonts/unicode_range_set.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/character_names.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/fonts/font_description.h b/third_party/blink/renderer/platform/fonts/font_description.h
index 9db2e58f..5306455 100644
--- a/third_party/blink/renderer/platform/fonts/font_description.h
+++ b/third_party/blink/renderer/platform/fonts/font_description.h
@@ -42,7 +42,7 @@
 #include "third_party/blink/renderer/platform/fonts/text_rendering_mode.h"
 #include "third_party/blink/renderer/platform/fonts/typesetting_features.h"
 #include "third_party/blink/renderer/platform/text/layout_locale.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/math_extras.h"
 #include "third_party/skia/include/core/SkFontStyle.h"
 
diff --git a/third_party/blink/renderer/platform/fonts/font_face_creation_params.h b/third_party/blink/renderer/platform/fonts/font_face_creation_params.h
index 5989a0d4..e29231e 100644
--- a/third_party/blink/renderer/platform/fonts/font_face_creation_params.h
+++ b/third_party/blink/renderer/platform/fonts/font_face_creation_params.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_FONT_FACE_CREATION_PARAMS_H_
 
 #include "build/build_config.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
diff --git a/third_party/blink/renderer/platform/fonts/font_fallback_iterator.h b/third_party/blink/renderer/platform/fonts/font_fallback_iterator.h
index 9ef4bed..03f264cd 100644
--- a/third_party/blink/renderer/platform/fonts/font_fallback_iterator.h
+++ b/third_party/blink/renderer/platform/fonts/font_fallback_iterator.h
@@ -8,7 +8,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/platform/fonts/font_data_for_range_set.h"
 #include "third_party/blink/renderer/platform/fonts/font_fallback_priority.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
diff --git a/third_party/blink/renderer/platform/fonts/font_fallback_list.h b/third_party/blink/renderer/platform/fonts/font_fallback_list.h
index 2d9636e2..4a60421 100644
--- a/third_party/blink/renderer/platform/fonts/font_fallback_list.h
+++ b/third_party/blink/renderer/platform/fonts/font_fallback_list.h
@@ -28,7 +28,7 @@
 #include "third_party/blink/renderer/platform/fonts/shaping/shape_cache.h"
 #include "third_party/blink/renderer/platform/fonts/simple_font_data.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 
diff --git a/third_party/blink/renderer/platform/fonts/font_global_context.h b/third_party/blink/renderer/platform/fonts/font_global_context.h
index eac46454..63c3c861 100644
--- a/third_party/blink/renderer/platform/fonts/font_global_context.h
+++ b/third_party/blink/renderer/platform/fonts/font_global_context.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/text/layout_locale.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 struct hb_font_funcs_t;
 
diff --git a/third_party/blink/renderer/platform/fonts/font_metrics.h b/third_party/blink/renderer/platform/fonts/font_metrics.h
index e440a79c..5cfbc45 100644
--- a/third_party/blink/renderer/platform/fonts/font_metrics.h
+++ b/third_party/blink/renderer/platform/fonts/font_metrics.h
@@ -22,7 +22,7 @@
 
 #include "third_party/blink/renderer/platform/fonts/font_baseline.h"
 #include "third_party/blink/renderer/platform/geometry/layout_unit.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/math_extras.h"
 
 class SkFont;
diff --git a/third_party/blink/renderer/platform/fonts/font_platform_data.h b/third_party/blink/renderer/platform/fonts/font_platform_data.h
index 4a6a60e..696ec218 100644
--- a/third_party/blink/renderer/platform/fonts/font_platform_data.h
+++ b/third_party/blink/renderer/platform/fonts/font_platform_data.h
@@ -38,7 +38,7 @@
 #include "third_party/blink/renderer/platform/fonts/font_orientation.h"
 #include "third_party/blink/renderer/platform/fonts/small_caps_iterator.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/hash_table_deleted_value_type.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_impl.h"
diff --git a/third_party/blink/renderer/platform/fonts/font_selection_types.h b/third_party/blink/renderer/platform/fonts/font_selection_types.h
index 7c33e40..21d24e7 100644
--- a/third_party/blink/renderer/platform/fonts/font_selection_types.h
+++ b/third_party/blink/renderer/platform/fonts/font_selection_types.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_FONT_SELECTION_TYPES_H_
 
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_table_deleted_value_type.h"
 #include "third_party/blink/renderer/platform/wtf/hash_traits.h"
 #include "third_party/blink/renderer/platform/wtf/math_extras.h"
diff --git a/third_party/blink/renderer/platform/fonts/font_unique_name_lookup.h b/third_party/blink/renderer/platform/fonts/font_unique_name_lookup.h
index 39b5a8c2..772a76b2 100644
--- a/third_party/blink/renderer/platform/fonts/font_unique_name_lookup.h
+++ b/third_party/blink/renderer/platform/fonts/font_unique_name_lookup.h
@@ -8,7 +8,7 @@
 #include "base/callback.h"
 #include "base/macros.h"
 #include "build/build_config.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/skia/include/core/SkRefCnt.h"
 #include "third_party/skia/include/core/SkTypeface.h"
diff --git a/third_party/blink/renderer/platform/fonts/font_variant_east_asian.h b/third_party/blink/renderer/platform/fonts/font_variant_east_asian.h
index e0b9370..fb545f0 100644
--- a/third_party/blink/renderer/platform/fonts/font_variant_east_asian.h
+++ b/third_party/blink/renderer/platform/fonts/font_variant_east_asian.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_FONT_VARIANT_EAST_ASIAN_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_FONT_VARIANT_EAST_ASIAN_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/fonts/font_variant_numeric.h b/third_party/blink/renderer/platform/fonts/font_variant_numeric.h
index 586a670..7db96cb5 100644
--- a/third_party/blink/renderer/platform/fonts/font_variant_numeric.h
+++ b/third_party/blink/renderer/platform/fonts/font_variant_numeric.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_FONT_VARIANT_NUMERIC_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_FONT_VARIANT_NUMERIC_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/fonts/generic_font_family_settings.h b/third_party/blink/renderer/platform/fonts/generic_font_family_settings.h
index f5166531..ac58c70 100644
--- a/third_party/blink/renderer/platform/fonts/generic_font_family_settings.h
+++ b/third_party/blink/renderer/platform/fonts/generic_font_family_settings.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_GENERIC_FONT_FAMILY_SETTINGS_H_
 
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string_hash.h"
diff --git a/third_party/blink/renderer/platform/fonts/glyph_metrics_map.h b/third_party/blink/renderer/platform/fonts/glyph_metrics_map.h
index 9386930..784461f2 100644
--- a/third_party/blink/renderer/platform/fonts/glyph_metrics_map.h
+++ b/third_party/blink/renderer/platform/fonts/glyph_metrics_map.h
@@ -34,7 +34,7 @@
 #include "base/memory/ptr_util.h"
 #include "third_party/blink/renderer/platform/fonts/glyph.h"
 #include "third_party/blink/renderer/platform/geometry/float_rect.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
diff --git a/third_party/blink/renderer/platform/fonts/opentype/font_format_check.h b/third_party/blink/renderer/platform/fonts/opentype/font_format_check.h
index cab0acc..6567124 100644
--- a/third_party/blink/renderer/platform/fonts/opentype/font_format_check.h
+++ b/third_party/blink/renderer/platform/fonts/opentype/font_format_check.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_OPENTYPE_FONT_FORMAT_CHECK_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_OPENTYPE_FONT_FORMAT_CHECK_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 #include "third_party/skia/include/core/SkData.h"
 #include "third_party/skia/include/core/SkRefCnt.h"
diff --git a/third_party/blink/renderer/platform/fonts/opentype/font_settings.h b/third_party/blink/renderer/platform/fonts/opentype/font_settings.h
index 316dc2b..10ab2aec 100644
--- a/third_party/blink/renderer/platform/fonts/opentype/font_settings.h
+++ b/third_party/blink/renderer/platform/fonts/opentype/font_settings.h
@@ -8,7 +8,7 @@
 #include "base/macros.h"
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
diff --git a/third_party/blink/renderer/platform/fonts/opentype/open_type_caps_support.h b/third_party/blink/renderer/platform/fonts/opentype/open_type_caps_support.h
index 598638d..4fd0db3c 100644
--- a/third_party/blink/renderer/platform/fonts/opentype/open_type_caps_support.h
+++ b/third_party/blink/renderer/platform/fonts/opentype/open_type_caps_support.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/platform/fonts/shaping/case_mapping_harfbuzz_buffer_filler.h"
 #include "third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.h"
 #include "third_party/blink/renderer/platform/fonts/small_caps_iterator.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 #include <hb.h>
 
diff --git a/third_party/blink/renderer/platform/fonts/opentype/open_type_vertical_data.h b/third_party/blink/renderer/platform/fonts/opentype/open_type_vertical_data.h
index 0a1db95..84b6ff3 100644
--- a/third_party/blink/renderer/platform/fonts/opentype/open_type_vertical_data.h
+++ b/third_party/blink/renderer/platform/fonts/opentype/open_type_vertical_data.h
@@ -28,7 +28,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/platform/fonts/glyph.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/platform/fonts/orientation_iterator.h b/third_party/blink/renderer/platform/fonts/orientation_iterator.h
index 724ebca8..f0a6de87 100644
--- a/third_party/blink/renderer/platform/fonts/orientation_iterator.h
+++ b/third_party/blink/renderer/platform/fonts/orientation_iterator.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/platform/fonts/font_orientation.h"
 #include "third_party/blink/renderer/platform/fonts/script_run_iterator.h"
 #include "third_party/blink/renderer/platform/fonts/utf16_text_iterator.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/fonts/script_run_iterator.h b/third_party/blink/renderer/platform/fonts/script_run_iterator.h
index 8f6bf2f..7bcef5f 100644
--- a/third_party/blink/renderer/platform/fonts/script_run_iterator.h
+++ b/third_party/blink/renderer/platform/fonts/script_run_iterator.h
@@ -7,7 +7,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/deque.h"
 #include "third_party/blink/renderer/platform/wtf/dtoa/utils.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/platform/fonts/shaping/caching_word_shape_iterator.h b/third_party/blink/renderer/platform/fonts/shaping/caching_word_shape_iterator.h
index 75f95665..af68756 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/caching_word_shape_iterator.h
+++ b/third_party/blink/renderer/platform/fonts/shaping/caching_word_shape_iterator.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/renderer/platform/fonts/shaping/shape_cache.h"
 #include "third_party/blink/renderer/platform/fonts/shaping/shape_result_spacing.h"
 #include "third_party/blink/renderer/platform/fonts/simple_font_data.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/character_names.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/fonts/shaping/caching_word_shaper.h b/third_party/blink/renderer/platform/fonts/shaping/caching_word_shaper.h
index 33f4ea8..df8e435 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/caching_word_shaper.h
+++ b/third_party/blink/renderer/platform/fonts/shaping/caching_word_shaper.h
@@ -30,7 +30,7 @@
 #include "third_party/blink/renderer/platform/fonts/shaping/shape_result_buffer.h"
 #include "third_party/blink/renderer/platform/geometry/float_rect.h"
 #include "third_party/blink/renderer/platform/text/text_run.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/fonts/shaping/case_mapping_harfbuzz_buffer_filler.h b/third_party/blink/renderer/platform/fonts/shaping/case_mapping_harfbuzz_buffer_filler.h
index e67c770..6468f6c 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/case_mapping_harfbuzz_buffer_filler.h
+++ b/third_party/blink/renderer/platform/fonts/shaping/case_mapping_harfbuzz_buffer_filler.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_SHAPING_CASE_MAPPING_HARFBUZZ_BUFFER_FILLER_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_SHAPING_CASE_MAPPING_HARFBUZZ_BUFFER_FILLER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.h b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.h
index fa031387..64437e3 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.h
+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.h
@@ -35,7 +35,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/platform/fonts/typesetting_features.h"
 #include "third_party/blink/renderer/platform/fonts/unicode_range_set.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/text/character_names.h"
diff --git a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper.h b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper.h
index ba982bc6..817cd33 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper.h
+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/platform/fonts/shaping/run_segmenter.h"
 #include "third_party/blink/renderer/platform/fonts/shaping/shape_result.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/platform/fonts/shaping/run_segmenter.h b/third_party/blink/renderer/platform/fonts/shaping/run_segmenter.h
index 2a6f7c9..f11791d1 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/run_segmenter.h
+++ b/third_party/blink/renderer/platform/fonts/shaping/run_segmenter.h
@@ -14,7 +14,7 @@
 #include "third_party/blink/renderer/platform/fonts/small_caps_iterator.h"
 #include "third_party/blink/renderer/platform/fonts/symbols_iterator.h"
 #include "third_party/blink/renderer/platform/fonts/utf16_text_iterator.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result.h b/third_party/blink/renderer/platform/fonts/shaping/shape_result.h
index 87e0b8e..5fa78fbb 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/shape_result.h
+++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result.h
@@ -40,7 +40,7 @@
 #include "third_party/blink/renderer/platform/geometry/layout_unit.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/text/text_direction.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_bloberizer.h b/third_party/blink/renderer/platform/fonts/shaping/shape_result_bloberizer.h
index 589f4af9..2dc99db0 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_bloberizer.h
+++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_bloberizer.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/platform/fonts/simple_font_data.h"
 #include "third_party/blink/renderer/platform/geometry/float_point.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 #include "third_party/skia/include/core/SkTextBlob.h"
 
diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_buffer.h b/third_party/blink/renderer/platform/fonts/shaping/shape_result_buffer.h
index 7bbf1ef..12303d8 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_buffer.h
+++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_buffer.h
@@ -8,7 +8,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/platform/fonts/shaping/shape_result.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
index 5d43e78d..a1a6708 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
+++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
@@ -35,7 +35,7 @@
 #include <hb.h>
 #include <memory>
 #include "third_party/blink/renderer/platform/fonts/shaping/shape_result.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_spacing.h b/third_party/blink/renderer/platform/fonts/shaping/shape_result_spacing.h
index 42a3061..b18d26a5 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_spacing.h
+++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_spacing.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/text/character.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_test_info.h b/third_party/blink/renderer/platform/fonts/shaping/shape_result_test_info.h
index 847c4da..0b8956c 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_test_info.h
+++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_test_info.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper.h"
 #include "third_party/blink/renderer/platform/fonts/shaping/shape_result_bloberizer.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 #include <hb.h>
 
diff --git a/third_party/blink/renderer/platform/fonts/skia/sktypeface_factory.h b/third_party/blink/renderer/platform/fonts/skia/sktypeface_factory.h
index edf7b9f..65f9d4a7 100644
--- a/third_party/blink/renderer/platform/fonts/skia/sktypeface_factory.h
+++ b/third_party/blink/renderer/platform/fonts/skia/sktypeface_factory.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_SKIA_SKTYPEFACE_FACTORY_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_SKIA_SKTYPEFACE_FACTORY_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/skia/include/core/SkRefCnt.h"
 #include "third_party/skia/include/core/SkTypeface.h"
 
diff --git a/third_party/blink/renderer/platform/fonts/small_caps_iterator.h b/third_party/blink/renderer/platform/fonts/small_caps_iterator.h
index 294a46a..e610862 100644
--- a/third_party/blink/renderer/platform/fonts/small_caps_iterator.h
+++ b/third_party/blink/renderer/platform/fonts/small_caps_iterator.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/platform/fonts/font_orientation.h"
 #include "third_party/blink/renderer/platform/fonts/script_run_iterator.h"
 #include "third_party/blink/renderer/platform/fonts/utf16_text_iterator.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/fonts/string_truncator.h b/third_party/blink/renderer/platform/fonts/string_truncator.h
index 0a8b2d1..fc5fa490 100644
--- a/third_party/blink/renderer/platform/fonts/string_truncator.h
+++ b/third_party/blink/renderer/platform/fonts/string_truncator.h
@@ -30,7 +30,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_STRING_TRUNCATOR_H_
 
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/fonts/symbols_iterator.h b/third_party/blink/renderer/platform/fonts/symbols_iterator.h
index b6343c1..665845e 100644
--- a/third_party/blink/renderer/platform/fonts/symbols_iterator.h
+++ b/third_party/blink/renderer/platform/fonts/symbols_iterator.h
@@ -10,7 +10,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/fonts/font_fallback_priority.h"
 #include "third_party/blink/renderer/platform/fonts/utf16_ragel_iterator.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/fonts/unicode_range_set.h b/third_party/blink/renderer/platform/fonts/unicode_range_set.h
index f714264..634eb99f 100644
--- a/third_party/blink/renderer/platform/fonts/unicode_range_set.h
+++ b/third_party/blink/renderer/platform/fonts/unicode_range_set.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_UNICODE_RANGE_SET_H_
 
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/text/character_names.h"
 #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
diff --git a/third_party/blink/renderer/platform/fonts/utf16_ragel_iterator.h b/third_party/blink/renderer/platform/fonts/utf16_ragel_iterator.h
index e3acb799..a9232d0 100644
--- a/third_party/blink/renderer/platform/fonts/utf16_ragel_iterator.h
+++ b/third_party/blink/renderer/platform/fonts/utf16_ragel_iterator.h
@@ -9,7 +9,7 @@
 
 #include "base/logging.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/fonts/utf16_text_iterator.h b/third_party/blink/renderer/platform/fonts/utf16_text_iterator.h
index f5e8eca..85443831 100644
--- a/third_party/blink/renderer/platform/fonts/utf16_text_iterator.h
+++ b/third_party/blink/renderer/platform/fonts/utf16_text_iterator.h
@@ -23,7 +23,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/character_names.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/platform/fonts/vdmx_parser.cc b/third_party/blink/renderer/platform/fonts/vdmx_parser.cc
index 842dcf2..ab4caf5 100644
--- a/third_party/blink/renderer/platform/fonts/vdmx_parser.cc
+++ b/third_party/blink/renderer/platform/fonts/vdmx_parser.cc
@@ -32,7 +32,7 @@
 
 #include "base/macros.h"
 #include "base/sys_byteorder.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 #include <stdlib.h>
 #include <string.h>
diff --git a/third_party/blink/renderer/platform/fonts/web_font_decoder.h b/third_party/blink/renderer/platform/fonts/web_font_decoder.h
index 4d5578a..5488789 100644
--- a/third_party/blink/renderer/platform/fonts/web_font_decoder.h
+++ b/third_party/blink/renderer/platform/fonts/web_font_decoder.h
@@ -31,7 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_WEB_FONT_DECODER_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_WEB_FONT_DECODER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/skia/include/core/SkRefCnt.h"
 
diff --git a/third_party/blink/renderer/platform/fonts/web_font_typeface_factory.h b/third_party/blink/renderer/platform/fonts/web_font_typeface_factory.h
index 1f02f7d..e76c398 100644
--- a/third_party/blink/renderer/platform/fonts/web_font_typeface_factory.h
+++ b/third_party/blink/renderer/platform/fonts/web_font_typeface_factory.h
@@ -8,7 +8,7 @@
 #include "third_party/skia/include/core/SkFontMgr.h"
 
 #include "build/build_config.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #if defined(OS_WIN) || defined(OS_MACOSX)
 #include "third_party/skia/include/ports/SkFontMgr_empty.h"
 #endif
diff --git a/third_party/blink/renderer/platform/geometry/calculation_value.h b/third_party/blink/renderer/platform/geometry/calculation_value.h
index 99594ea..bea5a86 100644
--- a/third_party/blink/renderer/platform/geometry/calculation_value.h
+++ b/third_party/blink/renderer/platform/geometry/calculation_value.h
@@ -34,7 +34,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/platform/geometry/length.h"
 #include "third_party/blink/renderer/platform/geometry/length_functions.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/geometry/double_point.h b/third_party/blink/renderer/platform/geometry/double_point.h
index 287e2985..3b16da26 100644
--- a/third_party/blink/renderer/platform/geometry/double_point.h
+++ b/third_party/blink/renderer/platform/geometry/double_point.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/platform/geometry/double_size.h"
 #include "third_party/blink/renderer/platform/geometry/float_point.h"
 #include "third_party/blink/renderer/platform/geometry/int_point.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/geometry/double_rect.h b/third_party/blink/renderer/platform/geometry/double_rect.h
index d0560dae..f2cd39d 100644
--- a/third_party/blink/renderer/platform/geometry/double_rect.h
+++ b/third_party/blink/renderer/platform/geometry/double_rect.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/platform/geometry/double_point.h"
 #include "third_party/blink/renderer/platform/geometry/double_size.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/geometry/double_size.h b/third_party/blink/renderer/platform/geometry/double_size.h
index 0f950ec..b9cfd6a7 100644
--- a/third_party/blink/renderer/platform/geometry/double_size.h
+++ b/third_party/blink/renderer/platform/geometry/double_size.h
@@ -8,7 +8,7 @@
 #include <iosfwd>
 #include "third_party/blink/renderer/platform/geometry/float_size.h"
 #include "third_party/blink/renderer/platform/geometry/int_size.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/geometry/float_box.h b/third_party/blink/renderer/platform/geometry/float_box.h
index 24bc3c43..d79f7e1 100644
--- a/third_party/blink/renderer/platform/geometry/float_box.h
+++ b/third_party/blink/renderer/platform/geometry/float_box.h
@@ -34,7 +34,7 @@
 #include <iosfwd>
 #include "third_party/blink/renderer/platform/geometry/float_point_3d.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/geometry/float_point.h b/third_party/blink/renderer/platform/geometry/float_point.h
index 24d0c29b..cd1ddb8b 100644
--- a/third_party/blink/renderer/platform/geometry/float_point.h
+++ b/third_party/blink/renderer/platform/geometry/float_point.h
@@ -32,7 +32,7 @@
 #include "third_party/blink/renderer/platform/geometry/float_size.h"
 #include "third_party/blink/renderer/platform/geometry/int_point.h"
 #include "third_party/blink/renderer/platform/geometry/int_size.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/skia/include/core/SkPoint.h"
 #include "ui/gfx/geometry/point3_f.h"
diff --git a/third_party/blink/renderer/platform/geometry/float_point_3d.h b/third_party/blink/renderer/platform/geometry/float_point_3d.h
index 64bfe84..a7c5e73 100644
--- a/third_party/blink/renderer/platform/geometry/float_point_3d.h
+++ b/third_party/blink/renderer/platform/geometry/float_point_3d.h
@@ -24,7 +24,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GEOMETRY_FLOAT_POINT_3D_H_
 
 #include "third_party/blink/renderer/platform/geometry/float_point.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/skia/include/core/SkPoint3.h"
 
diff --git a/third_party/blink/renderer/platform/geometry/float_polygon.h b/third_party/blink/renderer/platform/geometry/float_polygon.h
index a7b3fbb..fe08d05 100644
--- a/third_party/blink/renderer/platform/geometry/float_polygon.h
+++ b/third_party/blink/renderer/platform/geometry/float_polygon.h
@@ -33,7 +33,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/geometry/float_point.h"
 #include "third_party/blink/renderer/platform/geometry/float_rect.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/pod_interval_tree.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/platform/geometry/float_polygon_test.cc b/third_party/blink/renderer/platform/geometry/float_polygon_test.cc
index 5919b57..8b53dcd1 100644
--- a/third_party/blink/renderer/platform/geometry/float_polygon_test.cc
+++ b/third_party/blink/renderer/platform/geometry/float_polygon_test.cc
@@ -34,7 +34,7 @@
 #include <utility>
 
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/geometry/float_quad.h b/third_party/blink/renderer/platform/geometry/float_quad.h
index a004696..a8bebe2 100644
--- a/third_party/blink/renderer/platform/geometry/float_quad.h
+++ b/third_party/blink/renderer/platform/geometry/float_quad.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/platform/geometry/float_rect.h"
 #include "third_party/blink/renderer/platform/geometry/int_rect.h"
 #include "third_party/blink/renderer/platform/geometry/layout_size.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 struct SkPoint;
 
diff --git a/third_party/blink/renderer/platform/geometry/float_rect.h b/third_party/blink/renderer/platform/geometry/float_rect.h
index 83c0c05..1e3c7b0 100644
--- a/third_party/blink/renderer/platform/geometry/float_rect.h
+++ b/third_party/blink/renderer/platform/geometry/float_rect.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/platform/geometry/float_point.h"
 #include "third_party/blink/renderer/platform/geometry/float_rect_outsets.h"
 #include "third_party/blink/renderer/platform/geometry/int_rect.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/skia/include/core/SkRect.h"
 #include "ui/gfx/geometry/rect_f.h"
diff --git a/third_party/blink/renderer/platform/geometry/float_rect_outsets.h b/third_party/blink/renderer/platform/geometry/float_rect_outsets.h
index ef8c31a9..6759e0d 100644
--- a/third_party/blink/renderer/platform/geometry/float_rect_outsets.h
+++ b/third_party/blink/renderer/platform/geometry/float_rect_outsets.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GEOMETRY_FLOAT_RECT_OUTSETS_H_
 
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/geometry/float_rounded_rect.h b/third_party/blink/renderer/platform/geometry/float_rounded_rect.h
index 30bdacf..fc04325f 100644
--- a/third_party/blink/renderer/platform/geometry/float_rounded_rect.h
+++ b/third_party/blink/renderer/platform/geometry/float_rounded_rect.h
@@ -33,7 +33,7 @@
 #include <iosfwd>
 #include "third_party/blink/renderer/platform/geometry/float_rect.h"
 #include "third_party/blink/renderer/platform/geometry/float_size.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/skia/include/core/SkRRect.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/geometry/float_size.h b/third_party/blink/renderer/platform/geometry/float_size.h
index b5e26b5..fd193ea63 100644
--- a/third_party/blink/renderer/platform/geometry/float_size.h
+++ b/third_party/blink/renderer/platform/geometry/float_size.h
@@ -33,7 +33,7 @@
 #include "build/build_config.h"
 #include "third_party/blink/renderer/platform/geometry/int_point.h"
 #include "third_party/blink/renderer/platform/geometry/int_size.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/hash_traits.h"
 #include "third_party/blink/renderer/platform/wtf/math_extras.h"
diff --git a/third_party/blink/renderer/platform/geometry/int_point.h b/third_party/blink/renderer/platform/geometry/int_point.h
index 31ca9860..03707b5e 100644
--- a/third_party/blink/renderer/platform/geometry/int_point.h
+++ b/third_party/blink/renderer/platform/geometry/int_point.h
@@ -30,7 +30,7 @@
 #include "base/numerics/clamped_math.h"
 #include "build/build_config.h"
 #include "third_party/blink/renderer/platform/geometry/int_size.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/math_extras.h"
 #include "third_party/blink/renderer/platform/wtf/vector_traits.h"
diff --git a/third_party/blink/renderer/platform/geometry/int_rect.h b/third_party/blink/renderer/platform/geometry/int_rect.h
index c5aa069..28a594d 100644
--- a/third_party/blink/renderer/platform/geometry/int_rect.h
+++ b/third_party/blink/renderer/platform/geometry/int_rect.h
@@ -32,7 +32,7 @@
 #include "build/build_config.h"
 #include "third_party/blink/renderer/platform/geometry/int_point.h"
 #include "third_party/blink/renderer/platform/geometry/int_rect_outsets.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/skia/include/core/SkRect.h"
 #include "ui/gfx/geometry/rect.h"
diff --git a/third_party/blink/renderer/platform/geometry/int_rect_outsets.h b/third_party/blink/renderer/platform/geometry/int_rect_outsets.h
index 30ccf48..16a301d 100644
--- a/third_party/blink/renderer/platform/geometry/int_rect_outsets.h
+++ b/third_party/blink/renderer/platform/geometry/int_rect_outsets.h
@@ -31,7 +31,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GEOMETRY_INT_RECT_OUTSETS_H_
 
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/geometry/int_size.h b/third_party/blink/renderer/platform/geometry/int_size.h
index f96015d3..c2b5276 100644
--- a/third_party/blink/renderer/platform/geometry/int_size.h
+++ b/third_party/blink/renderer/platform/geometry/int_size.h
@@ -31,7 +31,7 @@
 #include "build/build_config.h"
 #include "third_party/blink/public/platform/web_common.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/cross_thread_copier.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "ui/gfx/geometry/size.h"
diff --git a/third_party/blink/renderer/platform/geometry/layout_point.h b/third_party/blink/renderer/platform/geometry/layout_point.h
index 1ae6642d..cc68071e 100644
--- a/third_party/blink/renderer/platform/geometry/layout_point.h
+++ b/third_party/blink/renderer/platform/geometry/layout_point.h
@@ -35,7 +35,7 @@
 #include "third_party/blink/renderer/platform/geometry/double_point.h"
 #include "third_party/blink/renderer/platform/geometry/float_point.h"
 #include "third_party/blink/renderer/platform/geometry/layout_size.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/geometry/layout_rect.h b/third_party/blink/renderer/platform/geometry/layout_rect.h
index 4866a775..f1b6f9b 100644
--- a/third_party/blink/renderer/platform/geometry/layout_rect.h
+++ b/third_party/blink/renderer/platform/geometry/layout_rect.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/renderer/platform/geometry/int_rect.h"
 #include "third_party/blink/renderer/platform/geometry/layout_point.h"
 #include "third_party/blink/renderer/platform/geometry/layout_rect_outsets.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/platform/geometry/layout_rect_outsets.h b/third_party/blink/renderer/platform/geometry/layout_rect_outsets.h
index 3f3eccf4..b43c062 100644
--- a/third_party/blink/renderer/platform/geometry/layout_rect_outsets.h
+++ b/third_party/blink/renderer/platform/geometry/layout_rect_outsets.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/renderer/platform/geometry/layout_size.h"
 #include "third_party/blink/renderer/platform/geometry/layout_unit.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/geometry/layout_size.h b/third_party/blink/renderer/platform/geometry/layout_size.h
index 2cd23b8..472784b0 100644
--- a/third_party/blink/renderer/platform/geometry/layout_size.h
+++ b/third_party/blink/renderer/platform/geometry/layout_size.h
@@ -37,7 +37,7 @@
 #include "third_party/blink/renderer/platform/geometry/float_size.h"
 #include "third_party/blink/renderer/platform/geometry/int_size.h"
 #include "third_party/blink/renderer/platform/geometry/layout_unit.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "ui/gfx/geometry/size.h"
 
diff --git a/third_party/blink/renderer/platform/geometry/layout_unit.h b/third_party/blink/renderer/platform/geometry/layout_unit.h
index b6dbc76..eaaff017 100644
--- a/third_party/blink/renderer/platform/geometry/layout_unit.h
+++ b/third_party/blink/renderer/platform/geometry/layout_unit.h
@@ -40,7 +40,7 @@
 #include "base/numerics/safe_conversions.h"
 #include "build/build_config.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
diff --git a/third_party/blink/renderer/platform/geometry/length.h b/third_party/blink/renderer/platform/geometry/length.h
index 78aaea0..f44706997 100644
--- a/third_party/blink/renderer/platform/geometry/length.h
+++ b/third_party/blink/renderer/platform/geometry/length.h
@@ -25,7 +25,7 @@
 
 #include "third_party/blink/renderer/platform/geometry/layout_unit.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/geometry/length_box.h b/third_party/blink/renderer/platform/geometry/length_box.h
index db836550..fc1c54f 100644
--- a/third_party/blink/renderer/platform/geometry/length_box.h
+++ b/third_party/blink/renderer/platform/geometry/length_box.h
@@ -24,7 +24,7 @@
 
 #include "third_party/blink/renderer/platform/geometry/length.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/geometry/length_point.h b/third_party/blink/renderer/platform/geometry/length_point.h
index 8826ec3..f893e243 100644
--- a/third_party/blink/renderer/platform/geometry/length_point.h
+++ b/third_party/blink/renderer/platform/geometry/length_point.h
@@ -31,7 +31,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GEOMETRY_LENGTH_POINT_H_
 
 #include "third_party/blink/renderer/platform/geometry/length.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/geometry/length_size.h b/third_party/blink/renderer/platform/geometry/length_size.h
index a0e2ea1..8da2e50 100644
--- a/third_party/blink/renderer/platform/geometry/length_size.h
+++ b/third_party/blink/renderer/platform/geometry/length_size.h
@@ -22,7 +22,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GEOMETRY_LENGTH_SIZE_H_
 
 #include "third_party/blink/renderer/platform/geometry/length.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/geometry/region.h b/third_party/blink/renderer/platform/geometry/region.h
index 943756a..d34815c 100644
--- a/third_party/blink/renderer/platform/geometry/region.h
+++ b/third_party/blink/renderer/platform/geometry/region.h
@@ -29,7 +29,7 @@
 #include "cc/base/region.h"
 #include "third_party/blink/renderer/platform/geometry/int_rect.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace cc {
diff --git a/third_party/blink/renderer/platform/graphics/bitmap_image_metrics.h b/third_party/blink/renderer/platform/graphics/bitmap_image_metrics.h
index ab67d76c..6d4aa2da 100644
--- a/third_party/blink/renderer/platform/graphics/bitmap_image_metrics.h
+++ b/third_party/blink/renderer/platform/graphics/bitmap_image_metrics.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/platform/graphics/image_orientation.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 struct skcms_ICCProfile;
diff --git a/third_party/blink/renderer/platform/graphics/box_reflection.h b/third_party/blink/renderer/platform/graphics/box_reflection.h
index e3f46aac..951b7347 100644
--- a/third_party/blink/renderer/platform/graphics/box_reflection.h
+++ b/third_party/blink/renderer/platform/graphics/box_reflection.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/platform/geometry/float_rect.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/skia/include/core/SkRefCnt.h"
 
 class SkMatrix;
diff --git a/third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge.h b/third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge.h
index 8d05f0b..70c9ff0 100644
--- a/third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge.h
+++ b/third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge.h
@@ -43,7 +43,7 @@
 #include "third_party/blink/renderer/platform/graphics/graphics_types.h"
 #include "third_party/blink/renderer/platform/graphics/paint/paint_recorder.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/deque.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/khronos/GLES2/gl2.h"
diff --git a/third_party/blink/renderer/platform/graphics/canvas_color_params.h b/third_party/blink/renderer/platform/graphics/canvas_color_params.h
index f18d049..42e802d 100644
--- a/third_party/blink/renderer/platform/graphics/canvas_color_params.h
+++ b/third_party/blink/renderer/platform/graphics/canvas_color_params.h
@@ -8,7 +8,7 @@
 #include "components/viz/common/resources/resource_format.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_types.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/skia/include/core/SkColorSpace.h"
 #include "third_party/skia/include/core/SkImageInfo.h"
 #include "ui/gfx/buffer_types.h"
diff --git a/third_party/blink/renderer/platform/graphics/color.h b/third_party/blink/renderer/platform/graphics/color.h
index 031d7353..66c1d7d 100644
--- a/third_party/blink/renderer/platform/graphics/color.h
+++ b/third_party/blink/renderer/platform/graphics/color.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_COLOR_H_
 
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
 
diff --git a/third_party/blink/renderer/platform/graphics/color_behavior.h b/third_party/blink/renderer/platform/graphics/color_behavior.h
index a0cf331..ce04f84 100644
--- a/third_party/blink/renderer/platform/graphics/color_behavior.h
+++ b/third_party/blink/renderer/platform/graphics/color_behavior.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_COLOR_BEHAVIOR_H_
 
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "ui/gfx/color_space.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/graphics/color_correction_test_utils.h b/third_party/blink/renderer/platform/graphics/color_correction_test_utils.h
index eb1c875..30c6c677 100644
--- a/third_party/blink/renderer/platform/graphics/color_correction_test_utils.h
+++ b/third_party/blink/renderer/platform/graphics/color_correction_test_utils.h
@@ -9,7 +9,7 @@
 
 #include "third_party/blink/renderer/platform/graphics/graphics_types.h"
 #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/skia/include/core/SkImage.h"
 
diff --git a/third_party/blink/renderer/platform/graphics/color_scheme.h b/third_party/blink/renderer/platform/graphics/color_scheme.h
index 5664372..e8b7915 100644
--- a/third_party/blink/renderer/platform/graphics/color_scheme.h
+++ b/third_party/blink/renderer/platform/graphics/color_scheme.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_COLOR_SCHEME_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_COLOR_SCHEME_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor_test.cc b/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor_test.cc
index 51c69a7..65b934a 100644
--- a/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor_test.cc
+++ b/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor_test.cc
@@ -35,7 +35,7 @@
 #include "third_party/blink/renderer/platform/testing/picture_matchers.h"
 #include "third_party/blink/renderer/platform/testing/runtime_enabled_features_test_helpers.h"
 #include "third_party/blink/renderer/platform/testing/test_paint_artifact.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/graphics/compositing/paint_chunks_to_cc_layer.cc b/third_party/blink/renderer/platform/graphics/compositing/paint_chunks_to_cc_layer.cc
index f0708a2..8ad94b1d 100644
--- a/third_party/blink/renderer/platform/graphics/compositing/paint_chunks_to_cc_layer.cc
+++ b/third_party/blink/renderer/platform/graphics/compositing/paint_chunks_to_cc_layer.cc
@@ -16,7 +16,7 @@
 #include "third_party/blink/renderer/platform/graphics/paint/paint_chunk_subset.h"
 #include "third_party/blink/renderer/platform/graphics/paint/property_tree_state.h"
 #include "third_party/blink/renderer/platform/graphics/paint/raster_invalidation_tracking.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/graphics/compositing/paint_chunks_to_cc_layer.h b/third_party/blink/renderer/platform/graphics/compositing/paint_chunks_to_cc_layer.h
index 6eb7220..36abf87 100644
--- a/third_party/blink/renderer/platform/graphics/compositing/paint_chunks_to_cc_layer.h
+++ b/third_party/blink/renderer/platform/graphics/compositing/paint_chunks_to_cc_layer.h
@@ -9,7 +9,7 @@
 #include "cc/paint/display_item_list.h"
 #include "third_party/blink/renderer/platform/geometry/int_rect.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.h b/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.h
index c36ba931..23c4c34 100644
--- a/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.h
+++ b/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.h
@@ -7,7 +7,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/graphics/compositor_element_id.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/platform/graphics/compositing_reasons.h b/third_party/blink/renderer/platform/graphics/compositing_reasons.h
index 184dea5..7b4d778 100644
--- a/third_party/blink/renderer/platform/graphics/compositing_reasons.h
+++ b/third_party/blink/renderer/platform/graphics/compositing_reasons.h
@@ -7,7 +7,7 @@
 
 #include <stdint.h>
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/platform/graphics/contiguous_container.cc b/third_party/blink/renderer/platform/graphics/contiguous_container.cc
index 984f1b1..19cb6f2 100644
--- a/third_party/blink/renderer/platform/graphics/contiguous_container.cc
+++ b/third_party/blink/renderer/platform/graphics/contiguous_container.cc
@@ -8,7 +8,7 @@
 #include <memory>
 
 #include "base/macros.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/partitions.h"
 #include "third_party/blink/renderer/platform/wtf/container_annotations.h"
 
diff --git a/third_party/blink/renderer/platform/graphics/contiguous_container.h b/third_party/blink/renderer/platform/graphics/contiguous_container.h
index 25fd22f4..3eee558 100644
--- a/third_party/blink/renderer/platform/graphics/contiguous_container.h
+++ b/third_party/blink/renderer/platform/graphics/contiguous_container.h
@@ -13,7 +13,7 @@
 #include "base/compiler_specific.h"
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/type_traits.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/platform/graphics/contiguous_container_test.cc b/third_party/blink/renderer/platform/graphics/contiguous_container_test.cc
index 06ab6dd4..5ad0bd5 100644
--- a/third_party/blink/renderer/platform/graphics/contiguous_container_test.cc
+++ b/third_party/blink/renderer/platform/graphics/contiguous_container_test.cc
@@ -6,7 +6,7 @@
 
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/type_traits.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/graphics/dark_mode_bitmap_image_classifier.h b/third_party/blink/renderer/platform/graphics/dark_mode_bitmap_image_classifier.h
index c2e5a8c..8cddf8aa 100644
--- a/third_party/blink/renderer/platform/graphics/dark_mode_bitmap_image_classifier.h
+++ b/third_party/blink/renderer/platform/graphics/dark_mode_bitmap_image_classifier.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/platform/geometry/float_rect.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_types.h"
 #include "third_party/blink/renderer/platform/graphics/image.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/graphics/decoding_image_generator.h b/third_party/blink/renderer/platform/graphics/decoding_image_generator.h
index 4602ab7..7363490 100644
--- a/third_party/blink/renderer/platform/graphics/decoding_image_generator.h
+++ b/third_party/blink/renderer/platform/graphics/decoding_image_generator.h
@@ -31,7 +31,7 @@
 #include "third_party/blink/renderer/platform/graphics/paint/paint_image.h"
 #include "third_party/blink/renderer/platform/image-decoders/segment_reader.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/skia/include/core/SkImageInfo.h"
 #include "third_party/skia/include/core/SkYUVAIndex.h"
 
diff --git a/third_party/blink/renderer/platform/graphics/deferred_image_decoder.h b/third_party/blink/renderer/platform/graphics/deferred_image_decoder.h
index 07e43e9..9d69ad29 100644
--- a/third_party/blink/renderer/platform/graphics/deferred_image_decoder.h
+++ b/third_party/blink/renderer/platform/graphics/deferred_image_decoder.h
@@ -33,7 +33,7 @@
 #include "third_party/blink/renderer/platform/graphics/paint/paint_image.h"
 #include "third_party/blink/renderer/platform/image-decoders/image_decoder.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/time.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/platform/graphics/draw_looper_builder.h b/third_party/blink/renderer/platform/graphics/draw_looper_builder.h
index 5f14c521..79b6215 100644
--- a/third_party/blink/renderer/platform/graphics/draw_looper_builder.h
+++ b/third_party/blink/renderer/platform/graphics/draw_looper_builder.h
@@ -35,7 +35,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/skia/include/core/SkRefCnt.h"
 #include "third_party/skia/include/effects/SkLayerDrawLooper.h"
 
diff --git a/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer.h b/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer.h
index 44f46d6..2d8ca05d 100644
--- a/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer.h
+++ b/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer.h
@@ -45,7 +45,7 @@
 #include "third_party/blink/renderer/platform/graphics/gpu/webgl_image_conversion.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_types_3d.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/deque.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/platform/graphics/gpu/extensions_3d_util.h b/third_party/blink/renderer/platform/graphics/gpu/extensions_3d_util.h
index 8ef40f8..062807c4 100644
--- a/third_party/blink/renderer/platform/graphics/gpu/extensions_3d_util.h
+++ b/third_party/blink/renderer/platform/graphics/gpu/extensions_3d_util.h
@@ -9,7 +9,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/platform/graphics/gpu/graphics_context_3d_utils.h b/third_party/blink/renderer/platform/graphics/gpu/graphics_context_3d_utils.h
index 911dac0..f103ac3c 100644
--- a/third_party/blink/renderer/platform/graphics/gpu/graphics_context_3d_utils.h
+++ b/third_party/blink/renderer/platform/graphics/gpu/graphics_context_3d_utils.h
@@ -9,7 +9,7 @@
 #include "gpu/command_buffer/common/mailbox.h"
 #include "gpu/command_buffer/common/sync_token.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/skia/include/core/SkImage.h"
 #include "third_party/skia/include/gpu/GrTexture.h"
diff --git a/third_party/blink/renderer/platform/graphics/gpu/shared_context_rate_limiter.h b/third_party/blink/renderer/platform/graphics/gpu/shared_context_rate_limiter.h
index 006ef78..3c4bbb1 100644
--- a/third_party/blink/renderer/platform/graphics/gpu/shared_context_rate_limiter.h
+++ b/third_party/blink/renderer/platform/graphics/gpu/shared_context_rate_limiter.h
@@ -9,7 +9,7 @@
 
 #include "base/macros.h"
 #include "gpu/command_buffer/client/gles2_interface.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/deque.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/graphics/gpu/shared_gpu_context.h b/third_party/blink/renderer/platform/graphics/gpu/shared_gpu_context.h
index a0235d35..f9ab4cf 100644
--- a/third_party/blink/renderer/platform/graphics/gpu/shared_gpu_context.h
+++ b/third_party/blink/renderer/platform/graphics/gpu/shared_gpu_context.h
@@ -10,7 +10,7 @@
 #include "base/memory/weak_ptr.h"
 #include "third_party/blink/renderer/platform/graphics/web_graphics_context_3d_provider_wrapper.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/thread_specific.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/graphics/gpu/shared_gpu_context_test.cc b/third_party/blink/renderer/platform/graphics/gpu/shared_gpu_context_test.cc
index 592f4801..b93fbe8 100644
--- a/third_party/blink/renderer/platform/graphics/gpu/shared_gpu_context_test.cc
+++ b/third_party/blink/renderer/platform/graphics/gpu/shared_gpu_context_test.cc
@@ -15,7 +15,7 @@
 #include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h"
 #include "third_party/blink/renderer/platform/graphics/test/fake_gles2_interface.h"
 #include "third_party/blink/renderer/platform/graphics/test/fake_web_graphics_context_3d_provider.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
 #include "third_party/khronos/GLES2/gl2ext.h"
 
diff --git a/third_party/blink/renderer/platform/graphics/gpu/webgl_image_conversion.h b/third_party/blink/renderer/platform/graphics/gpu/webgl_image_conversion.h
index cd954650..2c8f961 100644
--- a/third_party/blink/renderer/platform/graphics/gpu/webgl_image_conversion.h
+++ b/third_party/blink/renderer/platform/graphics/gpu/webgl_image_conversion.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/platform/graphics/skia/image_pixel_locker.h"
 #include "third_party/blink/renderer/platform/heap/heap.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/khronos/GLES2/gl2.h"
 #include "third_party/khronos/GLES2/gl2ext.h"
 #include "third_party/khronos/GLES3/gl3.h"
diff --git a/third_party/blink/renderer/platform/graphics/gpu_memory_buffer_image_copy.h b/third_party/blink/renderer/platform/graphics/gpu_memory_buffer_image_copy.h
index 8e20c5c5..d989ff4 100644
--- a/third_party/blink/renderer/platform/graphics/gpu_memory_buffer_image_copy.h
+++ b/third_party/blink/renderer/platform/graphics/gpu_memory_buffer_image_copy.h
@@ -4,7 +4,7 @@
 #include <memory>
 #include "gpu/command_buffer/client/gles2_interface.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "ui/gfx/gpu_memory_buffer.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/graphics/gradient.h b/third_party/blink/renderer/platform/graphics/gradient.h
index 714b534e..2c1f675 100644
--- a/third_party/blink/renderer/platform/graphics/gradient.h
+++ b/third_party/blink/renderer/platform/graphics/gradient.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/renderer/platform/graphics/paint/paint_flags.h"
 #include "third_party/blink/renderer/platform/graphics/paint/paint_shader.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 #include "third_party/skia/include/core/SkRefCnt.h"
diff --git a/third_party/blink/renderer/platform/graphics/graphics_context.h b/third_party/blink/renderer/platform/graphics/graphics_context.h
index 396b7b1..9c695daa 100644
--- a/third_party/blink/renderer/platform/graphics/graphics_context.h
+++ b/third_party/blink/renderer/platform/graphics/graphics_context.h
@@ -44,7 +44,7 @@
 #include "third_party/blink/renderer/platform/graphics/paint/paint_recorder.h"
 #include "third_party/blink/renderer/platform/graphics/skia/skia_utils.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/skia/include/core/SkClipOp.h"
 #include "third_party/skia/include/core/SkRefCnt.h"
diff --git a/third_party/blink/renderer/platform/graphics/graphics_context_state.h b/third_party/blink/renderer/platform/graphics/graphics_context_state.h
index 6e19b824..6bf33c3 100644
--- a/third_party/blink/renderer/platform/graphics/graphics_context_state.h
+++ b/third_party/blink/renderer/platform/graphics/graphics_context_state.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/renderer/platform/graphics/graphics_types.h"
 #include "third_party/blink/renderer/platform/graphics/paint/paint_flags.h"
 #include "third_party/blink/renderer/platform/graphics/stroke_data.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/skia/include/core/SkColorFilter.h"
 #include "third_party/skia/include/core/SkRefCnt.h"
 
diff --git a/third_party/blink/renderer/platform/graphics/graphics_context_state_saver.h b/third_party/blink/renderer/platform/graphics/graphics_context_state_saver.h
index 72768f1..29539cc5 100644
--- a/third_party/blink/renderer/platform/graphics/graphics_context_state_saver.h
+++ b/third_party/blink/renderer/platform/graphics/graphics_context_state_saver.h
@@ -32,7 +32,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_context.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/graphics/image.cc b/third_party/blink/renderer/platform/graphics/image.cc
index 94ad5a44..a4b15221 100644
--- a/third_party/blink/renderer/platform/graphics/image.cc
+++ b/third_party/blink/renderer/platform/graphics/image.cc
@@ -45,7 +45,7 @@
 #include "third_party/blink/renderer/platform/histogram.h"
 #include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h"
 #include "third_party/blink/renderer/platform/shared_buffer.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/skia/include/core/SkCanvas.h"
diff --git a/third_party/blink/renderer/platform/graphics/image_data_buffer.h b/third_party/blink/renderer/platform/graphics/image_data_buffer.h
index 5474eb3..286625b 100644
--- a/third_party/blink/renderer/platform/graphics/image_data_buffer.h
+++ b/third_party/blink/renderer/platform/graphics/image_data_buffer.h
@@ -35,7 +35,7 @@
 #include "third_party/blink/renderer/platform/graphics/graphics_types.h"
 #include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/typed_arrays/uint8_clamped_array.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/platform/graphics/image_decoder_wrapper.h b/third_party/blink/renderer/platform/graphics/image_decoder_wrapper.h
index 8ed72a2f5..dd83a7a7 100644
--- a/third_party/blink/renderer/platform/graphics/image_decoder_wrapper.h
+++ b/third_party/blink/renderer/platform/graphics/image_decoder_wrapper.h
@@ -7,7 +7,7 @@
 
 #include "cc/paint/paint_image.h"
 #include "third_party/blink/renderer/platform/image-decoders/image_decoder.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/skia/include/core/SkSize.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/graphics/image_frame_generator.h b/third_party/blink/renderer/platform/graphics/image_frame_generator.h
index 45d21544..c696f97 100644
--- a/third_party/blink/renderer/platform/graphics/image_frame_generator.h
+++ b/third_party/blink/renderer/platform/graphics/image_frame_generator.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/platform/image-decoders/image_decoder.h"
 #include "third_party/blink/renderer/platform/image-decoders/segment_reader.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/thread_safe_ref_counted.h"
diff --git a/third_party/blink/renderer/platform/graphics/image_orientation.h b/third_party/blink/renderer/platform/graphics/image_orientation.h
index 20c2602..2a36ee88 100644
--- a/third_party/blink/renderer/platform/graphics/image_orientation.h
+++ b/third_party/blink/renderer/platform/graphics/image_orientation.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_IMAGE_ORIENTATION_H_
 
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/graphics/intercepting_canvas.h b/third_party/blink/renderer/platform/graphics/intercepting_canvas.h
index 90ee522c..bb7e499 100644
--- a/third_party/blink/renderer/platform/graphics/intercepting_canvas.h
+++ b/third_party/blink/renderer/platform/graphics/intercepting_canvas.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_INTERCEPTING_CANVAS_H_
 
 #include "third_party/blink/renderer/platform/graphics/paint/paint_record.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/skia/include/core/SkBitmap.h"
 #include "third_party/skia/include/core/SkCanvas.h"
diff --git a/third_party/blink/renderer/platform/graphics/offscreen_canvas_placeholder.h b/third_party/blink/renderer/platform/graphics/offscreen_canvas_placeholder.h
index 4ed2966..de3578a 100644
--- a/third_party/blink/renderer/platform/graphics/offscreen_canvas_placeholder.h
+++ b/third_party/blink/renderer/platform/graphics/offscreen_canvas_placeholder.h
@@ -11,7 +11,7 @@
 #include "base/single_thread_task_runner.h"
 #include "components/viz/common/resources/resource_id.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/graphics/paint/cull_rect.h b/third_party/blink/renderer/platform/graphics/paint/cull_rect.h
index 3108d45..1a67ba81 100644
--- a/third_party/blink/renderer/platform/graphics/paint/cull_rect.h
+++ b/third_party/blink/renderer/platform/graphics/paint/cull_rect.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/platform/geometry/int_rect.h"
 #include "third_party/blink/renderer/platform/geometry/layout_rect.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 #include <limits>
diff --git a/third_party/blink/renderer/platform/graphics/paint/display_item.h b/third_party/blink/renderer/platform/graphics/paint/display_item.h
index 8843a98..4434f62 100644
--- a/third_party/blink/renderer/platform/graphics/paint/display_item.h
+++ b/third_party/blink/renderer/platform/graphics/paint/display_item.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/platform/graphics/paint/display_item_client.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 
 #if DCHECK_IS_ON()
diff --git a/third_party/blink/renderer/platform/graphics/paint/display_item_cache_skipper.h b/third_party/blink/renderer/platform/graphics/paint/display_item_cache_skipper.h
index 722deb9..5ded583 100644
--- a/third_party/blink/renderer/platform/graphics/paint/display_item_cache_skipper.h
+++ b/third_party/blink/renderer/platform/graphics/paint/display_item_cache_skipper.h
@@ -8,7 +8,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_context.h"
 #include "third_party/blink/renderer/platform/graphics/paint/paint_controller.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/graphics/paint/display_item_raster_invalidator.h b/third_party/blink/renderer/platform/graphics/paint/display_item_raster_invalidator.h
index 1f02e95..b37e159 100644
--- a/third_party/blink/renderer/platform/graphics/paint/display_item_raster_invalidator.h
+++ b/third_party/blink/renderer/platform/graphics/paint/display_item_raster_invalidator.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_DISPLAY_ITEM_RASTER_INVALIDATOR_H_
 
 #include "third_party/blink/renderer/platform/graphics/paint/raster_invalidator.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/graphics/paint/drawing_recorder.h b/third_party/blink/renderer/platform/graphics/paint/drawing_recorder.h
index 260e4525..3c97d2c 100644
--- a/third_party/blink/renderer/platform/graphics/paint/drawing_recorder.h
+++ b/third_party/blink/renderer/platform/graphics/paint/drawing_recorder.h
@@ -14,7 +14,7 @@
 #include "third_party/blink/renderer/platform/graphics/graphics_context.h"
 #include "third_party/blink/renderer/platform/graphics/paint/drawing_display_item.h"
 #include "third_party/blink/renderer/platform/graphics/paint/paint_controller.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/graphics/paint/float_clip_rect.h b/third_party/blink/renderer/platform/graphics/paint/float_clip_rect.h
index d51bf53..87b5479 100644
--- a/third_party/blink/renderer/platform/graphics/paint/float_clip_rect.h
+++ b/third_party/blink/renderer/platform/graphics/paint/float_clip_rect.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/platform/geometry/float_rounded_rect.h"
 #include "third_party/blink/renderer/platform/geometry/layout_rect.h"
 #include "third_party/blink/renderer/platform/transforms/transformation_matrix.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/graphics/paint/geometry_mapper.h b/third_party/blink/renderer/platform/graphics/paint/geometry_mapper.h
index 052058bd..ac2bf41 100644
--- a/third_party/blink/renderer/platform/graphics/paint/geometry_mapper.h
+++ b/third_party/blink/renderer/platform/graphics/paint/geometry_mapper.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/platform/graphics/paint/property_tree_state.h"
 #include "third_party/blink/renderer/platform/graphics/scroll_types.h"
 #include "third_party/blink/renderer/platform/transforms/transformation_matrix.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/graphics/paint/paint_artifact.h b/third_party/blink/renderer/platform/graphics/paint/paint_artifact.h
index edeb53c7..ee3be02 100644
--- a/third_party/blink/renderer/platform/graphics/paint/paint_artifact.h
+++ b/third_party/blink/renderer/platform/graphics/paint/paint_artifact.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/platform/graphics/paint/paint_chunk.h"
 #include "third_party/blink/renderer/platform/graphics/paint/paint_chunk_subset.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace cc {
diff --git a/third_party/blink/renderer/platform/graphics/paint/paint_chunk.h b/third_party/blink/renderer/platform/graphics/paint/paint_chunk.h
index 8747b7fe..2024df3 100644
--- a/third_party/blink/renderer/platform/graphics/paint/paint_chunk.h
+++ b/third_party/blink/renderer/platform/graphics/paint/paint_chunk.h
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/platform/graphics/paint/raster_invalidation_tracking.h"
 #include "third_party/blink/renderer/platform/graphics/paint/ref_counted_property_tree_state.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/platform/graphics/paint/paint_chunk_subset.h b/third_party/blink/renderer/platform/graphics/paint/paint_chunk_subset.h
index 9b34b18..7c9f1c7 100644
--- a/third_party/blink/renderer/platform/graphics/paint/paint_chunk_subset.h
+++ b/third_party/blink/renderer/platform/graphics/paint/paint_chunk_subset.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_PAINT_CHUNK_SUBSET_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_PAINT_CHUNK_SUBSET_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/graphics/paint/paint_chunker.h b/third_party/blink/renderer/platform/graphics/paint/paint_chunker.h
index 6b51617..c65ebe79 100644
--- a/third_party/blink/renderer/platform/graphics/paint/paint_chunker.h
+++ b/third_party/blink/renderer/platform/graphics/paint/paint_chunker.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/platform/graphics/paint/paint_chunk.h"
 #include "third_party/blink/renderer/platform/graphics/paint/property_tree_state.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/graphics/paint/paint_property_node.h b/third_party/blink/renderer/platform/graphics/paint/paint_property_node.h
index d5cccda..12bb0ff 100644
--- a/third_party/blink/renderer/platform/graphics/paint/paint_property_node.h
+++ b/third_party/blink/renderer/platform/graphics/paint/paint_property_node.h
@@ -10,7 +10,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/platform/json/json_values.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/platform/graphics/paint/raster_invalidation_tracking.h b/third_party/blink/renderer/platform/graphics/paint/raster_invalidation_tracking.h
index a80539f..52c3f69b 100644
--- a/third_party/blink/renderer/platform/graphics/paint/raster_invalidation_tracking.h
+++ b/third_party/blink/renderer/platform/graphics/paint/raster_invalidation_tracking.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/platform/graphics/paint/paint_record.h"
 #include "third_party/blink/renderer/platform/graphics/paint_invalidation_reason.h"
 #include "third_party/blink/renderer/platform/json/json_values.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/skia/include/core/SkColor.h"
 
diff --git a/third_party/blink/renderer/platform/graphics/paint/raster_invalidator.h b/third_party/blink/renderer/platform/graphics/paint/raster_invalidator.h
index 237e04d..55229e9 100644
--- a/third_party/blink/renderer/platform/graphics/paint/raster_invalidator.h
+++ b/third_party/blink/renderer/platform/graphics/paint/raster_invalidator.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/platform/graphics/paint/paint_chunk.h"
 #include "third_party/blink/renderer/platform/graphics/paint/paint_chunk_subset.h"
 #include "third_party/blink/renderer/platform/graphics/paint/raster_invalidation_tracking.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/platform/graphics/paint/scoped_display_item_fragment.h b/third_party/blink/renderer/platform/graphics/paint/scoped_display_item_fragment.h
index 92cb3e0..334ca46 100644
--- a/third_party/blink/renderer/platform/graphics/paint/scoped_display_item_fragment.h
+++ b/third_party/blink/renderer/platform/graphics/paint/scoped_display_item_fragment.h
@@ -8,7 +8,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_context.h"
 #include "third_party/blink/renderer/platform/graphics/paint/paint_controller.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/graphics/paint/scoped_paint_chunk_properties.h b/third_party/blink/renderer/platform/graphics/paint/scoped_paint_chunk_properties.h
index d59bb0e..0b0b87f 100644
--- a/third_party/blink/renderer/platform/graphics/paint/scoped_paint_chunk_properties.h
+++ b/third_party/blink/renderer/platform/graphics/paint/scoped_paint_chunk_properties.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/platform/graphics/paint/paint_chunk.h"
 #include "third_party/blink/renderer/platform/graphics/paint/paint_controller.h"
 #include "third_party/blink/renderer/platform/graphics/paint/property_tree_state.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/graphics/paint/subsequence_recorder.h b/third_party/blink/renderer/platform/graphics/paint/subsequence_recorder.h
index 4143e46..e2e6288 100644
--- a/third_party/blink/renderer/platform/graphics/paint/subsequence_recorder.h
+++ b/third_party/blink/renderer/platform/graphics/paint/subsequence_recorder.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/platform/graphics/graphics_context.h"
 #include "third_party/blink/renderer/platform/graphics/paint/display_item.h"
 #include "third_party/blink/renderer/platform/graphics/paint/paint_controller.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/graphics/paint/transform_paint_property_node.h b/third_party/blink/renderer/platform/graphics/paint/transform_paint_property_node.h
index ab3f1cc..2b6a3dd3 100644
--- a/third_party/blink/renderer/platform/graphics/paint/transform_paint_property_node.h
+++ b/third_party/blink/renderer/platform/graphics/paint/transform_paint_property_node.h
@@ -16,7 +16,7 @@
 #include "third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/transforms/transformation_matrix.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/graphics/path.h b/third_party/blink/renderer/platform/graphics/path.h
index 36f3745..79f98c7 100644
--- a/third_party/blink/renderer/platform/graphics/path.h
+++ b/third_party/blink/renderer/platform/graphics/path.h
@@ -33,7 +33,7 @@
 #include "third_party/blink/renderer/platform/geometry/float_rounded_rect.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_types.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/skia/include/core/SkPath.h"
diff --git a/third_party/blink/renderer/platform/graphics/path_traversal_state.h b/third_party/blink/renderer/platform/graphics/path_traversal_state.h
index ef4e7cc..0f57235 100644
--- a/third_party/blink/renderer/platform/graphics/path_traversal_state.h
+++ b/third_party/blink/renderer/platform/graphics/path_traversal_state.h
@@ -29,7 +29,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/geometry/float_point.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/graphics/picture_snapshot.h b/third_party/blink/renderer/platform/graphics/picture_snapshot.h
index 861bc8785..6b9d554c 100644
--- a/third_party/blink/renderer/platform/graphics/picture_snapshot.h
+++ b/third_party/blink/renderer/platform/graphics/picture_snapshot.h
@@ -37,7 +37,7 @@
 #include "third_party/blink/renderer/platform/graphics/graphics_context.h"
 #include "third_party/blink/renderer/platform/json/json_values.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/time.h"
 #include "third_party/skia/include/core/SkPicture.h"
diff --git a/third_party/blink/renderer/platform/graphics/scoped_interpolation_quality.h b/third_party/blink/renderer/platform/graphics/scoped_interpolation_quality.h
index 7e7db86..9b2a608 100644
--- a/third_party/blink/renderer/platform/graphics/scoped_interpolation_quality.h
+++ b/third_party/blink/renderer/platform/graphics/scoped_interpolation_quality.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/platform/graphics/graphics_context.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_types.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/graphics/skia/image_pixel_locker.h b/third_party/blink/renderer/platform/graphics/skia/image_pixel_locker.h
index b7fb6fd..933ce6a 100644
--- a/third_party/blink/renderer/platform/graphics/skia/image_pixel_locker.h
+++ b/third_party/blink/renderer/platform/graphics/skia/image_pixel_locker.h
@@ -8,7 +8,7 @@
 #include "base/macros.h"
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/platform/heap/heap.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/skia/include/core/SkImageInfo.h"
 #include "third_party/skia/include/core/SkRefCnt.h"
 
diff --git a/third_party/blink/renderer/platform/graphics/stroke_data.h b/third_party/blink/renderer/platform/graphics/stroke_data.h
index 859cd29..da33fc2 100644
--- a/third_party/blink/renderer/platform/graphics/stroke_data.h
+++ b/third_party/blink/renderer/platform/graphics/stroke_data.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/renderer/platform/graphics/paint/paint_flags.h"
 #include "third_party/blink/renderer/platform/graphics/pattern.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/skia/include/core/SkPaint.h"
 #include "third_party/skia/include/core/SkPathEffect.h"
 
diff --git a/third_party/blink/renderer/platform/graphics/web_graphics_context_3d_provider_wrapper.h b/third_party/blink/renderer/platform/graphics/web_graphics_context_3d_provider_wrapper.h
index 1bb689c4..452305f 100644
--- a/third_party/blink/renderer/platform/graphics/web_graphics_context_3d_provider_wrapper.h
+++ b/third_party/blink/renderer/platform/graphics/web_graphics_context_3d_provider_wrapper.h
@@ -14,7 +14,7 @@
 #include "third_party/blink/public/platform/web_graphics_context_3d_provider.h"
 #include "third_party/blink/renderer/platform/graphics/gpu/graphics_context_3d_utils.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/heap/address_cache.h b/third_party/blink/renderer/platform/heap/address_cache.h
index 6cb252a..5ccea41 100644
--- a/third_party/blink/renderer/platform/heap/address_cache.h
+++ b/third_party/blink/renderer/platform/heap/address_cache.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_HEAP_ADDRESS_CACHE_H_
 
 #include "third_party/blink/renderer/platform/heap/blink_gc.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/heap/atomic_entry_flag.h b/third_party/blink/renderer/platform/heap/atomic_entry_flag.h
index c89749e6..07f013a 100644
--- a/third_party/blink/renderer/platform/heap/atomic_entry_flag.h
+++ b/third_party/blink/renderer/platform/heap/atomic_entry_flag.h
@@ -7,7 +7,7 @@
 
 #include <atomic>
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/heap/blink_gc.h b/third_party/blink/renderer/platform/heap/blink_gc.h
index abdcc2c6..bd79a8b 100644
--- a/third_party/blink/renderer/platform/heap/blink_gc.h
+++ b/third_party/blink/renderer/platform/heap/blink_gc.h
@@ -8,7 +8,7 @@
 // BlinkGC.h is a file that defines common things used by Blink GC.
 
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 #define PRINT_HEAP_STATS 0  // Enable this macro to print heap stats to stderr.
 
diff --git a/third_party/blink/renderer/platform/heap/blink_gc_memory_dump_provider.h b/third_party/blink/renderer/platform/heap/blink_gc_memory_dump_provider.h
index 16d905d..278e83a 100644
--- a/third_party/blink/renderer/platform/heap/blink_gc_memory_dump_provider.h
+++ b/third_party/blink/renderer/platform/heap/blink_gc_memory_dump_provider.h
@@ -8,7 +8,7 @@
 #include "base/trace_event/memory_dump_provider.h"
 #include "third_party/blink/renderer/platform/heap/blink_gc.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace base {
diff --git a/third_party/blink/renderer/platform/heap/garbage_collected.h b/third_party/blink/renderer/platform/heap/garbage_collected.h
index 87ef81d..f83943bf 100644
--- a/third_party/blink/renderer/platform/heap/garbage_collected.h
+++ b/third_party/blink/renderer/platform/heap/garbage_collected.h
@@ -7,7 +7,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/heap/thread_state.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/type_traits.h"
 
diff --git a/third_party/blink/renderer/platform/heap/gc_info.h b/third_party/blink/renderer/platform/heap/gc_info.h
index 42a9d91d..9466d29 100644
--- a/third_party/blink/renderer/platform/heap/gc_info.h
+++ b/third_party/blink/renderer/platform/heap/gc_info.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/platform/heap/finalizer_traits.h"
 #include "third_party/blink/renderer/platform/heap/name_traits.h"
 #include "third_party/blink/renderer/platform/heap/visitor.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/deque.h"
 #include "third_party/blink/renderer/platform/wtf/hash_counted_set.h"
diff --git a/third_party/blink/renderer/platform/heap/handle.h b/third_party/blink/renderer/platform/heap/handle.h
index b8bc739..1447743 100644
--- a/third_party/blink/renderer/platform/heap/handle.h
+++ b/third_party/blink/renderer/platform/heap/handle.h
@@ -39,7 +39,7 @@
 #include "third_party/blink/renderer/platform/heap/thread_state.h"
 #include "third_party/blink/renderer/platform/heap/trace_traits.h"
 #include "third_party/blink/renderer/platform/heap/visitor.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 #if defined(LEAK_SANITIZER)
 #include "third_party/blink/renderer/platform/wtf/leak_annotations.h"
diff --git a/third_party/blink/renderer/platform/heap/heap.h b/third_party/blink/renderer/platform/heap/heap.h
index 05d3437..bc0282b 100644
--- a/third_party/blink/renderer/platform/heap/heap.h
+++ b/third_party/blink/renderer/platform/heap/heap.h
@@ -43,7 +43,7 @@
 #include "third_party/blink/renderer/platform/heap/visitor.h"
 #include "third_party/blink/renderer/platform/heap/worklist.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/sanitizers.h"
diff --git a/third_party/blink/renderer/platform/heap/heap_allocator.h b/third_party/blink/renderer/platform/heap/heap_allocator.h
index 7fffed76..b47a381b 100644
--- a/third_party/blink/renderer/platform/heap/heap_allocator.h
+++ b/third_party/blink/renderer/platform/heap/heap_allocator.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/platform/heap/marking_visitor.h"
 #include "third_party/blink/renderer/platform/heap/thread_state_scopes.h"
 #include "third_party/blink/renderer/platform/heap/trace_traits.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/construct_traits.h"
 #include "third_party/blink/renderer/platform/wtf/deque.h"
diff --git a/third_party/blink/renderer/platform/heap/heap_compact.cc b/third_party/blink/renderer/platform/heap/heap_compact.cc
index d2595170..04eb4812 100644
--- a/third_party/blink/renderer/platform/heap/heap_compact.cc
+++ b/third_party/blink/renderer/platform/heap/heap_compact.cc
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/platform/heap/heap_stats_collector.h"
 #include "third_party/blink/renderer/platform/histogram.h"
 #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/time.h"
 
diff --git a/third_party/blink/renderer/platform/heap/heap_linked_stack.h b/third_party/blink/renderer/platform/heap/heap_linked_stack.h
index 645b29d..b1ad5a3 100644
--- a/third_party/blink/renderer/platform/heap/heap_linked_stack.h
+++ b/third_party/blink/renderer/platform/heap/heap_linked_stack.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/platform/heap/heap.h"
 #include "third_party/blink/renderer/platform/heap/visitor.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/heap/heap_page.h b/third_party/blink/renderer/platform/heap/heap_page.h
index 16481a9..54c2eee 100644
--- a/third_party/blink/renderer/platform/heap/heap_page.h
+++ b/third_party/blink/renderer/platform/heap/heap_page.h
@@ -40,7 +40,7 @@
 #include "third_party/blink/renderer/platform/heap/thread_state.h"
 #include "third_party/blink/renderer/platform/heap/visitor.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/partitions.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/container_annotations.h"
diff --git a/third_party/blink/renderer/platform/heap/heap_stats_collector.h b/third_party/blink/renderer/platform/heap/heap_stats_collector.h
index 6dcfd08..d439791 100644
--- a/third_party/blink/renderer/platform/heap/heap_stats_collector.h
+++ b/third_party/blink/renderer/platform/heap/heap_stats_collector.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/platform/heap/blink_gc.h"
 #include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/time.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/heap/heap_test.cc b/third_party/blink/renderer/platform/heap/heap_test.cc
index 36db804..a62dcb6 100644
--- a/third_party/blink/renderer/platform/heap/heap_test.cc
+++ b/third_party/blink/renderer/platform/heap/heap_test.cc
@@ -54,7 +54,7 @@
 #include "third_party/blink/renderer/platform/scheduler/public/post_cross_thread_task.h"
 #include "third_party/blink/renderer/platform/scheduler/public/thread.h"
 #include "third_party/blink/renderer/platform/testing/unit_test_helpers.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
 #include "third_party/blink/renderer/platform/wtf/hash_traits.h"
 #include "third_party/blink/renderer/platform/wtf/linked_hash_set.h"
diff --git a/third_party/blink/renderer/platform/heap/heap_thread_test.cc b/third_party/blink/renderer/platform/heap/heap_thread_test.cc
index 3f7e3ed..5a31b13 100644
--- a/third_party/blink/renderer/platform/heap/heap_thread_test.cc
+++ b/third_party/blink/renderer/platform/heap/heap_thread_test.cc
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/platform/heap/thread_state.h"
 #include "third_party/blink/renderer/platform/scheduler/public/post_cross_thread_task.h"
 #include "third_party/blink/renderer/platform/scheduler/public/thread.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/heap/incremental_marking_test.cc b/third_party/blink/renderer/platform/heap/incremental_marking_test.cc
index 1c3c82d..0e501cb 100644
--- a/third_party/blink/renderer/platform/heap/incremental_marking_test.cc
+++ b/third_party/blink/renderer/platform/heap/incremental_marking_test.cc
@@ -18,7 +18,7 @@
 #include "third_party/blink/renderer/platform/heap/thread_state.h"
 #include "third_party/blink/renderer/platform/heap/trace_traits.h"
 #include "third_party/blink/renderer/platform/heap/visitor.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 namespace blink {
 namespace incremental_marking_test {
 
diff --git a/third_party/blink/renderer/platform/heap/member.h b/third_party/blink/renderer/platform/heap/member.h
index 6c74635..fe98bdd 100644
--- a/third_party/blink/renderer/platform/heap/member.h
+++ b/third_party/blink/renderer/platform/heap/member.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/platform/heap/heap_buildflags.h"
 #include "third_party/blink/renderer/platform/heap/heap_page.h"
 #include "third_party/blink/renderer/platform/heap/marking_visitor.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_functions.h"
 #include "third_party/blink/renderer/platform/wtf/hash_traits.h"
 
diff --git a/third_party/blink/renderer/platform/heap/name_traits.h b/third_party/blink/renderer/platform/heap/name_traits.h
index eda1cc1..67760c4 100644
--- a/third_party/blink/renderer/platform/heap/name_traits.h
+++ b/third_party/blink/renderer/platform/heap/name_traits.h
@@ -7,7 +7,7 @@
 
 #include "build/build_config.h"
 #include "third_party/blink/renderer/platform/bindings/name_client.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/type_traits.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/heap/object_start_bitmap_test.cc b/third_party/blink/renderer/platform/heap/object_start_bitmap_test.cc
index 0fc3752..af1db162 100644
--- a/third_party/blink/renderer/platform/heap/object_start_bitmap_test.cc
+++ b/third_party/blink/renderer/platform/heap/object_start_bitmap_test.cc
@@ -5,7 +5,7 @@
 #include "third_party/blink/renderer/platform/heap/heap_page.h"
 
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/heap/page_memory.h b/third_party/blink/renderer/platform/heap/page_memory.h
index 0780971..80a36e3 100644
--- a/third_party/blink/renderer/platform/heap/page_memory.h
+++ b/third_party/blink/renderer/platform/heap/page_memory.h
@@ -8,7 +8,7 @@
 #include "base/atomic_ref_count.h"
 #include "third_party/blink/renderer/platform/heap/heap.h"
 #include "third_party/blink/renderer/platform/heap/heap_page.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/heap/page_pool.h b/third_party/blink/renderer/platform/heap/page_pool.h
index 0acf910..753d287 100644
--- a/third_party/blink/renderer/platform/heap/page_pool.h
+++ b/third_party/blink/renderer/platform/heap/page_pool.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_HEAP_PAGE_POOL_H_
 
 #include "third_party/blink/renderer/platform/heap/thread_state.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/heap/persistent.h b/third_party/blink/renderer/platform/heap/persistent.h
index ad3d4e5..edabc62 100644
--- a/third_party/blink/renderer/platform/heap/persistent.h
+++ b/third_party/blink/renderer/platform/heap/persistent.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/platform/heap/member.h"
 #include "third_party/blink/renderer/platform/heap/persistent_node.h"
 #include "third_party/blink/renderer/platform/heap/visitor.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/cross_thread_copier.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/heap/persistent_node.h b/third_party/blink/renderer/platform/heap/persistent_node.h
index 50c6f4fff..0410a46 100644
--- a/third_party/blink/renderer/platform/heap/persistent_node.h
+++ b/third_party/blink/renderer/platform/heap/persistent_node.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/renderer/platform/heap/process_heap.h"
 #include "third_party/blink/renderer/platform/heap/thread_state.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/threading_primitives.h"
 
diff --git a/third_party/blink/renderer/platform/heap/process_heap.h b/third_party/blink/renderer/platform/heap/process_heap.h
index 61b3c961..58d1026b 100644
--- a/third_party/blink/renderer/platform/heap/process_heap.h
+++ b/third_party/blink/renderer/platform/heap/process_heap.h
@@ -7,7 +7,7 @@
 
 #include <atomic>
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/threading_primitives.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/heap/self_keep_alive.h b/third_party/blink/renderer/platform/heap/self_keep_alive.h
index f6626451..b09526c 100644
--- a/third_party/blink/renderer/platform/heap/self_keep_alive.h
+++ b/third_party/blink/renderer/platform/heap/self_keep_alive.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_HEAP_SELF_KEEP_ALIVE_H_
 
 #include "third_party/blink/renderer/platform/heap/persistent.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/heap/thread_state.h b/third_party/blink/renderer/platform/heap/thread_state.h
index 47e44f2..f8d2c90 100644
--- a/third_party/blink/renderer/platform/heap/thread_state.h
+++ b/third_party/blink/renderer/platform/heap/thread_state.h
@@ -40,7 +40,7 @@
 #include "third_party/blink/renderer/platform/heap/threading_traits.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/scheduler/public/rail_mode_observer.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
diff --git a/third_party/blink/renderer/platform/heap/threading_traits.h b/third_party/blink/renderer/platform/heap/threading_traits.h
index 832b212..8596d3c8 100644
--- a/third_party/blink/renderer/platform/heap/threading_traits.h
+++ b/third_party/blink/renderer/platform/heap/threading_traits.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_HEAP_THREADING_TRAITS_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_HEAP_THREADING_TRAITS_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/deque.h"
 #include "third_party/blink/renderer/platform/wtf/hash_counted_set.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
diff --git a/third_party/blink/renderer/platform/heap/trace_traits.h b/third_party/blink/renderer/platform/heap/trace_traits.h
index b5e315e..ac051c10 100644
--- a/third_party/blink/renderer/platform/heap/trace_traits.h
+++ b/third_party/blink/renderer/platform/heap/trace_traits.h
@@ -9,7 +9,7 @@
 #include "third_party/blink/renderer/platform/heap/gc_info.h"
 #include "third_party/blink/renderer/platform/heap/heap.h"
 #include "third_party/blink/renderer/platform/heap/visitor.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/hash_counted_set.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
diff --git a/third_party/blink/renderer/platform/heap/visitor.h b/third_party/blink/renderer/platform/heap/visitor.h
index e5a757d..1d03097 100644
--- a/third_party/blink/renderer/platform/heap/visitor.h
+++ b/third_party/blink/renderer/platform/heap/visitor.h
@@ -34,7 +34,7 @@
 #include <memory>
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/hash_traits.h"
diff --git a/third_party/blink/renderer/platform/heap/worklist.h b/third_party/blink/renderer/platform/heap/worklist.h
index b0f6fa710..5dc2bcf 100644
--- a/third_party/blink/renderer/platform/heap/worklist.h
+++ b/third_party/blink/renderer/platform/heap/worklist.h
@@ -19,7 +19,7 @@
 #include "base/gtest_prod_util.h"
 #include "base/logging.h"
 #include "base/synchronization/lock.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/histogram.h b/third_party/blink/renderer/platform/histogram.h
index 76f00cf..69a3d465d 100644
--- a/third_party/blink/renderer/platform/histogram.h
+++ b/third_party/blink/renderer/platform/histogram.h
@@ -11,7 +11,7 @@
 #include "base/time/default_tick_clock.h"
 #include "base/time/tick_clock.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/time.h"
 
 namespace base {
diff --git a/third_party/blink/renderer/platform/image-decoders/bmp/bmp_image_reader.h b/third_party/blink/renderer/platform/image-decoders/bmp/bmp_image_reader.h
index 48c4032..342d62e 100644
--- a/third_party/blink/renderer/platform/image-decoders/bmp/bmp_image_reader.h
+++ b/third_party/blink/renderer/platform/image-decoders/bmp/bmp_image_reader.h
@@ -36,7 +36,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/image-decoders/fast_shared_buffer_reader.h"
 #include "third_party/blink/renderer/platform/image-decoders/image_decoder.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/image-decoders/fast_shared_buffer_reader.h b/third_party/blink/renderer/platform/image-decoders/fast_shared_buffer_reader.h
index 56d8e6bd..fe91df0 100644
--- a/third_party/blink/renderer/platform/image-decoders/fast_shared_buffer_reader.h
+++ b/third_party/blink/renderer/platform/image-decoders/fast_shared_buffer_reader.h
@@ -35,7 +35,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/platform/image-decoders/segment_reader.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/image-decoders/image_frame.h b/third_party/blink/renderer/platform/image-decoders/image_frame.h
index 6ad4ed4..bbadfed 100644
--- a/third_party/blink/renderer/platform/image-decoders/image_frame.h
+++ b/third_party/blink/renderer/platform/image-decoders/image_frame.h
@@ -30,7 +30,7 @@
 #include "third_party/blink/public/platform/web_vector.h"
 #include "third_party/blink/renderer/platform/geometry/int_rect.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/time.h"
 #include "third_party/skia/include/core/SkBitmap.h"
diff --git a/third_party/blink/renderer/platform/image-decoders/png/png_image_reader.h b/third_party/blink/renderer/platform/image-decoders/png/png_image_reader.h
index 236c428..d44f9c4 100644
--- a/third_party/blink/renderer/platform/image-decoders/png/png_image_reader.h
+++ b/third_party/blink/renderer/platform/image-decoders/png/png_image_reader.h
@@ -30,7 +30,7 @@
 #include "third_party/blink/renderer/platform/geometry/int_rect.h"
 #include "third_party/blink/renderer/platform/image-decoders/image_frame.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 #define PNG_SET_OPTION_SUPPORTED
diff --git a/third_party/blink/renderer/platform/image-encoders/image_encoder.h b/third_party/blink/renderer/platform/image-encoders/image_encoder.h
index f33d206..f92ccfef 100644
--- a/third_party/blink/renderer/platform/image-encoders/image_encoder.h
+++ b/third_party/blink/renderer/platform/image-encoders/image_encoder.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/platform/graphics/graphics_types.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 #include "third_party/skia/include/core/SkStream.h"
 #include "third_party/skia/include/encode/SkJpegEncoder.h"
diff --git a/third_party/blink/renderer/platform/image-encoders/image_encoder_utils.h b/third_party/blink/renderer/platform/image-encoders/image_encoder_utils.h
index 46fbd39..f07fb17 100644
--- a/third_party/blink/renderer/platform/image-encoders/image_encoder_utils.h
+++ b/third_party/blink/renderer/platform/image-encoders/image_encoder_utils.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/platform/graphics/graphics_types.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/instance_counters.h b/third_party/blink/renderer/platform/instance_counters.h
index 60296b80..8225d40 100644
--- a/third_party/blink/renderer/platform/instance_counters.h
+++ b/third_party/blink/renderer/platform/instance_counters.h
@@ -33,7 +33,7 @@
 
 #include <atomic>
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/wtf.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/instance_counters_memory_dump_provider.h b/third_party/blink/renderer/platform/instance_counters_memory_dump_provider.h
index f159eb1..f135f48a 100644
--- a/third_party/blink/renderer/platform/instance_counters_memory_dump_provider.h
+++ b/third_party/blink/renderer/platform/instance_counters_memory_dump_provider.h
@@ -8,7 +8,7 @@
 #include "base/macros.h"
 #include "base/trace_event/memory_dump_provider.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/instrumentation/resource_coordinator/document_resource_coordinator.h b/third_party/blink/renderer/platform/instrumentation/resource_coordinator/document_resource_coordinator.h
index e193e35..bd32fb9d 100644
--- a/third_party/blink/renderer/platform/instrumentation/resource_coordinator/document_resource_coordinator.h
+++ b/third_party/blink/renderer/platform/instrumentation/resource_coordinator/document_resource_coordinator.h
@@ -10,7 +10,7 @@
 #include "base/macros.h"
 #include "services/resource_coordinator/public/mojom/coordination_unit.mojom-blink.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace service_manager {
 class InterfaceProvider;
diff --git a/third_party/blink/renderer/platform/instrumentation/resource_coordinator/renderer_resource_coordinator.h b/third_party/blink/renderer/platform/instrumentation/resource_coordinator/renderer_resource_coordinator.h
index f2abbf3..bbb9fd8 100644
--- a/third_party/blink/renderer/platform/instrumentation/resource_coordinator/renderer_resource_coordinator.h
+++ b/third_party/blink/renderer/platform/instrumentation/resource_coordinator/renderer_resource_coordinator.h
@@ -8,7 +8,7 @@
 #include "base/macros.h"
 #include "services/resource_coordinator/public/mojom/coordination_unit.mojom-blink.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace service_manager {
 class Connector;
diff --git a/third_party/blink/renderer/platform/instrumentation/tracing/memory_cache_dump_provider.h b/third_party/blink/renderer/platform/instrumentation/tracing/memory_cache_dump_provider.h
index f811c4f..c99c5dc 100644
--- a/third_party/blink/renderer/platform/instrumentation/tracing/memory_cache_dump_provider.h
+++ b/third_party/blink/renderer/platform/instrumentation/tracing/memory_cache_dump_provider.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/platform/heap/persistent.h"
 #include "third_party/blink/renderer/platform/instrumentation/tracing/web_process_memory_dump.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/instrumentation/tracing/web_memory_allocator_dump.h b/third_party/blink/renderer/platform/instrumentation/tracing/web_memory_allocator_dump.h
index c51b284..a9af22e 100644
--- a/third_party/blink/renderer/platform/instrumentation/tracing/web_memory_allocator_dump.h
+++ b/third_party/blink/renderer/platform/instrumentation/tracing/web_memory_allocator_dump.h
@@ -9,7 +9,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace base {
diff --git a/third_party/blink/renderer/platform/instrumentation/tracing/web_process_memory_dump.h b/third_party/blink/renderer/platform/instrumentation/tracing/web_process_memory_dump.h
index 221bf7a..31adea9 100644
--- a/third_party/blink/renderer/platform/instrumentation/tracing/web_process_memory_dump.h
+++ b/third_party/blink/renderer/platform/instrumentation/tracing/web_process_memory_dump.h
@@ -16,7 +16,7 @@
 #include "base/trace_event/memory_dump_request_args.h"
 #include "third_party/blink/renderer/platform/instrumentation/tracing/web_memory_allocator_dump.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/platform/json/json_values.h b/third_party/blink/renderer/platform/json/json_values.h
index 1e00438b..a3808a1eb 100644
--- a/third_party/blink/renderer/platform/json/json_values.h
+++ b/third_party/blink/renderer/platform/json/json_values.h
@@ -37,7 +37,7 @@
 #include "base/macros.h"
 #include "base/memory/ptr_util.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
diff --git a/third_party/blink/renderer/platform/link_hash.h b/third_party/blink/renderer/platform/link_hash.h
index a8097f0..ad2371f 100644
--- a/third_party/blink/renderer/platform/link_hash.h
+++ b/third_party/blink/renderer/platform/link_hash.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_LINK_HASH_H_
 
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
 
diff --git a/third_party/blink/renderer/platform/loader/cors/cors.cc b/third_party/blink/renderer/platform/loader/cors/cors.cc
index e56b1691..44e3aec0 100644
--- a/third_party/blink/renderer/platform/loader/cors/cors.cc
+++ b/third_party/blink/renderer/platform/loader/cors/cors.cc
@@ -31,7 +31,7 @@
 base::Optional<std::string> GetHeaderValue(const HTTPHeaderMap& header_map,
                                            const AtomicString& header_name) {
   if (header_map.Contains(header_name)) {
-    return WebString(header_map.Get(header_name)).Latin1();
+    return header_map.Get(header_name).Latin1();
   }
   return base::nullopt;
 }
@@ -317,36 +317,34 @@
 
 bool IsCorsSafelistedMethod(const String& method) {
   DCHECK(!method.IsNull());
-  return network::cors::IsCorsSafelistedMethod(WebString(method).Latin1());
+  return network::cors::IsCorsSafelistedMethod(method.Latin1());
 }
 
 bool IsCorsSafelistedContentType(const String& media_type) {
-  return network::cors::IsCorsSafelistedContentType(
-      WebString(media_type).Latin1());
+  return network::cors::IsCorsSafelistedContentType(media_type.Latin1());
 }
 
 bool IsNoCorsSafelistedHeaderName(const String& name) {
   DCHECK(!name.IsNull());
-  return network::cors::IsNoCorsSafelistedHeaderName(WebString(name).Latin1());
+  return network::cors::IsNoCorsSafelistedHeaderName(name.Latin1());
 }
 
 bool IsPrivilegedNoCorsHeaderName(const String& name) {
   DCHECK(!name.IsNull());
-  return network::cors::IsPrivilegedNoCorsHeaderName(WebString(name).Latin1());
+  return network::cors::IsPrivilegedNoCorsHeaderName(name.Latin1());
 }
 
 bool IsNoCorsSafelistedHeader(const String& name, const String& value) {
   DCHECK(!name.IsNull());
   DCHECK(!value.IsNull());
-  return network::cors::IsNoCorsSafelistedHeader(WebString(name).Latin1(),
-                                                 WebString(value).Latin1());
+  return network::cors::IsNoCorsSafelistedHeader(name.Latin1(), value.Latin1());
 }
 
 Vector<String> CorsUnsafeRequestHeaderNames(const HTTPHeaderMap& headers) {
   net::HttpRequestHeaders::HeaderVector in;
   for (const auto& entry : headers) {
     in.push_back(net::HttpRequestHeaders::HeaderKeyValuePair(
-        WebString(entry.key).Latin1(), WebString(entry.value).Latin1()));
+        entry.key.Latin1(), entry.value.Latin1()));
   }
 
   Vector<String> header_names;
@@ -356,7 +354,7 @@
 }
 
 bool IsForbiddenHeaderName(const String& name) {
-  return network::cors::IsForbiddenHeader(WebString(name).Latin1());
+  return network::cors::IsForbiddenHeader(name.Latin1());
 }
 
 bool ContainsOnlyCorsSafelistedHeaders(const HTTPHeaderMap& header_map) {
@@ -371,7 +369,7 @@
   net::HttpRequestHeaders::HeaderVector in;
   for (const auto& entry : headers) {
     in.push_back(net::HttpRequestHeaders::HeaderKeyValuePair(
-        WebString(entry.key).Latin1(), WebString(entry.value).Latin1()));
+        entry.key.Latin1(), entry.value.Latin1()));
   }
   // |is_revalidating| is not needed for blink-side CORS.
   constexpr bool is_revalidating = false;
@@ -412,8 +410,8 @@
   }
 
   WebHTTPHeaderSet header_set;
-  HTTPHeaderNameListParser parser(response.HttpHeaderField(
-      WebString(http_names::kAccessControlExposeHeaders)));
+  HTTPHeaderNameListParser parser(
+      response.HttpHeaderField(http_names::kAccessControlExposeHeaders));
   parser.Parse(header_set);
 
   if (credentials_mode != network::mojom::FetchCredentialsMode::kInclude &&
diff --git a/third_party/blink/renderer/platform/loader/fetch/cached_metadata.h b/third_party/blink/renderer/platform/loader/fetch/cached_metadata.h
index 77152f2..2956dd2 100644
--- a/third_party/blink/renderer/platform/loader/fetch/cached_metadata.h
+++ b/third_party/blink/renderer/platform/loader/fetch/cached_metadata.h
@@ -34,7 +34,7 @@
 #include <stdint.h>
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/cached_metadata_handler.h b/third_party/blink/renderer/platform/loader/fetch/cached_metadata_handler.h
index 44d39b99..c292c1dc 100644
--- a/third_party/blink/renderer/platform/loader/fetch/cached_metadata_handler.h
+++ b/third_party/blink/renderer/platform/loader/fetch/cached_metadata_handler.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/weborigin/security_origin.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/loader/fetch/client_hints_preferences.h b/third_party/blink/renderer/platform/loader/fetch/client_hints_preferences.h
index 270f8bfd..21379c93 100644
--- a/third_party/blink/renderer/platform/loader/fetch/client_hints_preferences.h
+++ b/third_party/blink/renderer/platform/loader/fetch/client_hints_preferences.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/public/platform/web_client_hints_type.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/time.h"
 
diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_initiator_info.h b/third_party/blink/renderer/platform/loader/fetch/fetch_initiator_info.h
index 2230bcc..dfee59cf 100644
--- a/third_party/blink/renderer/platform/loader/fetch/fetch_initiator_info.h
+++ b/third_party/blink/renderer/platform/loader/fetch/fetch_initiator_info.h
@@ -26,7 +26,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_FETCH_FETCH_INITIATOR_INFO_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_FETCH_FETCH_INITIATOR_INFO_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/text/text_position.h"
 
diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_parameters.h b/third_party/blink/renderer/platform/loader/fetch/fetch_parameters.h
index a0301e4..b8a7bb1 100644
--- a/third_party/blink/renderer/platform/loader/fetch/fetch_parameters.h
+++ b/third_party/blink/renderer/platform/loader/fetch/fetch_parameters.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/platform/loader/fetch/resource_request.h"
 #include "third_party/blink/renderer/platform/loader/fetch/text_resource_decoder_options.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/text_encoding.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_utils.h b/third_party/blink/renderer/platform/loader/fetch/fetch_utils.h
index bfbcabd..f3f42d38 100644
--- a/third_party/blink/renderer/platform/loader/fetch/fetch_utils.h
+++ b/third_party/blink/renderer/platform/loader/fetch/fetch_utils.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/public/platform/web_url_request.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/loader/fetch/integrity_metadata.h b/third_party/blink/renderer/platform/loader/fetch/integrity_metadata.h
index a3de360..44101df 100644
--- a/third_party/blink/renderer/platform/loader/fetch/integrity_metadata.h
+++ b/third_party/blink/renderer/platform/loader/fetch/integrity_metadata.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_FETCH_INTEGRITY_METADATA_H_
 
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_hasher.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.h b/third_party/blink/renderer/platform/loader/fetch/memory_cache.h
index 2a0f089..4b1bf346 100644
--- a/third_party/blink/renderer/platform/loader/fetch/memory_cache.h
+++ b/third_party/blink/renderer/platform/loader/fetch/memory_cache.h
@@ -32,7 +32,7 @@
 #include "third_party/blink/renderer/platform/memory_pressure_listener.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/scheduler/public/thread.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/raw_resource.h b/third_party/blink/renderer/platform/loader/fetch/raw_resource.h
index afd8b23..93478c6 100644
--- a/third_party/blink/renderer/platform/loader/fetch/raw_resource.h
+++ b/third_party/blink/renderer/platform/loader/fetch/raw_resource.h
@@ -30,7 +30,7 @@
 #include "third_party/blink/renderer/platform/loader/fetch/resource_client.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_loader_options.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 class BytesConsumer;
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource.h b/third_party/blink/renderer/platform/loader/fetch/resource.h
index a3c555c..69df1ef3 100644
--- a/third_party/blink/renderer/platform/loader/fetch/resource.h
+++ b/third_party/blink/renderer/platform/loader/fetch/resource.h
@@ -48,7 +48,7 @@
 #include "third_party/blink/renderer/platform/scheduler/public/post_cancellable_task.h"
 #include "third_party/blink/renderer/platform/shared_buffer.h"
 #include "third_party/blink/renderer/platform/timer.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_counted_set.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_client_walker.h b/third_party/blink/renderer/platform/loader/fetch/resource_client_walker.h
index 723d2ca..3adba2fb 100644
--- a/third_party/blink/renderer/platform/loader/fetch/resource_client_walker.h
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_client_walker.h
@@ -27,7 +27,7 @@
 
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_client.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_error.h b/third_party/blink/renderer/platform/loader/fetch/resource_error.h
index b50e630..d08439d 100644
--- a/third_party/blink/renderer/platform/loader/fetch/resource_error.h
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_error.h
@@ -33,7 +33,7 @@
 #include "third_party/blink/public/platform/web_url_error.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
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 a55cbc41..eb6761a 100644
--- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
@@ -675,7 +675,7 @@
       return nullptr;
     }
     // TODO(yhirano): Consider removing this.
-    if (!IsSupportedMimeType(WebString(response.MimeType()).Utf8())) {
+    if (!IsSupportedMimeType(response.MimeType().Utf8())) {
       return nullptr;
     }
   } else {
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher_test.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher_test.cc
index 8fffcb7..b356c60 100644
--- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher_test.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher_test.cc
@@ -71,7 +71,7 @@
 #include "third_party/blink/renderer/platform/testing/weburl_loader_mock.h"
 #include "third_party/blink/renderer/platform/testing/weburl_loader_mock_factory_impl.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/time.h"
 
 namespace blink {
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 e343fc6..20b27dbd 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
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
 #include "third_party/blink/renderer/platform/scheduler/test/fake_frame_scheduler.h"
 #include "third_party/blink/renderer/platform/testing/testing_platform_support.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 namespace {
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc b/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc
index 4612d5a0..b1a8786 100644
--- a/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc
@@ -72,7 +72,7 @@
 #include "third_party/blink/renderer/platform/shared_buffer.h"
 #include "third_party/blink/renderer/platform/weborigin/scheme_registry.h"
 #include "third_party/blink/renderer/platform/weborigin/security_violation_reporting_policy.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_loader_options.h b/third_party/blink/renderer/platform/loader/fetch/resource_loader_options.h
index c20c349..05bc750 100644
--- a/third_party/blink/renderer/platform/loader/fetch/resource_loader_options.h
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_loader_options.h
@@ -35,7 +35,7 @@
 #include "services/network/public/mojom/url_loader_factory.mojom-blink.h"
 #include "third_party/blink/renderer/platform/loader/fetch/fetch_initiator_info.h"
 #include "third_party/blink/renderer/platform/loader/fetch/integrity_metadata.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_priority.h b/third_party/blink/renderer/platform/loader/fetch/resource_priority.h
index 7b4eceb..340fcc0 100644
--- a/third_party/blink/renderer/platform/loader/fetch/resource_priority.h
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_priority.h
@@ -26,7 +26,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_FETCH_RESOURCE_PRIORITY_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_FETCH_RESOURCE_PRIORITY_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_response.h b/third_party/blink/renderer/platform/loader/fetch/resource_response.h
index f6189cf..858a47c8 100644
--- a/third_party/blink/renderer/platform/loader/fetch/resource_response.h
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_response.h
@@ -42,7 +42,7 @@
 #include "third_party/blink/renderer/platform/network/http_parsers.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/time.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_timing_info.h b/third_party/blink/renderer/platform/loader/fetch/resource_timing_info.h
index 51b5b2a..84304db 100644
--- a/third_party/blink/renderer/platform/loader/fetch/resource_timing_info.h
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_timing_info.h
@@ -36,7 +36,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_request.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_response.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/time.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/script_fetch_options.h b/third_party/blink/renderer/platform/loader/fetch/script_fetch_options.h
index 1a22837..0259f2a6 100644
--- a/third_party/blink/renderer/platform/loader/fetch/script_fetch_options.h
+++ b/third_party/blink/renderer/platform/loader/fetch/script_fetch_options.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/platform/loader/fetch/integrity_metadata.h"
 #include "third_party/blink/renderer/platform/loader/fetch/resource_loader_options.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/text_encoding.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/platform/loader/fetch/text_resource_decoder_options.h b/third_party/blink/renderer/platform/loader/fetch/text_resource_decoder_options.h
index 2316b95..50b95fa 100644
--- a/third_party/blink/renderer/platform/loader/fetch/text_resource_decoder_options.h
+++ b/third_party/blink/renderer/platform/loader/fetch/text_resource_decoder_options.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/text_encoding.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/loader/ftp_directory_listing_test.cc b/third_party/blink/renderer/platform/loader/ftp_directory_listing_test.cc
index 86bda2e..b18d531 100644
--- a/third_party/blink/renderer/platform/loader/ftp_directory_listing_test.cc
+++ b/third_party/blink/renderer/platform/loader/ftp_directory_listing_test.cc
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/platform/loader/fetch/resource_error.h"
 #include "third_party/blink/renderer/platform/shared_buffer.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/icu/source/i18n/unicode/timezone.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/loader/link_header.h b/third_party/blink/renderer/platform/loader/link_header.h
index ebfecfe..8617ed9 100644
--- a/third_party/blink/renderer/platform/loader/link_header.h
+++ b/third_party/blink/renderer/platform/loader/link_header.h
@@ -7,7 +7,7 @@
 
 #include "base/optional.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/loader/subresource_integrity.h b/third_party/blink/renderer/platform/loader/subresource_integrity.h
index fbe56ac..0f951d63 100644
--- a/third_party/blink/renderer/platform/loader/subresource_integrity.h
+++ b/third_party/blink/renderer/platform/loader/subresource_integrity.h
@@ -8,7 +8,7 @@
 #include "base/gtest_prod_util.h"
 #include "third_party/blink/renderer/platform/loader/fetch/integrity_metadata.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/platform/mac/local_current_graphics_context.h b/third_party/blink/renderer/platform/mac/local_current_graphics_context.h
index 32e20aa..d9e77811 100644
--- a/third_party/blink/renderer/platform/mac/local_current_graphics_context.h
+++ b/third_party/blink/renderer/platform/mac/local_current_graphics_context.h
@@ -24,7 +24,7 @@
 #include "third_party/blink/renderer/platform/geometry/int_rect.h"
 #include "third_party/blink/renderer/platform/mac/graphics_context_canvas.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 @class NSGraphicsContext;
 
diff --git a/third_party/blink/renderer/platform/mediastream/media_stream_center.h b/third_party/blink/renderer/platform/mediastream/media_stream_center.h
index 1b4ea83..ea5f98b 100644
--- a/third_party/blink/renderer/platform/mediastream/media_stream_center.h
+++ b/third_party/blink/renderer/platform/mediastream/media_stream_center.h
@@ -38,7 +38,7 @@
 #include "third_party/blink/public/platform/web_media_stream_track.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/mediastream/media_stream_descriptor.h b/third_party/blink/renderer/platform/mediastream/media_stream_descriptor.h
index 0f007d6..d346771 100644
--- a/third_party/blink/renderer/platform/mediastream/media_stream_descriptor.h
+++ b/third_party/blink/renderer/platform/mediastream/media_stream_descriptor.h
@@ -35,7 +35,7 @@
 #include <memory>
 #include "third_party/blink/renderer/platform/mediastream/media_stream_component.h"
 #include "third_party/blink/renderer/platform/mediastream/media_stream_source.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/platform/mediastream/media_stream_source.h b/third_party/blink/renderer/platform/mediastream/media_stream_source.h
index 7f03e8d..7cbeae6 100644
--- a/third_party/blink/renderer/platform/mediastream/media_stream_source.h
+++ b/third_party/blink/renderer/platform/mediastream/media_stream_source.h
@@ -42,7 +42,7 @@
 #include "third_party/blink/public/platform/web_media_stream_track.h"
 #include "third_party/blink/renderer/platform/audio/audio_destination_consumer.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/threading_primitives.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/platform/mhtml/serialized_resource.h b/third_party/blink/renderer/platform/mhtml/serialized_resource.h
index 37ed5a0..c53c204 100644
--- a/third_party/blink/renderer/platform/mhtml/serialized_resource.h
+++ b/third_party/blink/renderer/platform/mhtml/serialized_resource.h
@@ -33,7 +33,7 @@
 
 #include "third_party/blink/renderer/platform/shared_buffer.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/mhtml/shared_buffer_chunk_reader.h b/third_party/blink/renderer/platform/mhtml/shared_buffer_chunk_reader.h
index 8653387..08dadaa 100644
--- a/third_party/blink/renderer/platform/mhtml/shared_buffer_chunk_reader.h
+++ b/third_party/blink/renderer/platform/mhtml/shared_buffer_chunk_reader.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_MHTML_SHARED_BUFFER_CHUNK_READER_H_
 
 #include "base/macros.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/platform/mojo/interface_invalidator.h b/third_party/blink/renderer/platform/mojo/interface_invalidator.h
index 00d90f31..b14be84 100644
--- a/third_party/blink/renderer/platform/mojo/interface_invalidator.h
+++ b/third_party/blink/renderer/platform/mojo/interface_invalidator.h
@@ -9,7 +9,7 @@
 #include "base/memory/weak_ptr.h"
 #include "base/observer_list.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/network/content_security_policy_response_headers.h b/third_party/blink/renderer/platform/network/content_security_policy_response_headers.h
index 4df0f88..71d4639 100644
--- a/third_party/blink/renderer/platform/network/content_security_policy_response_headers.h
+++ b/third_party/blink/renderer/platform/network/content_security_policy_response_headers.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_NETWORK_CONTENT_SECURITY_POLICY_RESPONSE_HEADERS_H_
 
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/cross_thread_copier.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/platform/network/encoded_form_data.h b/third_party/blink/renderer/platform/network/encoded_form_data.h
index 53323997..65f317bf 100644
--- a/third_party/blink/renderer/platform/network/encoded_form_data.h
+++ b/third_party/blink/renderer/platform/network/encoded_form_data.h
@@ -32,7 +32,7 @@
 #include "mojo/public/cpp/bindings/struct_traits.h"
 #include "third_party/blink/renderer/platform/blob/blob_data.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/platform/network/form_data_encoder.h b/third_party/blink/renderer/platform/network/form_data_encoder.h
index 43e7e5e8..81cccd2 100644
--- a/third_party/blink/renderer/platform/network/form_data_encoder.h
+++ b/third_party/blink/renderer/platform/network/form_data_encoder.h
@@ -23,7 +23,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_NETWORK_FORM_DATA_ENCODER_H_
 
 #include "third_party/blink/renderer/platform/network/encoded_form_data.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace WTF {
diff --git a/third_party/blink/renderer/platform/network/http_header_map.h b/third_party/blink/renderer/platform/network/http_header_map.h
index d7e0f4b..b2ff6035 100644
--- a/third_party/blink/renderer/platform/network/http_header_map.h
+++ b/third_party/blink/renderer/platform/network/http_header_map.h
@@ -31,7 +31,7 @@
 #include <utility>
 #include "third_party/blink/renderer/platform/network/http_parsers.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string_hash.h"
diff --git a/third_party/blink/renderer/platform/network/http_parsers.h b/third_party/blink/renderer/platform/network/http_parsers.h
index 44f4255..e86c7c59 100644
--- a/third_party/blink/renderer/platform/network/http_parsers.h
+++ b/third_party/blink/renderer/platform/network/http_parsers.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/platform/network/parsed_content_type.h"
 #include "third_party/blink/renderer/platform/network/server_timing_header.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
diff --git a/third_party/blink/renderer/platform/network/mime/content_type.h b/third_party/blink/renderer/platform/network/mime/content_type.h
index 212aece..e1d5bbc 100644
--- a/third_party/blink/renderer/platform/network/mime/content_type.h
+++ b/third_party/blink/renderer/platform/network/mime/content_type.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_NETWORK_MIME_CONTENT_TYPE_H_
 
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/network/mime/mime_type_registry.h b/third_party/blink/renderer/platform/network/mime/mime_type_registry.h
index 3a16835..241857f 100644
--- a/third_party/blink/renderer/platform/network/mime/mime_type_registry.h
+++ b/third_party/blink/renderer/platform/network/mime/mime_type_registry.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_NETWORK_MIME_MIME_TYPE_REGISTRY_H_
 
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/platform/network/network_state_notifier.h b/third_party/blink/renderer/platform/network/network_state_notifier.h
index 81da4a5..0814597 100644
--- a/third_party/blink/renderer/platform/network/network_state_notifier.h
+++ b/third_party/blink/renderer/platform/network/network_state_notifier.h
@@ -35,7 +35,7 @@
 #include "third_party/blink/public/platform/web_connection_type.h"
 #include "third_party/blink/public/platform/web_effective_connection_type.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/cross_thread_copier.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/platform/network/parsed_content_disposition.h b/third_party/blink/renderer/platform/network/parsed_content_disposition.h
index 895da334..44aa053 100644
--- a/third_party/blink/renderer/platform/network/parsed_content_disposition.h
+++ b/third_party/blink/renderer/platform/network/parsed_content_disposition.h
@@ -8,7 +8,7 @@
 #include "base/optional.h"
 #include "third_party/blink/renderer/platform/network/parsed_content_header_field_parameters.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/platform/network/parsed_content_header_field_parameters.h b/third_party/blink/renderer/platform/network/parsed_content_header_field_parameters.h
index ce19c47..26d72b3 100644
--- a/third_party/blink/renderer/platform/network/parsed_content_header_field_parameters.h
+++ b/third_party/blink/renderer/platform/network/parsed_content_header_field_parameters.h
@@ -7,7 +7,7 @@
 
 #include "base/optional.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/platform/network/parsed_content_type.h b/third_party/blink/renderer/platform/network/parsed_content_type.h
index f885092..1620850 100644
--- a/third_party/blink/renderer/platform/network/parsed_content_type.h
+++ b/third_party/blink/renderer/platform/network/parsed_content_type.h
@@ -35,7 +35,7 @@
 #include "base/optional.h"
 #include "third_party/blink/renderer/platform/network/parsed_content_header_field_parameters.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/network/server_timing_header.h b/third_party/blink/renderer/platform/network/server_timing_header.h
index f527395..6115c1d 100644
--- a/third_party/blink/renderer/platform/network/server_timing_header.h
+++ b/third_party/blink/renderer/platform/network/server_timing_header.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_NETWORK_SERVER_TIMING_HEADER_H_
 
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/scheduler/common/cancelable_closure_holder.h b/third_party/blink/renderer/platform/scheduler/common/cancelable_closure_holder.h
index 864fda4..8ac08a0c 100644
--- a/third_party/blink/renderer/platform/scheduler/common/cancelable_closure_holder.h
+++ b/third_party/blink/renderer/platform/scheduler/common/cancelable_closure_holder.h
@@ -7,7 +7,7 @@
 
 #include "base/cancelable_callback.h"
 #include "base/macros.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 namespace scheduler {
diff --git a/third_party/blink/renderer/platform/scheduler/common/metrics_helper.h b/third_party/blink/renderer/platform/scheduler/common/metrics_helper.h
index 27bbd73..88764362 100644
--- a/third_party/blink/renderer/platform/scheduler/common/metrics_helper.h
+++ b/third_party/blink/renderer/platform/scheduler/common/metrics_helper.h
@@ -13,7 +13,7 @@
 #include "components/scheduling_metrics/total_duration_metric_reporter.h"
 #include "third_party/blink/public/platform/web_thread_type.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace base {
 namespace sequence_manager {
diff --git a/third_party/blink/renderer/platform/scheduler/common/pollable_thread_safe_flag.h b/third_party/blink/renderer/platform/scheduler/common/pollable_thread_safe_flag.h
index 35e1067..a78dc2b 100644
--- a/third_party/blink/renderer/platform/scheduler/common/pollable_thread_safe_flag.h
+++ b/third_party/blink/renderer/platform/scheduler/common/pollable_thread_safe_flag.h
@@ -8,7 +8,7 @@
 #include "base/atomicops.h"
 #include "base/macros.h"
 #include "base/synchronization/lock.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 // A PollableThreadSafeFlag can be polled without requiring a lock, but can only
 // be updated if a lock is held. This enables lock-free checking as to whether a
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 1c2e4228..d1a8e56e 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
@@ -7,7 +7,7 @@
 #include "base/memory/weak_ptr.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/blink/renderer/platform/scheduler/test/fake_task_runner.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/scheduler/common/thread_load_tracker.h b/third_party/blink/renderer/platform/scheduler/common/thread_load_tracker.h
index 258a33130..6bf13f3 100644
--- a/third_party/blink/renderer/platform/scheduler/common/thread_load_tracker.h
+++ b/third_party/blink/renderer/platform/scheduler/common/thread_load_tracker.h
@@ -9,7 +9,7 @@
 #include "base/macros.h"
 #include "base/time/time.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 namespace scheduler {
diff --git a/third_party/blink/renderer/platform/scheduler/common/throttling/budget_pool.h b/third_party/blink/renderer/platform/scheduler/common/throttling/budget_pool.h
index 9f3e7c0a..9d0c355 100644
--- a/third_party/blink/renderer/platform/scheduler/common/throttling/budget_pool.h
+++ b/third_party/blink/renderer/platform/scheduler/common/throttling/budget_pool.h
@@ -13,7 +13,7 @@
 #include "base/task/sequence_manager/lazy_now.h"
 #include "base/time/time.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace base {
 namespace sequence_manager {
diff --git a/third_party/blink/renderer/platform/scheduler/common/tracing_helper.h b/third_party/blink/renderer/platform/scheduler/common/tracing_helper.h
index fe98ae89..e957afa 100644
--- a/third_party/blink/renderer/platform/scheduler/common/tracing_helper.h
+++ b/third_party/blink/renderer/platform/scheduler/common/tracing_helper.h
@@ -13,7 +13,7 @@
 #include "base/time/time.h"
 #include "base/trace_event/trace_event.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/deadline_task_runner.h b/third_party/blink/renderer/platform/scheduler/main_thread/deadline_task_runner.h
index 0bbbc4e..04f3362 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/deadline_task_runner.h
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/deadline_task_runner.h
@@ -11,7 +11,7 @@
 #include "base/time/time.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/scheduler/common/cancelable_closure_holder.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 namespace scheduler {
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.h b/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.h
index 71e67986..d1b192d 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.h
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.h
@@ -14,7 +14,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/scheduler/main_thread/main_thread_task_queue.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h
index bdd3cdc..c68d6fe 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h
@@ -46,7 +46,7 @@
 #include "third_party/blink/renderer/platform/scheduler/main_thread/user_model.h"
 #include "third_party/blink/renderer/platform/scheduler/public/frame_scheduler.h"
 #include "third_party/blink/renderer/platform/scheduler/public/rail_mode_observer.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace base {
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 22966515..7316af7 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
@@ -22,7 +22,7 @@
 #include "third_party/blink/renderer/platform/scheduler/public/page_lifecycle_state.h"
 #include "third_party/blink/renderer/platform/scheduler/public/page_scheduler.h"
 #include "third_party/blink/renderer/platform/scheduler/public/thread_scheduler.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace base {
 namespace trace_event {
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/prioritize_compositing_after_input_experiment.h b/third_party/blink/renderer/platform/scheduler/main_thread/prioritize_compositing_after_input_experiment.h
index 8a95c20f..fc74b9c 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/prioritize_compositing_after_input_experiment.h
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/prioritize_compositing_after_input_experiment.h
@@ -7,7 +7,7 @@
 
 #include "base/task/sequence_manager/task_queue.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 namespace scheduler {
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/queueing_time_estimator.h b/third_party/blink/renderer/platform/scheduler/main_thread/queueing_time_estimator.h
index 59f2dca3..e19e328 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/queueing_time_estimator.h
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/queueing_time_estimator.h
@@ -12,7 +12,7 @@
 #include "base/time/time.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/scheduler/main_thread/main_thread_task_queue.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 namespace scheduler {
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/render_widget_signals.h b/third_party/blink/renderer/platform/scheduler/main_thread/render_widget_signals.h
index feed3ae..f484d89 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/render_widget_signals.h
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/render_widget_signals.h
@@ -10,7 +10,7 @@
 #include "base/trace_event/trace_event.h"
 #include "base/trace_event/traced_value.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 namespace scheduler {
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/task_type_names.h b/third_party/blink/renderer/platform/scheduler/main_thread/task_type_names.h
index 4f520427..c7b11fe 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/task_type_names.h
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/task_type_names.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_MAIN_THREAD_TASK_TYPE_NAMES_H_
 
 #include "third_party/blink/public/platform/task_type.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/user_model.h b/third_party/blink/renderer/platform/scheduler/main_thread/user_model.h
index 6f55b44..e29de4b 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/user_model.h
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/user_model.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/public/platform/scheduler/web_thread_scheduler.h"
 #include "third_party/blink/public/platform/web_input_event.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 namespace scheduler {
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 7622f19..222d3e7 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
@@ -13,7 +13,7 @@
 #include "base/threading/thread_checker.h"
 #include "base/time/time.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace base {
 class HistogramBase;
diff --git a/third_party/blink/renderer/platform/scheduler/public/cooperative_scheduling_manager.h b/third_party/blink/renderer/platform/scheduler/public/cooperative_scheduling_manager.h
index 9e2ae9f..382a1de 100644
--- a/third_party/blink/renderer/platform/scheduler/public/cooperative_scheduling_manager.h
+++ b/third_party/blink/renderer/platform/scheduler/public/cooperative_scheduling_manager.h
@@ -7,7 +7,7 @@
 
 #include "base/time/tick_clock.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 namespace scheduler {
diff --git a/third_party/blink/renderer/platform/scheduler/public/frame_or_worker_scheduler.h b/third_party/blink/renderer/platform/scheduler/public/frame_or_worker_scheduler.h
index 90d87d0..0c5e756 100644
--- a/third_party/blink/renderer/platform/scheduler/public/frame_or_worker_scheduler.h
+++ b/third_party/blink/renderer/platform/scheduler/public/frame_or_worker_scheduler.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/scheduler/public/scheduling_lifecycle_state.h"
 #include "third_party/blink/renderer/platform/scheduler/public/scheduling_policy.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 class FrameScheduler;
diff --git a/third_party/blink/renderer/platform/scheduler/public/pending_user_input_type.h b/third_party/blink/renderer/platform/scheduler/public/pending_user_input_type.h
index 72dcd1db..17c9a3b 100644
--- a/third_party/blink/renderer/platform/scheduler/public/pending_user_input_type.h
+++ b/third_party/blink/renderer/platform/scheduler/public/pending_user_input_type.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_PUBLIC_PENDING_USER_INPUT_TYPE_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_PUBLIC_PENDING_USER_INPUT_TYPE_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 namespace scheduler {
diff --git a/third_party/blink/renderer/platform/scheduler/public/post_cancellable_task.h b/third_party/blink/renderer/platform/scheduler/public/post_cancellable_task.h
index 8ccca07..ae66c73c 100644
--- a/third_party/blink/renderer/platform/scheduler/public/post_cancellable_task.h
+++ b/third_party/blink/renderer/platform/scheduler/public/post_cancellable_task.h
@@ -12,7 +12,7 @@
 #include "base/sequenced_task_runner.h"
 #include "base/time/time.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/scheduler/public/thread.h b/third_party/blink/renderer/platform/scheduler/public/thread.h
index 63807af3..dc2ef28 100644
--- a/third_party/blink/renderer/platform/scheduler/public/thread.h
+++ b/third_party/blink/renderer/platform/scheduler/public/thread.h
@@ -32,7 +32,7 @@
 #include "base/threading/thread.h"
 #include "third_party/blink/public/platform/web_thread_type.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace base {
 class SingleThreadTaskRunner;
diff --git a/third_party/blink/renderer/platform/scheduler/public/thread_cpu_throttler.h b/third_party/blink/renderer/platform/scheduler/public/thread_cpu_throttler.h
index 10b1c4b..06f559fa 100644
--- a/third_party/blink/renderer/platform/scheduler/public/thread_cpu_throttler.h
+++ b/third_party/blink/renderer/platform/scheduler/public/thread_cpu_throttler.h
@@ -9,7 +9,7 @@
 
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace base {
 template <typename T>
diff --git a/third_party/blink/renderer/platform/scheduler/public/worker_scheduler.h b/third_party/blink/renderer/platform/scheduler/public/worker_scheduler.h
index c41615b..133a113 100644
--- a/third_party/blink/renderer/platform/scheduler/public/worker_scheduler.h
+++ b/third_party/blink/renderer/platform/scheduler/public/worker_scheduler.h
@@ -10,7 +10,7 @@
 #include "third_party/blink/public/platform/task_type.h"
 #include "third_party/blink/renderer/platform/scheduler/public/frame_or_worker_scheduler.h"
 #include "third_party/blink/renderer/platform/scheduler/public/frame_scheduler.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 namespace scheduler {
diff --git a/third_party/blink/renderer/platform/scheduler/test/fake_frame_scheduler.h b/third_party/blink/renderer/platform/scheduler/test/fake_frame_scheduler.h
index eb6660b..b13b671 100644
--- a/third_party/blink/renderer/platform/scheduler/test/fake_frame_scheduler.h
+++ b/third_party/blink/renderer/platform/scheduler/test/fake_frame_scheduler.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/platform/scheduler/main_thread/main_thread_task_queue.h"
 #include "third_party/blink/renderer/platform/scheduler/public/frame_scheduler.h"
 #include "third_party/blink/renderer/platform/scheduler/worker/worker_scheduler_proxy.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 namespace scheduler {
diff --git a/third_party/blink/renderer/platform/scheduler/test/fuzzer/sequence_manager_fuzzer_processor.h b/third_party/blink/renderer/platform/scheduler/test/fuzzer/sequence_manager_fuzzer_processor.h
index c5b156da..276847a 100644
--- a/third_party/blink/renderer/platform/scheduler/test/fuzzer/sequence_manager_fuzzer_processor.h
+++ b/third_party/blink/renderer/platform/scheduler/test/fuzzer/sequence_manager_fuzzer_processor.h
@@ -11,7 +11,7 @@
 #include "base/time/time.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/scheduler/test/fuzzer/proto/sequence_manager_test_description.pb.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace base {
 namespace sequence_manager {
diff --git a/third_party/blink/renderer/platform/scheduler/test/fuzzer/thread_manager.h b/third_party/blink/renderer/platform/scheduler/test/fuzzer/thread_manager.h
index 3b7351a9..05fe289 100644
--- a/third_party/blink/renderer/platform/scheduler/test/fuzzer/thread_manager.h
+++ b/third_party/blink/renderer/platform/scheduler/test/fuzzer/thread_manager.h
@@ -19,7 +19,7 @@
 #include "third_party/blink/renderer/platform/scheduler/test/fuzzer/proto/sequence_manager_test_description.pb.h"
 #include "third_party/blink/renderer/platform/scheduler/test/fuzzer/sequence_manager_fuzzer_processor.h"
 #include "third_party/blink/renderer/platform/scheduler/test/fuzzer/task_queue_with_voters.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace base {
 namespace sequence_manager {
diff --git a/third_party/blink/renderer/platform/scheduler/test/fuzzer/thread_pool_manager.h b/third_party/blink/renderer/platform/scheduler/test/fuzzer/thread_pool_manager.h
index 5644fda..7cf9860 100644
--- a/third_party/blink/renderer/platform/scheduler/test/fuzzer/thread_pool_manager.h
+++ b/third_party/blink/renderer/platform/scheduler/test/fuzzer/thread_pool_manager.h
@@ -14,7 +14,7 @@
 #include "base/time/time.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/scheduler/test/fuzzer/proto/sequence_manager_test_description.pb.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace base {
 namespace sequence_manager {
diff --git a/third_party/blink/renderer/platform/shared_buffer.cc b/third_party/blink/renderer/platform/shared_buffer.cc
index b2dd1d36..6b9e68f 100644
--- a/third_party/blink/renderer/platform/shared_buffer.cc
+++ b/third_party/blink/renderer/platform/shared_buffer.cc
@@ -29,7 +29,7 @@
 #include <memory>
 
 #include "third_party/blink/renderer/platform/instrumentation/tracing/web_process_memory_dump.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
 #include "third_party/blink/renderer/platform/wtf/text/utf8.h"
 #include "third_party/skia/include/core/SkData.h"
diff --git a/third_party/blink/renderer/platform/speech/platform_speech_synthesis_voice.h b/third_party/blink/renderer/platform/speech/platform_speech_synthesis_voice.h
index bb993d3b..24cd9dc 100644
--- a/third_party/blink/renderer/platform/speech/platform_speech_synthesis_voice.h
+++ b/third_party/blink/renderer/platform/speech/platform_speech_synthesis_voice.h
@@ -28,7 +28,7 @@
 
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/platform/testing/blink_fuzzer_test_support.h b/third_party/blink/renderer/platform/testing/blink_fuzzer_test_support.h
index c3ec87da..58e587d 100644
--- a/third_party/blink/renderer/platform/testing/blink_fuzzer_test_support.h
+++ b/third_party/blink/renderer/platform/testing/blink_fuzzer_test_support.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_TESTING_BLINK_FUZZER_TEST_SUPPORT_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_TESTING_BLINK_FUZZER_TEST_SUPPORT_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/testing/fuzzed_data_provider.h b/third_party/blink/renderer/platform/testing/fuzzed_data_provider.h
index f9a8734..064f37d5 100644
--- a/third_party/blink/renderer/platform/testing/fuzzed_data_provider.h
+++ b/third_party/blink/renderer/platform/testing/fuzzed_data_provider.h
@@ -7,7 +7,7 @@
 
 #include "base/macros.h"
 #include "base/test/fuzzed_data_provider.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/testing/histogram_tester.h b/third_party/blink/renderer/platform/testing/histogram_tester.h
index a9dd3b0..044d4811 100644
--- a/third_party/blink/renderer/platform/testing/histogram_tester.h
+++ b/third_party/blink/renderer/platform/testing/histogram_tester.h
@@ -7,7 +7,7 @@
 
 #include <memory>
 #include "third_party/blink/renderer/platform/histogram.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace base {
 class HistogramTester;
diff --git a/third_party/blink/renderer/platform/testing/layer_tree_host_embedder.h b/third_party/blink/renderer/platform/testing/layer_tree_host_embedder.h
index 9a32e74a..4d251a1 100644
--- a/third_party/blink/renderer/platform/testing/layer_tree_host_embedder.h
+++ b/third_party/blink/renderer/platform/testing/layer_tree_host_embedder.h
@@ -11,7 +11,7 @@
 #include "cc/test/test_task_graph_runner.h"
 #include "cc/trees/layer_tree_host.h"
 #include "cc/trees/layer_tree_settings.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/testing/scoped_main_thread_overrider.h b/third_party/blink/renderer/platform/testing/scoped_main_thread_overrider.h
index 30c4e92..ce8cc72 100644
--- a/third_party/blink/renderer/platform/testing/scoped_main_thread_overrider.h
+++ b/third_party/blink/renderer/platform/testing/scoped_main_thread_overrider.h
@@ -7,7 +7,7 @@
 
 #include <memory>
 #include "third_party/blink/renderer/platform/scheduler/public/thread.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/testing/scoped_mocked_url.h b/third_party/blink/renderer/platform/testing/scoped_mocked_url.h
index 37e9516..216146f 100644
--- a/third_party/blink/renderer/platform/testing/scoped_mocked_url.h
+++ b/third_party/blink/renderer/platform/testing/scoped_mocked_url.h
@@ -8,7 +8,7 @@
 #include "third_party/blink/public/platform/web_string.h"
 #include "third_party/blink/public/platform/web_url.h"
 #include "third_party/blink/public/platform/web_url_response.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/testing/scoped_scheduler_overrider.h b/third_party/blink/renderer/platform/testing/scoped_scheduler_overrider.h
index fab1157..ba30b2e 100644
--- a/third_party/blink/renderer/platform/testing/scoped_scheduler_overrider.h
+++ b/third_party/blink/renderer/platform/testing/scoped_scheduler_overrider.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/platform/scheduler/public/thread_scheduler.h"
 #include "third_party/blink/renderer/platform/testing/scoped_main_thread_overrider.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
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 47ef76c..2e35ebb 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
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/platform/fonts/font_description.h"
 #include "third_party/blink/renderer/platform/testing/font_test_helpers.h"
 #include "third_party/blink/renderer/platform/testing/unit_test_helpers.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 using blink::test::CreateTestFont;
 
diff --git a/third_party/blink/renderer/platform/testing/test_paint_artifact.h b/third_party/blink/renderer/platform/testing/test_paint_artifact.h
index 3e732a8..57255bb 100644
--- a/third_party/blink/renderer/platform/testing/test_paint_artifact.h
+++ b/third_party/blink/renderer/platform/testing/test_paint_artifact.h
@@ -11,7 +11,7 @@
 #include "third_party/blink/renderer/platform/graphics/paint/display_item_list.h"
 #include "third_party/blink/renderer/platform/graphics/paint/paint_artifact.h"
 #include "third_party/blink/renderer/platform/testing/fake_display_item_client.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace cc {
diff --git a/third_party/blink/renderer/platform/testing/testing_platform_support.h b/third_party/blink/renderer/platform/testing/testing_platform_support.h
index 38bf520..bd09d84 100644
--- a/third_party/blink/renderer/platform/testing/testing_platform_support.h
+++ b/third_party/blink/renderer/platform/testing/testing_platform_support.h
@@ -40,7 +40,7 @@
 #include "third_party/blink/public/platform/platform.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/testing/code_cache_loader_mock.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 
 namespace base {
diff --git a/third_party/blink/renderer/platform/testing/unit_test_helpers.h b/third_party/blink/renderer/platform/testing/unit_test_helpers.h
index 36092e9..c1de99ae 100644
--- a/third_party/blink/renderer/platform/testing/unit_test_helpers.h
+++ b/third_party/blink/renderer/platform/testing/unit_test_helpers.h
@@ -28,7 +28,7 @@
 
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/platform/timer.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/testing/viewport_layers_setup.h b/third_party/blink/renderer/platform/testing/viewport_layers_setup.h
index 26d30e8..20e947b 100644
--- a/third_party/blink/renderer/platform/testing/viewport_layers_setup.h
+++ b/third_party/blink/renderer/platform/testing/viewport_layers_setup.h
@@ -8,7 +8,7 @@
 #include <memory>
 
 #include "third_party/blink/renderer/platform/testing/fake_graphics_layer_client.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace cc {
 class AnimationHost;
diff --git a/third_party/blink/renderer/platform/testing/wtf/scoped_mock_clock.cc b/third_party/blink/renderer/platform/testing/wtf/scoped_mock_clock.cc
deleted file mode 100644
index 8f8c9e0..0000000
--- a/third_party/blink/renderer/platform/testing/wtf/scoped_mock_clock.cc
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "third_party/blink/renderer/platform/testing/wtf/scoped_mock_clock.h"
-
-namespace WTF {
-
-ScopedMockClock* ScopedMockClock::top_ = nullptr;
-
-ScopedMockClock::ScopedMockClock()
-    : next_(top_), next_time_function_(GetTimeFunctionForTesting()) {
-  top_ = this;
-  SetTimeFunctionsForTesting(&Now);
-}
-
-ScopedMockClock::~ScopedMockClock() {
-  top_ = next_;
-  SetTimeFunctionsForTesting(next_time_function_);
-}
-
-double ScopedMockClock::Now() {
-  return top_->now_.since_origin().InSecondsF();
-}
-
-void ScopedMockClock::Advance(TimeDelta delta) {
-  DCHECK_GT(delta, base::TimeDelta())
-      << "Monotonically increasing time may not go backwards";
-  now_ += delta;
-}
-
-}  // namespace WTF
diff --git a/third_party/blink/renderer/platform/testing/wtf/scoped_mock_clock.h b/third_party/blink/renderer/platform/testing/wtf/scoped_mock_clock.h
deleted file mode 100644
index 5c1373b..0000000
--- a/third_party/blink/renderer/platform/testing/wtf/scoped_mock_clock.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_TESTING_WTF_SCOPED_MOCK_CLOCK_H_
-#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_TESTING_WTF_SCOPED_MOCK_CLOCK_H_
-
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
-#include "third_party/blink/renderer/platform/wtf/time.h"
-
-namespace WTF {
-
-// Scoped helper to override WTF time functions for testing. Creating one on the
-// stack resets mock time to the zero point for WTF::Time and WTF::TimeTicks.
-// Mock time may only flow forwards, not backwards.
-class ScopedMockClock {
-  USING_FAST_MALLOC(ScopedMockClock);
-
- public:
-  ScopedMockClock();
-  ~ScopedMockClock();
-
-  static double Now();
-
-  void Advance(TimeDelta);
-
- private:
-  static ScopedMockClock* top_;
-  ScopedMockClock* next_;
-  TimeFunction next_time_function_;
-  base::TimeTicks now_;
-};
-
-}  // namespace WTF
-
-#endif
diff --git a/third_party/blink/renderer/platform/text/bidi_resolver.h b/third_party/blink/renderer/platform/text/bidi_resolver.h
index 1ff1ddf..e2056e17 100644
--- a/third_party/blink/renderer/platform/text/bidi_resolver.h
+++ b/third_party/blink/renderer/platform/text/bidi_resolver.h
@@ -26,7 +26,7 @@
 #include "third_party/blink/renderer/platform/text/bidi_context.h"
 #include "third_party/blink/renderer/platform/text/bidi_run_list.h"
 #include "third_party/blink/renderer/platform/text/text_direction.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/platform/text/bidi_resolver_test.cc b/third_party/blink/renderer/platform/text/bidi_resolver_test.cc
index 5210704..9d6f961 100644
--- a/third_party/blink/renderer/platform/text/bidi_resolver_test.cc
+++ b/third_party/blink/renderer/platform/text/bidi_resolver_test.cc
@@ -36,7 +36,7 @@
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/blink/renderer/platform/text/bidi_test_harness.h"
 #include "third_party/blink/renderer/platform/text/text_run_iterator.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/text/bidi_run_list.h b/third_party/blink/renderer/platform/text/bidi_run_list.h
index fbbcc651..5df1a59 100644
--- a/third_party/blink/renderer/platform/text/bidi_run_list.h
+++ b/third_party/blink/renderer/platform/text/bidi_run_list.h
@@ -23,7 +23,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_TEXT_BIDI_RUN_LIST_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_TEXT_BIDI_RUN_LIST_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/text/character.h b/third_party/blink/renderer/platform/text/character.h
index 60ef74c..9604a26 100644
--- a/third_party/blink/renderer/platform/text/character.h
+++ b/third_party/blink/renderer/platform/text/character.h
@@ -36,7 +36,7 @@
 #include "third_party/blink/renderer/platform/text/character_property.h"
 #include "third_party/blink/renderer/platform/text/text_direction.h"
 #include "third_party/blink/renderer/platform/text/text_run.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/text/ascii_ctype.h"
 #include "third_party/blink/renderer/platform/wtf/text/character_names.h"
diff --git a/third_party/blink/renderer/platform/text/date_components.h b/third_party/blink/renderer/platform/text/date_components.h
index 556559a7e..6923c88 100644
--- a/third_party/blink/renderer/platform/text/date_components.h
+++ b/third_party/blink/renderer/platform/text/date_components.h
@@ -33,7 +33,7 @@
 
 #include <limits>
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
 
diff --git a/third_party/blink/renderer/platform/text/date_time_format.h b/third_party/blink/renderer/platform/text/date_time_format.h
index e15bc5a..bfff230 100644
--- a/third_party/blink/renderer/platform/text/date_time_format.h
+++ b/third_party/blink/renderer/platform/text/date_time_format.h
@@ -29,7 +29,7 @@
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/text/decode_escape_sequences.h b/third_party/blink/renderer/platform/text/decode_escape_sequences.h
index ea370de..4dbb8ec 100644
--- a/third_party/blink/renderer/platform/text/decode_escape_sequences.h
+++ b/third_party/blink/renderer/platform/text/decode_escape_sequences.h
@@ -30,7 +30,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_TEXT_DECODE_ESCAPE_SEQUENCES_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_TEXT_DECODE_ESCAPE_SEQUENCES_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/text/ascii_ctype.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
diff --git a/third_party/blink/renderer/platform/text/icu_error.h b/third_party/blink/renderer/platform/text/icu_error.h
index a57b27ec..a8eff27 100644
--- a/third_party/blink/renderer/platform/text/icu_error.h
+++ b/third_party/blink/renderer/platform/text/icu_error.h
@@ -7,7 +7,7 @@
 
 #include <unicode/utypes.h>
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/text/layout_locale.h b/third_party/blink/renderer/platform/text/layout_locale.h
index 676c2e9..756635dc 100644
--- a/third_party/blink/renderer/platform/text/layout_locale.h
+++ b/third_party/blink/renderer/platform/text/layout_locale.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/text/hyphenation.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
diff --git a/third_party/blink/renderer/platform/text/platform_locale.h b/third_party/blink/renderer/platform/text/platform_locale.h
index 0d299762..25fa9d6 100644
--- a/third_party/blink/renderer/platform/text/platform_locale.h
+++ b/third_party/blink/renderer/platform/text/platform_locale.h
@@ -32,7 +32,7 @@
 #include "third_party/blink/public/platform/web_localized_string.h"
 #include "third_party/blink/renderer/platform/language.h"
 #include "third_party/blink/renderer/platform/text/date_components.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/text/segmented_string.h b/third_party/blink/renderer/platform/text/segmented_string.h
index 9e5a55e..42d1dc6 100644
--- a/third_party/blink/renderer/platform/text/segmented_string.h
+++ b/third_party/blink/renderer/platform/text/segmented_string.h
@@ -21,7 +21,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_TEXT_SEGMENTED_STRING_H_
 
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/deque.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
 #include "third_party/blink/renderer/platform/wtf/text/text_position.h"
diff --git a/third_party/blink/renderer/platform/text/suffix_tree.h b/third_party/blink/renderer/platform/text/suffix_tree.h
index d034ef7..3473f70a 100644
--- a/third_party/blink/renderer/platform/text/suffix_tree.h
+++ b/third_party/blink/renderer/platform/text/suffix_tree.h
@@ -29,7 +29,7 @@
 #include <algorithm>
 #include <utility>
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/platform/text/tab_size.h b/third_party/blink/renderer/platform/text/tab_size.h
index d7b5b5e9..6a12f85 100644
--- a/third_party/blink/renderer/platform/text/tab_size.h
+++ b/third_party/blink/renderer/platform/text/tab_size.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_TEXT_TAB_SIZE_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_TEXT_TAB_SIZE_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/text/text_run.h b/third_party/blink/renderer/platform/text/text_run.h
index cb8d949..a1212ad 100644
--- a/third_party/blink/renderer/platform/text/text_run.h
+++ b/third_party/blink/renderer/platform/text/text_run.h
@@ -33,7 +33,7 @@
 #include "third_party/blink/renderer/platform/text/tab_size.h"
 #include "third_party/blink/renderer/platform/text/text_direction.h"
 #include "third_party/blink/renderer/platform/text/text_justify.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_view.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/skia/include/core/SkRefCnt.h"
diff --git a/third_party/blink/renderer/platform/text/text_run_iterator.h b/third_party/blink/renderer/platform/text/text_run_iterator.h
index a277cdc1..4fe8374 100644
--- a/third_party/blink/renderer/platform/text/text_run_iterator.h
+++ b/third_party/blink/renderer/platform/text/text_run_iterator.h
@@ -30,7 +30,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_TEXT_TEXT_RUN_ITERATOR_H_
 
 #include "third_party/blink/renderer/platform/text/text_run.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/text/web_entities.h b/third_party/blink/renderer/platform/text/web_entities.h
index f1a5ab47..9c7e59a 100644
--- a/third_party/blink/renderer/platform/text/web_entities.h
+++ b/third_party/blink/renderer/platform/text/web_entities.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_TEXT_WEB_ENTITIES_H_
 
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/platform/text/writing_mode_utils.h b/third_party/blink/renderer/platform/text/writing_mode_utils.h
index 5207f3a..ff21cce 100644
--- a/third_party/blink/renderer/platform/text/writing_mode_utils.h
+++ b/third_party/blink/renderer/platform/text/writing_mode_utils.h
@@ -7,7 +7,7 @@
 
 #include "third_party/blink/renderer/platform/text/text_direction.h"
 #include "third_party/blink/renderer/platform/text/writing_mode.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/text/writing_mode_utils_test.cc b/third_party/blink/renderer/platform/text/writing_mode_utils_test.cc
index 73a974f8..053ce3b 100644
--- a/third_party/blink/renderer/platform/text/writing_mode_utils_test.cc
+++ b/third_party/blink/renderer/platform/text/writing_mode_utils_test.cc
@@ -5,7 +5,7 @@
 #include "third_party/blink/renderer/platform/text/writing_mode_utils.h"
 
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/timer.h b/third_party/blink/renderer/platform/timer.h
index a58231a..428952d 100644
--- a/third_party/blink/renderer/platform/timer.h
+++ b/third_party/blink/renderer/platform/timer.h
@@ -34,7 +34,7 @@
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/sanitizers.h"
 #include "third_party/blink/renderer/platform/wtf/threading.h"
 #include "third_party/blink/renderer/platform/wtf/time.h"
diff --git a/third_party/blink/renderer/platform/transforms/affine_transform.h b/third_party/blink/renderer/platform/transforms/affine_transform.h
index 5e986ba..9add81f 100644
--- a/third_party/blink/renderer/platform/transforms/affine_transform.h
+++ b/third_party/blink/renderer/platform/transforms/affine_transform.h
@@ -30,7 +30,7 @@
 #include "third_party/blink/renderer/platform/transforms/transformation_matrix.h"
 
 #include <string.h>  // for memcpy
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/transforms/transform_operations.h b/third_party/blink/renderer/platform/transforms/transform_operations.h
index e01e36b..65e646b6 100644
--- a/third_party/blink/renderer/platform/transforms/transform_operations.h
+++ b/third_party/blink/renderer/platform/transforms/transform_operations.h
@@ -28,7 +28,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/platform/geometry/layout_size.h"
 #include "third_party/blink/renderer/platform/transforms/transform_operation.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/transforms/transformation_matrix.h b/third_party/blink/renderer/platform/transforms/transformation_matrix.h
index 88f391d4..f354a7bc 100644
--- a/third_party/blink/renderer/platform/transforms/transformation_matrix.h
+++ b/third_party/blink/renderer/platform/transforms/transformation_matrix.h
@@ -35,7 +35,7 @@
 #include "build/build_config.h"
 #include "third_party/blink/renderer/platform/geometry/float_point.h"
 #include "third_party/blink/renderer/platform/geometry/float_point_3d.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/skia/include/core/SkMatrix44.h"
 
 namespace gfx {
diff --git a/third_party/blink/renderer/platform/web_test_support.h b/third_party/blink/renderer/platform/web_test_support.h
index a3e5e5f..afc920e 100644
--- a/third_party/blink/renderer/platform/web_test_support.h
+++ b/third_party/blink/renderer/platform/web_test_support.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WEB_TEST_SUPPORT_H_
 
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/web_thread_supporting_gc.h b/third_party/blink/renderer/platform/web_thread_supporting_gc.h
index c76de01..f8fef6a 100644
--- a/third_party/blink/renderer/platform/web_thread_supporting_gc.h
+++ b/third_party/blink/renderer/platform/web_thread_supporting_gc.h
@@ -13,7 +13,7 @@
 #include "third_party/blink/renderer/platform/heap/gc_task_runner.h"
 #include "third_party/blink/renderer/platform/scheduler/public/post_cross_thread_task.h"
 #include "third_party/blink/renderer/platform/scheduler/public/thread.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/time.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/weborigin/kurl.h b/third_party/blink/renderer/platform/weborigin/kurl.h
index 818ded54..6500b29d 100644
--- a/third_party/blink/renderer/platform/weborigin/kurl.h
+++ b/third_party/blink/renderer/platform/weborigin/kurl.h
@@ -30,7 +30,7 @@
 #include <iosfwd>
 #include <memory>
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/cross_thread_copier.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/platform/weborigin/kurl_hash.h b/third_party/blink/renderer/platform/weborigin/kurl_hash.h
index 3c020af18..fde2401 100644
--- a/third_party/blink/renderer/platform/weborigin/kurl_hash.h
+++ b/third_party/blink/renderer/platform/weborigin/kurl_hash.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WEBORIGIN_KURL_HASH_H_
 
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/platform/weborigin/origin_access_entry.h b/third_party/blink/renderer/platform/weborigin/origin_access_entry.h
index 7ec83aa..5113a406 100644
--- a/third_party/blink/renderer/platform/weborigin/origin_access_entry.h
+++ b/third_party/blink/renderer/platform/weborigin/origin_access_entry.h
@@ -33,7 +33,7 @@
 
 #include "services/network/public/cpp/cors/origin_access_entry.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/weborigin/referrer.h b/third_party/blink/renderer/platform/weborigin/referrer.h
index e47ab10..98fe744 100644
--- a/third_party/blink/renderer/platform/weborigin/referrer.h
+++ b/third_party/blink/renderer/platform/weborigin/referrer.h
@@ -33,7 +33,7 @@
 
 #include "services/network/public/mojom/referrer_policy.mojom-shared.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/weborigin/scheme_registry.cc b/third_party/blink/renderer/platform/weborigin/scheme_registry.cc
index 1e7d8b1a..373f344 100644
--- a/third_party/blink/renderer/platform/weborigin/scheme_registry.cc
+++ b/third_party/blink/renderer/platform/weborigin/scheme_registry.cc
@@ -26,7 +26,7 @@
 
 #include "third_party/blink/renderer/platform/weborigin/scheme_registry.h"
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
 #include "third_party/blink/renderer/platform/wtf/thread_specific.h"
 #include "third_party/blink/renderer/platform/wtf/threading.h"
diff --git a/third_party/blink/renderer/platform/weborigin/scheme_registry.h b/third_party/blink/renderer/platform/weborigin/scheme_registry.h
index 075436f..9620bbe 100644
--- a/third_party/blink/renderer/platform/weborigin/scheme_registry.h
+++ b/third_party/blink/renderer/platform/weborigin/scheme_registry.h
@@ -28,7 +28,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WEBORIGIN_SCHEME_REGISTRY_H_
 
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
diff --git a/third_party/blink/renderer/platform/weborigin/security_origin.h b/third_party/blink/renderer/platform/weborigin/security_origin.h
index bb5d058..2a3a067 100644
--- a/third_party/blink/renderer/platform/weborigin/security_origin.h
+++ b/third_party/blink/renderer/platform/weborigin/security_origin.h
@@ -35,7 +35,7 @@
 #include "base/gtest_prod_util.h"
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/thread_safe_ref_counted.h"
 #include "url/origin.h"
diff --git a/third_party/blink/renderer/platform/weborigin/security_origin_hash.h b/third_party/blink/renderer/platform/weborigin/security_origin_hash.h
index 1a9bd66..eb71018 100644
--- a/third_party/blink/renderer/platform/weborigin/security_origin_hash.h
+++ b/third_party/blink/renderer/platform/weborigin/security_origin_hash.h
@@ -33,7 +33,7 @@
 #include "build/build_config.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/weborigin/security_origin.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/weborigin/security_policy.cc b/third_party/blink/renderer/platform/weborigin/security_policy.cc
index 4972b109..f8122bf 100644
--- a/third_party/blink/renderer/platform/weborigin/security_policy.cc
+++ b/third_party/blink/renderer/platform/weborigin/security_policy.cc
@@ -253,9 +253,9 @@
     const network::mojom::CorsOriginAccessMatchPriority priority) {
   MutexLocker lock(GetMutex());
   GetOriginAccessList().AddAllowListEntryForOrigin(
-      source_origin.ToUrlOrigin(), WebString(destination_protocol).Utf8(),
-      WebString(destination_domain).Utf8(), port, domain_match_mode,
-      port_match_mode, priority);
+      source_origin.ToUrlOrigin(), destination_protocol.Utf8(),
+      destination_domain.Utf8(), port, domain_match_mode, port_match_mode,
+      priority);
 }
 
 void SecurityPolicy::AddOriginAccessBlockListEntry(
@@ -268,9 +268,9 @@
     const network::mojom::CorsOriginAccessMatchPriority priority) {
   MutexLocker lock(GetMutex());
   GetOriginAccessList().AddBlockListEntryForOrigin(
-      source_origin.ToUrlOrigin(), WebString(destination_protocol).Utf8(),
-      WebString(destination_domain).Utf8(), port, domain_match_mode,
-      port_match_mode, priority);
+      source_origin.ToUrlOrigin(), destination_protocol.Utf8(),
+      destination_domain.Utf8(), port, domain_match_mode, port_match_mode,
+      priority);
 }
 
 void SecurityPolicy::ClearOriginAccessListForOrigin(
diff --git a/third_party/blink/renderer/platform/weborigin/security_policy.h b/third_party/blink/renderer/platform/weborigin/security_policy.h
index 56bbb4b..a6c2e0a0 100644
--- a/third_party/blink/renderer/platform/weborigin/security_policy.h
+++ b/third_party/blink/renderer/platform/weborigin/security_policy.h
@@ -33,7 +33,7 @@
 #include "services/network/public/mojom/referrer_policy.mojom-shared.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/weborigin/referrer.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/weborigin/url_security_origin_map.h b/third_party/blink/renderer/platform/weborigin/url_security_origin_map.h
index 1f3b0df..cd927d9d 100644
--- a/third_party/blink/renderer/platform/weborigin/url_security_origin_map.h
+++ b/third_party/blink/renderer/platform/weborigin/url_security_origin_map.h
@@ -32,7 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WEBORIGIN_URL_SECURITY_ORIGIN_MAP_H_
 
 #include "base/macros.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/platform/wtf/BUILD.gn b/third_party/blink/renderer/platform/wtf/BUILD.gn
index be01b657..4fd97c2 100644
--- a/third_party/blink/renderer/platform/wtf/BUILD.gn
+++ b/third_party/blink/renderer/platform/wtf/BUILD.gn
@@ -34,8 +34,8 @@
 
 jumbo_component("wtf") {
   sources = [
-    "allocator.cc",
-    "allocator.h",
+    "allocator/allocator.cc",
+    "allocator/allocator.h",
     "allocator/partition_allocator.cc",
     "allocator/partition_allocator.h",
     "allocator/partitions.cc",
diff --git a/third_party/blink/renderer/platform/wtf/allocator.cc b/third_party/blink/renderer/platform/wtf/allocator/allocator.cc
similarity index 87%
rename from third_party/blink/renderer/platform/wtf/allocator.cc
rename to third_party/blink/renderer/platform/wtf/allocator/allocator.cc
index 927e7e0..b697027 100644
--- a/third_party/blink/renderer/platform/wtf/allocator.cc
+++ b/third_party/blink/renderer/platform/wtf/allocator/allocator.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace {
 
diff --git a/third_party/blink/renderer/platform/wtf/allocator.h b/third_party/blink/renderer/platform/wtf/allocator/allocator.h
similarity index 96%
rename from third_party/blink/renderer/platform/wtf/allocator.h
rename to third_party/blink/renderer/platform/wtf/allocator/allocator.h
index 81a2f5fc4..bb5e450 100644
--- a/third_party/blink/renderer/platform/wtf/allocator.h
+++ b/third_party/blink/renderer/platform/wtf/allocator/allocator.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_ALLOCATOR_H_
-#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_ALLOCATOR_H_
+#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_ALLOCATOR_ALLOCATOR_H_
+#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_ALLOCATOR_ALLOCATOR_H_
 
 #include "third_party/blink/renderer/platform/wtf/allocator/partitions.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
@@ -14,7 +14,7 @@
 namespace internal {
 // A dummy class used in following macros.
 class __thisIsHereToForceASemicolonAfterThisMacro;
-}
+}  // namespace internal
 
 // Classes that contain references to garbage-collected objects but aren't
 // themselves garbaged allocated, have some extra macros available which
@@ -69,7 +69,7 @@
 
 #define STACK_ALLOCATED()                                       \
  public:                                                        \
-  using IsStackAllocatedTypeMarker[[maybe_unused]] = int;       \
+  using IsStackAllocatedTypeMarker [[maybe_unused]] = int;      \
                                                                 \
  private:                                                       \
   ANNOTATE_STACK_ALLOCATED void* operator new(size_t) = delete; \
diff --git a/third_party/blink/renderer/platform/wtf/allocator/partition_allocator.h b/third_party/blink/renderer/platform/wtf/allocator/partition_allocator.h
index 8be065f..b53f3a2f 100644
--- a/third_party/blink/renderer/platform/wtf/allocator/partition_allocator.h
+++ b/third_party/blink/renderer/platform/wtf/allocator/partition_allocator.h
@@ -11,7 +11,7 @@
 
 #include <string.h>
 #include "base/allocator/partition_allocator/partition_alloc.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/type_traits.h"
 #include "third_party/blink/renderer/platform/wtf/wtf_export.h"
diff --git a/third_party/blink/renderer/platform/wtf/bloom_filter.h b/third_party/blink/renderer/platform/wtf/bloom_filter.h
index 0bf56655..1a839a2 100644
--- a/third_party/blink/renderer/platform/wtf/bloom_filter.h
+++ b/third_party/blink/renderer/platform/wtf/bloom_filter.h
@@ -26,7 +26,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_BLOOM_FILTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_BLOOM_FILTER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 
 namespace WTF {
diff --git a/third_party/blink/renderer/platform/wtf/conditional_destructor.h b/third_party/blink/renderer/platform/wtf/conditional_destructor.h
index 690e687..57748e8 100644
--- a/third_party/blink/renderer/platform/wtf/conditional_destructor.h
+++ b/third_party/blink/renderer/platform/wtf/conditional_destructor.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_CONDITIONAL_DESTRUCTOR_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_CONDITIONAL_DESTRUCTOR_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace WTF {
 
diff --git a/third_party/blink/renderer/platform/wtf/construct_traits.h b/third_party/blink/renderer/platform/wtf/construct_traits.h
index c6a4fdc..79f4101 100644
--- a/third_party/blink/renderer/platform/wtf/construct_traits.h
+++ b/third_party/blink/renderer/platform/wtf/construct_traits.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_CONSTRUCT_TRAITS_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_CONSTRUCT_TRAITS_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/type_traits.h"
 #include "third_party/blink/renderer/platform/wtf/vector_traits.h"
 
diff --git a/third_party/blink/renderer/platform/wtf/decimal.cc b/third_party/blink/renderer/platform/wtf/decimal.cc
index a349b07..abc86ec 100644
--- a/third_party/blink/renderer/platform/wtf/decimal.cc
+++ b/third_party/blink/renderer/platform/wtf/decimal.cc
@@ -34,7 +34,7 @@
 #include <cfloat>
 
 #include "base/macros.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/math_extras.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
 
diff --git a/third_party/blink/renderer/platform/wtf/decimal.h b/third_party/blink/renderer/platform/wtf/decimal.h
index 53e58074..1ba7091a 100644
--- a/third_party/blink/renderer/platform/wtf/decimal.h
+++ b/third_party/blink/renderer/platform/wtf/decimal.h
@@ -33,7 +33,7 @@
 
 #include <cstdint>
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/platform/wtf/decimal_test.cc b/third_party/blink/renderer/platform/wtf/decimal_test.cc
index ae73eded..62a3468 100644
--- a/third_party/blink/renderer/platform/wtf/decimal_test.cc
+++ b/third_party/blink/renderer/platform/wtf/decimal_test.cc
@@ -33,7 +33,7 @@
 #include <cfloat>
 
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/math_extras.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/wtf/deque.h b/third_party/blink/renderer/platform/wtf/deque.h
index 5ab6ec0..80c92ec 100644
--- a/third_party/blink/renderer/platform/wtf/deque.h
+++ b/third_party/blink/renderer/platform/wtf/deque.h
@@ -36,7 +36,7 @@
 #include <iterator>
 
 #include "base/macros.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/construct_traits.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 
diff --git a/third_party/blink/renderer/platform/wtf/doubly_linked_list.h b/third_party/blink/renderer/platform/wtf/doubly_linked_list.h
index 9a32a7c..5198dea 100644
--- a/third_party/blink/renderer/platform/wtf/doubly_linked_list.h
+++ b/third_party/blink/renderer/platform/wtf/doubly_linked_list.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_DOUBLY_LINKED_LIST_H_
 
 #include "base/macros.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/wtf_size_t.h"
 
 namespace WTF {
diff --git a/third_party/blink/renderer/platform/wtf/dtoa/bignum.h b/third_party/blink/renderer/platform/wtf/dtoa/bignum.h
index f9df22a..20caeeb 100644
--- a/third_party/blink/renderer/platform/wtf/dtoa/bignum.h
+++ b/third_party/blink/renderer/platform/wtf/dtoa/bignum.h
@@ -28,7 +28,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_DTOA_BIGNUM_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_DTOA_BIGNUM_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/dtoa/utils.h"
 
 namespace WTF {
diff --git a/third_party/blink/renderer/platform/wtf/dtoa/cached-powers.h b/third_party/blink/renderer/platform/wtf/dtoa/cached-powers.h
index 080e2fa41..d346aea 100644
--- a/third_party/blink/renderer/platform/wtf/dtoa/cached-powers.h
+++ b/third_party/blink/renderer/platform/wtf/dtoa/cached-powers.h
@@ -28,7 +28,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_DTOA_CACHED_POWERS_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_DTOA_CACHED_POWERS_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/dtoa/diy-fp.h"
 
 namespace WTF {
diff --git a/third_party/blink/renderer/platform/wtf/dtoa/diy-fp.h b/third_party/blink/renderer/platform/wtf/dtoa/diy-fp.h
index 701b8405..ce5a189 100644
--- a/third_party/blink/renderer/platform/wtf/dtoa/diy-fp.h
+++ b/third_party/blink/renderer/platform/wtf/dtoa/diy-fp.h
@@ -28,7 +28,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_DTOA_DIY_FP_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_DTOA_DIY_FP_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/dtoa/utils.h"
 
 namespace WTF {
diff --git a/third_party/blink/renderer/platform/wtf/dtoa/double-conversion.h b/third_party/blink/renderer/platform/wtf/dtoa/double-conversion.h
index cf0c6f3..fe935ce 100644
--- a/third_party/blink/renderer/platform/wtf/dtoa/double-conversion.h
+++ b/third_party/blink/renderer/platform/wtf/dtoa/double-conversion.h
@@ -28,7 +28,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_DTOA_DOUBLE_CONVERSION_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_DTOA_DOUBLE_CONVERSION_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/dtoa/utils.h"
 
 namespace WTF {
diff --git a/third_party/blink/renderer/platform/wtf/dtoa/utils.h b/third_party/blink/renderer/platform/wtf/dtoa/utils.h
index b964278..e0e16ff 100644
--- a/third_party/blink/renderer/platform/wtf/dtoa/utils.h
+++ b/third_party/blink/renderer/platform/wtf/dtoa/utils.h
@@ -29,7 +29,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_DTOA_UTILS_H_
 
 #include <string.h>
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 
 #define UNIMPLEMENTED NOTREACHED
diff --git a/third_party/blink/renderer/platform/wtf/functional.h b/third_party/blink/renderer/platform/wtf/functional.h
index ba42adf..da8284167 100644
--- a/third_party/blink/renderer/platform/wtf/functional.h
+++ b/third_party/blink/renderer/platform/wtf/functional.h
@@ -31,7 +31,7 @@
 #include "base/callback.h"
 #include "base/memory/scoped_refptr.h"
 #include "base/threading/thread_checker.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/thread_safe_ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/type_traits.h"
diff --git a/third_party/blink/renderer/platform/wtf/functional_test.cc b/third_party/blink/renderer/platform/wtf/functional_test.cc
index b49458b..96b1902 100644
--- a/third_party/blink/renderer/platform/wtf/functional_test.cc
+++ b/third_party/blink/renderer/platform/wtf/functional_test.cc
@@ -33,7 +33,7 @@
 #include "base/test/gtest_util.h"
 #include "base/threading/thread.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/leak_annotations.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/wtf_test_helper.h"
diff --git a/third_party/blink/renderer/platform/wtf/hash_iterators.h b/third_party/blink/renderer/platform/wtf/hash_iterators.h
index 2d1b012..f8e66e6 100644
--- a/third_party/blink/renderer/platform/wtf/hash_iterators.h
+++ b/third_party/blink/renderer/platform/wtf/hash_iterators.h
@@ -26,7 +26,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_HASH_ITERATORS_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_HASH_ITERATORS_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace WTF {
 
diff --git a/third_party/blink/renderer/platform/wtf/hash_map_test.cc b/third_party/blink/renderer/platform/wtf/hash_map_test.cc
index 2cdbcc455c..53fb5db 100644
--- a/third_party/blink/renderer/platform/wtf/hash_map_test.cc
+++ b/third_party/blink/renderer/platform/wtf/hash_map_test.cc
@@ -30,7 +30,7 @@
 #include "base/memory/ptr_util.h"
 #include "base/memory/scoped_refptr.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
 #include "third_party/blink/renderer/platform/wtf/wtf_test_helper.h"
diff --git a/third_party/blink/renderer/platform/wtf/hash_table.h b/third_party/blink/renderer/platform/wtf/hash_table.h
index f99180d..84e8a53 100644
--- a/third_party/blink/renderer/platform/wtf/hash_table.h
+++ b/third_party/blink/renderer/platform/wtf/hash_table.h
@@ -26,7 +26,7 @@
 #include <memory>
 
 #include "base/numerics/checked_math.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/partition_allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/construct_traits.h"
diff --git a/third_party/blink/renderer/platform/wtf/hash_traits.h b/third_party/blink/renderer/platform/wtf/hash_traits.h
index 59ae473..0c75e386 100644
--- a/third_party/blink/renderer/platform/wtf/hash_traits.h
+++ b/third_party/blink/renderer/platform/wtf/hash_traits.h
@@ -27,7 +27,7 @@
 #include <memory>
 #include <type_traits>
 #include <utility>
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/hash_functions.h"
 #include "third_party/blink/renderer/platform/wtf/hash_table_deleted_value_type.h"
diff --git a/third_party/blink/renderer/platform/wtf/math_extras.h b/third_party/blink/renderer/platform/wtf/math_extras.h
index 724f607f..4069b74 100644
--- a/third_party/blink/renderer/platform/wtf/math_extras.h
+++ b/third_party/blink/renderer/platform/wtf/math_extras.h
@@ -31,7 +31,7 @@
 #include <limits>
 
 #include "build/build_config.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 
 #if defined(COMPILER_MSVC)
diff --git a/third_party/blink/renderer/platform/wtf/pod_arena.h b/third_party/blink/renderer/platform/wtf/pod_arena.h
index 63b4653..1d6f06a 100644
--- a/third_party/blink/renderer/platform/wtf/pod_arena.h
+++ b/third_party/blink/renderer/platform/wtf/pod_arena.h
@@ -31,7 +31,7 @@
 #include <utility>
 
 #include "base/macros.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/partitions.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
diff --git a/third_party/blink/renderer/platform/wtf/pod_free_list_arena.h b/third_party/blink/renderer/platform/wtf/pod_free_list_arena.h
index b1e5b225..8702384 100644
--- a/third_party/blink/renderer/platform/wtf/pod_free_list_arena.h
+++ b/third_party/blink/renderer/platform/wtf/pod_free_list_arena.h
@@ -26,7 +26,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_POD_FREE_LIST_ARENA_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_POD_FREE_LIST_ARENA_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/pod_arena.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 
diff --git a/third_party/blink/renderer/platform/wtf/pod_interval.h b/third_party/blink/renderer/platform/wtf/pod_interval.h
index b4e2585..93a5a34 100644
--- a/third_party/blink/renderer/platform/wtf/pod_interval.h
+++ b/third_party/blink/renderer/platform/wtf/pod_interval.h
@@ -30,7 +30,7 @@
 #include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
 #endif
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace WTF {
 
diff --git a/third_party/blink/renderer/platform/wtf/pod_interval_tree_test.cc b/third_party/blink/renderer/platform/wtf/pod_interval_tree_test.cc
index 71423e3..ad4ffa6 100644
--- a/third_party/blink/renderer/platform/wtf/pod_interval_tree_test.cc
+++ b/third_party/blink/renderer/platform/wtf/pod_interval_tree_test.cc
@@ -28,7 +28,7 @@
 #include "third_party/blink/renderer/platform/wtf/pod_interval_tree.h"
 
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/pod_tree_test_helpers.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/platform/wtf/pod_red_black_tree.h b/third_party/blink/renderer/platform/wtf/pod_red_black_tree.h
index b35c2e1..2ba83d3 100644
--- a/third_party/blink/renderer/platform/wtf/pod_red_black_tree.h
+++ b/third_party/blink/renderer/platform/wtf/pod_red_black_tree.h
@@ -74,7 +74,7 @@
 
 #include "base/macros.h"
 #include "base/memory/scoped_refptr.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/pod_free_list_arena.h"
 #ifndef NDEBUG
diff --git a/third_party/blink/renderer/platform/wtf/ref_counted.h b/third_party/blink/renderer/platform/wtf/ref_counted.h
index 86845707..3db120d 100644
--- a/third_party/blink/renderer/platform/wtf/ref_counted.h
+++ b/third_party/blink/renderer/platform/wtf/ref_counted.h
@@ -22,7 +22,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_REF_COUNTED_H_
 
 #include "base/memory/ref_counted.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace WTF {
 
diff --git a/third_party/blink/renderer/platform/wtf/scoped_logger.h b/third_party/blink/renderer/platform/wtf/scoped_logger.h
index ee1bb201..2746f9b 100644
--- a/third_party/blink/renderer/platform/wtf/scoped_logger.h
+++ b/third_party/blink/renderer/platform/wtf/scoped_logger.h
@@ -8,7 +8,7 @@
 #include "base/gtest_prod_util.h"
 #include "base/logging.h"
 #include "base/macros.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/wtf_export.h"
 
 namespace WTF {
diff --git a/third_party/blink/renderer/platform/wtf/text/atomic_string.h b/third_party/blink/renderer/platform/wtf/text/atomic_string.h
index 3c2f1e5..7590460 100644
--- a/third_party/blink/renderer/platform/wtf/text/atomic_string.h
+++ b/third_party/blink/renderer/platform/wtf/text/atomic_string.h
@@ -25,7 +25,7 @@
 #include <iosfwd>
 
 #include "build/build_config.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_table_deleted_value_type.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/text/integer_to_string_conversion.h"
diff --git a/third_party/blink/renderer/platform/wtf/text/atomic_string_table.h b/third_party/blink/renderer/platform/wtf/text/atomic_string_table.h
index af5effd0..33dce8b 100644
--- a/third_party/blink/renderer/platform/wtf/text/atomic_string_table.h
+++ b/third_party/blink/renderer/platform/wtf/text/atomic_string_table.h
@@ -6,7 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TEXT_ATOMIC_STRING_TABLE_H_
 
 #include "base/macros.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_impl.h"
diff --git a/third_party/blink/renderer/platform/wtf/text/integer_to_string_conversion.h b/third_party/blink/renderer/platform/wtf/text/integer_to_string_conversion.h
index 51778db..a3be2e4 100644
--- a/third_party/blink/renderer/platform/wtf/text/integer_to_string_conversion.h
+++ b/third_party/blink/renderer/platform/wtf/text/integer_to_string_conversion.h
@@ -27,7 +27,7 @@
 
 #include "base/numerics/safe_conversions.h"
 #include "base/stl_util.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
 #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
 
diff --git a/third_party/blink/renderer/platform/wtf/text/line_ending.cc b/third_party/blink/renderer/platform/wtf/text/line_ending.cc
index 5a8784a..9b26e5d 100644
--- a/third_party/blink/renderer/platform/wtf/text/line_ending.cc
+++ b/third_party/blink/renderer/platform/wtf/text/line_ending.cc
@@ -32,7 +32,7 @@
 #include "third_party/blink/renderer/platform/wtf/text/line_ending.h"
 
 #include "build/build_config.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_buffer.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/platform/wtf/text/number_parsing_options.h b/third_party/blink/renderer/platform/wtf/text/number_parsing_options.h
index c03f2cb..4b5ea50a6 100644
--- a/third_party/blink/renderer/platform/wtf/text/number_parsing_options.h
+++ b/third_party/blink/renderer/platform/wtf/text/number_parsing_options.h
@@ -7,7 +7,7 @@
 
 #include "base/logging.h"
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace WTF {
 
diff --git a/third_party/blink/renderer/platform/wtf/text/string_buffer.h b/third_party/blink/renderer/platform/wtf/text/string_buffer.h
index 64caaa7..6476bc21 100644
--- a/third_party/blink/renderer/platform/wtf/text/string_buffer.h
+++ b/third_party/blink/renderer/platform/wtf/text/string_buffer.h
@@ -31,7 +31,7 @@
 
 #include "base/containers/span.h"
 #include "base/macros.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_impl.h"
 #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
diff --git a/third_party/blink/renderer/platform/wtf/text/string_concatenate.h b/third_party/blink/renderer/platform/wtf/text/string_concatenate.h
index db24c11..0ccb58a 100644
--- a/third_party/blink/renderer/platform/wtf/text/string_concatenate.h
+++ b/third_party/blink/renderer/platform/wtf/text/string_concatenate.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TEXT_STRING_CONCATENATE_H_
 
 #include <string.h>
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 #ifndef WTFString_h
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
diff --git a/third_party/blink/renderer/platform/wtf/text/string_hash.h b/third_party/blink/renderer/platform/wtf/text/string_hash.h
index 6311f975..b4c6185 100644
--- a/third_party/blink/renderer/platform/wtf/text/string_hash.h
+++ b/third_party/blink/renderer/platform/wtf/text/string_hash.h
@@ -22,7 +22,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TEXT_STRING_HASH_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TEXT_STRING_HASH_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_traits.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_hasher.h"
diff --git a/third_party/blink/renderer/platform/wtf/text/string_hasher.h b/third_party/blink/renderer/platform/wtf/text/string_hasher.h
index 603b6bd..492cb7b 100644
--- a/third_party/blink/renderer/platform/wtf/text/string_hasher.h
+++ b/third_party/blink/renderer/platform/wtf/text/string_hasher.h
@@ -22,7 +22,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TEXT_STRING_HASHER_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TEXT_STRING_HASHER_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
 
 namespace WTF {
diff --git a/third_party/blink/renderer/platform/wtf/text/string_impl.h b/third_party/blink/renderer/platform/wtf/text/string_impl.h
index 07b8de58..0737a17a 100644
--- a/third_party/blink/renderer/platform/wtf/text/string_impl.h
+++ b/third_party/blink/renderer/platform/wtf/text/string_impl.h
@@ -32,7 +32,7 @@
 #include "base/memory/ref_counted.h"
 #include "base/numerics/checked_math.h"
 #include "build/build_config.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
 #include "third_party/blink/renderer/platform/wtf/text/ascii_ctype.h"
diff --git a/third_party/blink/renderer/platform/wtf/text/string_operators.h b/third_party/blink/renderer/platform/wtf/text/string_operators.h
index d4447d3..2c32c6bf 100644
--- a/third_party/blink/renderer/platform/wtf/text/string_operators.h
+++ b/third_party/blink/renderer/platform/wtf/text/string_operators.h
@@ -23,7 +23,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TEXT_STRING_OPERATORS_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TEXT_STRING_OPERATORS_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_concatenate.h"
 
 namespace WTF {
diff --git a/third_party/blink/renderer/platform/wtf/text/string_statics.h b/third_party/blink/renderer/platform/wtf/text/string_statics.h
index 0fcd19f..51e6fa9 100644
--- a/third_party/blink/renderer/platform/wtf/text/string_statics.h
+++ b/third_party/blink/renderer/platform/wtf/text/string_statics.h
@@ -31,7 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TEXT_STRING_STATICS_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TEXT_STRING_STATICS_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/wtf_export.h"
 
 namespace WTF {
diff --git a/third_party/blink/renderer/platform/wtf/text/string_view.h b/third_party/blink/renderer/platform/wtf/text/string_view.h
index d594a261..3d92473 100644
--- a/third_party/blink/renderer/platform/wtf/text/string_view.h
+++ b/third_party/blink/renderer/platform/wtf/text/string_view.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TEXT_STRING_VIEW_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TEXT_STRING_VIEW_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/get_ptr.h"
 #if DCHECK_IS_ON()
 #include "base/memory/scoped_refptr.h"
diff --git a/third_party/blink/renderer/platform/wtf/text/text_encoding.h b/third_party/blink/renderer/platform/wtf/text/text_encoding.h
index 9b87be2..a65d318 100644
--- a/third_party/blink/renderer/platform/wtf/text/text_encoding.h
+++ b/third_party/blink/renderer/platform/wtf/text/text_encoding.h
@@ -26,7 +26,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TEXT_TEXT_ENCODING_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TEXT_TEXT_ENCODING_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/text/text_codec.h"
 #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
diff --git a/third_party/blink/renderer/platform/wtf/text/text_position.h b/third_party/blink/renderer/platform/wtf/text/text_position.h
index 49bfd25..b4720f0 100644
--- a/third_party/blink/renderer/platform/wtf/text/text_position.h
+++ b/third_party/blink/renderer/platform/wtf/text/text_position.h
@@ -27,7 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TEXT_TEXT_POSITION_H_
 
 #include <memory>
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/platform/wtf/text/wtf_string.h b/third_party/blink/renderer/platform/wtf/text/wtf_string.h
index f90ecfca..ebdb89e 100644
--- a/third_party/blink/renderer/platform/wtf/text/wtf_string.h
+++ b/third_party/blink/renderer/platform/wtf/text/wtf_string.h
@@ -29,7 +29,7 @@
 #include <iosfwd>
 #include "base/containers/span.h"
 #include "build/build_config.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/integer_to_string_conversion.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_impl.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_view.h"
diff --git a/third_party/blink/renderer/platform/wtf/thread_restriction_verifier.h b/third_party/blink/renderer/platform/wtf/thread_restriction_verifier.h
index f6bd1cfc..b0d7dc0e 100644
--- a/third_party/blink/renderer/platform/wtf/thread_restriction_verifier.h
+++ b/third_party/blink/renderer/platform/wtf/thread_restriction_verifier.h
@@ -35,7 +35,7 @@
 
 #if DCHECK_IS_ON()
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/threading.h"
 
 namespace WTF {
diff --git a/third_party/blink/renderer/platform/wtf/thread_safe_ref_counted.h b/third_party/blink/renderer/platform/wtf/thread_safe_ref_counted.h
index 0880e051..1f321f1 100644
--- a/third_party/blink/renderer/platform/wtf/thread_safe_ref_counted.h
+++ b/third_party/blink/renderer/platform/wtf/thread_safe_ref_counted.h
@@ -31,7 +31,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_THREAD_SAFE_REF_COUNTED_H_
 
 #include "base/memory/ref_counted.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace WTF {
 
diff --git a/third_party/blink/renderer/platform/wtf/thread_specific.h b/third_party/blink/renderer/platform/wtf/thread_specific.h
index 1b8ec507..d691242 100644
--- a/third_party/blink/renderer/platform/wtf/thread_specific.h
+++ b/third_party/blink/renderer/platform/wtf/thread_specific.h
@@ -34,7 +34,7 @@
 #include "base/macros.h"
 #include "base/threading/thread_local_storage.h"
 #include "build/build_config.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/partition_allocator.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/partitions.h"
 #include "third_party/blink/renderer/platform/wtf/stack_util.h"
diff --git a/third_party/blink/renderer/platform/wtf/threading_primitives.h b/third_party/blink/renderer/platform/wtf/threading_primitives.h
index 819ba7a..7e19ccb 100644
--- a/third_party/blink/renderer/platform/wtf/threading_primitives.h
+++ b/third_party/blink/renderer/platform/wtf/threading_primitives.h
@@ -34,7 +34,7 @@
 #include "base/macros.h"
 #include "base/thread_annotations.h"
 #include "build/build_config.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/wtf_export.h"
 
diff --git a/third_party/blink/renderer/platform/wtf/tree_node_test.cc b/third_party/blink/renderer/platform/wtf/tree_node_test.cc
index 3245082..2508472a7 100644
--- a/third_party/blink/renderer/platform/wtf/tree_node_test.cc
+++ b/third_party/blink/renderer/platform/wtf/tree_node_test.cc
@@ -27,7 +27,7 @@
 
 #include "base/memory/scoped_refptr.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 
 namespace WTF {
diff --git a/third_party/blink/renderer/platform/wtf/type_traits_test.cc b/third_party/blink/renderer/platform/wtf/type_traits_test.cc
index 1b6b6d47..1b45d55 100644
--- a/third_party/blink/renderer/platform/wtf/type_traits_test.cc
+++ b/third_party/blink/renderer/platform/wtf/type_traits_test.cc
@@ -24,7 +24,7 @@
 #include "base/macros.h"
 #include "build/build_config.h"
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 // No gtest tests; only static_assert checks.
 
diff --git a/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer.h b/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer.h
index ec028bc..ce5a04b3 100644
--- a/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer.h
+++ b/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer.h
@@ -28,7 +28,7 @@
 
 #include "base/allocator/partition_allocator/oom.h"
 #include "base/memory/scoped_refptr.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
diff --git a/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_contents.h b/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_contents.h
index 98bda66..601046e 100644
--- a/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_contents.h
+++ b/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_contents.h
@@ -30,7 +30,7 @@
 #include "base/allocator/partition_allocator/page_allocator.h"
 #include "base/macros.h"
 #include "base/memory/scoped_refptr.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
 #include "third_party/blink/renderer/platform/wtf/thread_safe_ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/wtf.h"
diff --git a/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_view.h b/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_view.h
index 0029479..aca42a70 100644
--- a/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_view.h
+++ b/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_view.h
@@ -28,7 +28,7 @@
 
 #include <limits.h>
 #include "base/memory/scoped_refptr.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
 #include "third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer.h"
 #include "third_party/blink/renderer/platform/wtf/wtf_export.h"
diff --git a/third_party/blink/renderer/platform/wtf/typed_arrays/array_piece.h b/third_party/blink/renderer/platform/wtf/typed_arrays/array_piece.h
index 397aa10..d8ffa222 100644
--- a/third_party/blink/renderer/platform/wtf/typed_arrays/array_piece.h
+++ b/third_party/blink/renderer/platform/wtf/typed_arrays/array_piece.h
@@ -5,7 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TYPED_ARRAYS_ARRAY_PIECE_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TYPED_ARRAYS_ARRAY_PIECE_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 #include "third_party/blink/renderer/platform/wtf/wtf_export.h"
 
diff --git a/third_party/blink/renderer/platform/wtf/vector_traits.h b/third_party/blink/renderer/platform/wtf/vector_traits.h
index af6534fb..1de690e2 100644
--- a/third_party/blink/renderer/platform/wtf/vector_traits.h
+++ b/third_party/blink/renderer/platform/wtf/vector_traits.h
@@ -25,7 +25,7 @@
 #include <type_traits>
 #include <utility>
 #include "base/memory/scoped_refptr.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/type_traits.h"
 
 namespace WTF {
diff --git a/third_party/blink/renderer/platform/wtf/wtf_test_helper.h b/third_party/blink/renderer/platform/wtf/wtf_test_helper.h
index f94917cb..8f31365 100644
--- a/third_party/blink/renderer/platform/wtf/wtf_test_helper.h
+++ b/third_party/blink/renderer/platform/wtf/wtf_test_helper.h
@@ -8,7 +8,7 @@
 #include "base/macros.h"
 #include "base/memory/scoped_refptr.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/blink/renderer/platform/wtf/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_functions.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
 #include "third_party/blink/renderer/platform/wtf/ref_counted.h"
diff --git a/third_party/blink/tools/blinkpy/w3c/test_importer.py b/third_party/blink/tools/blinkpy/w3c/test_importer.py
index f7126e3..ef9bd83 100644
--- a/third_party/blink/tools/blinkpy/w3c/test_importer.py
+++ b/third_party/blink/tools/blinkpy/w3c/test_importer.py
@@ -393,19 +393,11 @@
         first ensures if upstream deletes some files, we also delete them.
         """
         _log.info('Cleaning out tests from %s.', self.dest_path)
-
-        # TODO(crbug.com/927187): Temporarily prevent the external/wpt/webdriver folder from deletion.
-        # Will delete once starting the two-way sync phase on webdriver/tests.
-        webdriver_dir_path = self.fs.join(self.dest_path, 'webdriver')
-
         should_remove = lambda fs, dirname, basename: (
             is_file_exportable(fs.relpath(fs.join(dirname, basename), self.finder.chromium_base())))
         files_to_delete = self.fs.files_under(self.dest_path, file_filter=should_remove)
         for subpath in files_to_delete:
-            remove_path = self.finder.path_from_web_tests('external', subpath)
-            if remove_path.startswith(webdriver_dir_path):
-                continue
-            self.remove(remove_path)
+            self.remove(self.finder.path_from_web_tests('external', subpath))
 
     def _commit_changes(self, commit_message):
         _log.info('Committing changes.')
diff --git a/third_party/blink/tools/blinkpy/w3c/test_importer_unittest.py b/third_party/blink/tools/blinkpy/w3c/test_importer_unittest.py
index 976b5177b..e3d78bd 100644
--- a/third_party/blink/tools/blinkpy/w3c/test_importer_unittest.py
+++ b/third_party/blink/tools/blinkpy/w3c/test_importer_unittest.py
@@ -605,10 +605,6 @@
         host.filesystem.write_text_file(dest_path + '/foo-test-expected.txt', '')
         host.filesystem.write_text_file(dest_path + '/OWNERS', '')
         host.filesystem.write_text_file(dest_path + '/bar/baz/OWNERS', '')
-        # TODO(crbug.com/927187): Delete it once webdrive/tests manual import is done.
-        host.filesystem.write_text_file(dest_path + '/webdriver/tests/A.txt', '')
-        host.filesystem.write_text_file(dest_path + '/webdriver/tests/test/assert.py', '')
-        host.filesystem.write_text_file(dest_path + '/webdriver/META.yml', '')
         # When the destination path is cleared, OWNERS files and baselines
         # are kept.
         importer._clear_out_dest_path()
@@ -616,7 +612,3 @@
         self.assertTrue(host.filesystem.exists(dest_path + '/foo-test-expected.txt'))
         self.assertTrue(host.filesystem.exists(dest_path + '/OWNERS'))
         self.assertTrue(host.filesystem.exists(dest_path + '/bar/baz/OWNERS'))
-
-        self.assertTrue(host.filesystem.exists(dest_path + '/webdriver/tests/A.txt'))
-        self.assertTrue(host.filesystem.exists(dest_path + '/webdriver/tests/test/assert.py'))
-        self.assertTrue(host.filesystem.exists(dest_path + '/webdriver/META.yml'))
diff --git a/third_party/blink/web_tests/FlagExpectations/enable-blink-features=LayoutNG b/third_party/blink/web_tests/FlagExpectations/enable-blink-features=LayoutNG
index 21bc42b..9c9969d 100644
--- a/third_party/blink/web_tests/FlagExpectations/enable-blink-features=LayoutNG
+++ b/third_party/blink/web_tests/FlagExpectations/enable-blink-features=LayoutNG
@@ -292,8 +292,9 @@
 crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/shapes1/shape-outside-padding-box-border-radius-002.html [ Pass ]
 crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/sizing/hori-block-size-small-or-larger-than-container-with-min-or-max-content-1.html [ Pass ]
 crbug.com/591099 external/wpt/dom/ranges/Range-compareBoundaryPoints.html [ Pass Timeout ]
+crbug.com/591099 external/wpt/dom/ranges/Range-set.html [ Timeout ]
 crbug.com/591099 external/wpt/fetch/api/request/request-keepalive-quota.html?include=slow-2 [ Pass ]
-crbug.com/591099 external/wpt/geolocation-API/PositionOptions.https.html [ Failure Pass ]
+crbug.com/591099 external/wpt/geolocation-API/PositionOptions.https.html [ Failure ]
 crbug.com/591099 external/wpt/html/user-activation/activation-transfer-without-click.tentative.html [ Pass ]
 crbug.com/591099 external/wpt/pointerevents/pointerevent_touch-action-pan-x-css_touch.html [ Pass ]
 crbug.com/591099 external/wpt/pointerevents/pointerevent_touch-action-pan-y-css_touch.html [ Pass ]
@@ -323,7 +324,7 @@
 crbug.com/591099 fast/multicol/border-radius-clipped-layer.html [ Pass ]
 crbug.com/591099 fast/overflow/overflow-height-float-not-removed-crash3.html [ Failure ]
 crbug.com/591099 fast/peerconnection/RTCPeerConnection-many.html [ Pass ]
-crbug.com/591099 fast/replaced/replaced-breaking.html [ Failure ]
+crbug.com/591099 fast/replaced/replaced-breaking.html [ Failure Pass ]
 crbug.com/899902 fast/text/ellipsis-with-self-painting-layer.html [ Pass ]
 crbug.com/591099 fast/text/emoji-vertical-origin-visual.html [ Failure ]
 crbug.com/591099 fast/text/font-format-support-color-cff2-vertical.html [ Failure ]
@@ -369,7 +370,7 @@
 crbug.com/591099 virtual/exotic-color-space/ [ Skip ]
 crbug.com/591099 virtual/fractional_scrolling_threaded/fast/scrolling/unscrollable-layer-subpixel-size-with-negative-overflow.html [ Failure Pass ]
 crbug.com/591099 virtual/gpu-rasterization/images/color-profile-image-filter-all.html [ Pass ]
-crbug.com/591099 virtual/gpu/fast/canvas/OffscreenCanvas-copyImage.html [ Failure Pass ]
+crbug.com/591099 virtual/gpu/fast/canvas/OffscreenCanvas-copyImage.html [ Pass ]
 crbug.com/591099 virtual/gpu/fast/canvas/OffscreenCanvas-filter.html [ Pass ]
 crbug.com/591099 virtual/gpu/fast/canvas/canvas-arc-circumference.html [ Failure ]
 crbug.com/591099 virtual/gpu/fast/canvas/canvas-blend-image.html [ Pass ]
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index bdef700c..f6073276 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -1933,6 +1933,8 @@
 crbug.com/626703 external/wpt/css/css-text/line-breaking/line-breaking-ic-003.html [ Failure ]
 crbug.com/921318 external/wpt/css/css-text/tab-size/tab-size-spacing-001.html [ Failure ]
 crbug.com/626703 [ Win10 ] external/wpt/css/css-text/text-align/text-align-justify-004.html [ Failure ]
+crbug.com/974139 external/wpt/css/css-text/text-indent/text-indent-percentage-004.html [ Failure ]
+crbug.com/970200 external/wpt/css/css-text/text-indent/text-indent-tab-positions-001.html [ Failure ]
 crbug.com/626703 external/wpt/css/css-text/text-transform/text-transform-capitalize-026.html [ Failure ]
 crbug.com/626703 external/wpt/css/css-text/text-transform/text-transform-capitalize-028.html [ Failure ]
 crbug.com/626703 external/wpt/css/css-text/text-transform/text-transform-tailoring-001.html [ Failure ]
@@ -2872,9 +2874,6 @@
 crbug.com/626703 [ Linux ] external/wpt/css/css-sizing/slice-intrinsic-size.html [ Failure ]
 crbug.com/626703 [ Mac ] external/wpt/css/css-sizing/slice-intrinsic-size.html [ Failure ]
 crbug.com/626703 [ Win ] external/wpt/css/css-sizing/slice-intrinsic-size.html [ Failure ]
-crbug.com/626703 [ Linux ] external/wpt/css/css-text/text-indent/text-indent-tab-positions-001.html [ Failure ]
-crbug.com/626703 [ Mac ] external/wpt/css/css-text/text-indent/text-indent-tab-positions-001.html [ Failure ]
-crbug.com/626703 [ Win ] external/wpt/css/css-text/text-indent/text-indent-tab-positions-001.html [ Failure ]
 crbug.com/626703 [ Linux ] external/wpt/css/css-sizing/clone-intrinsic-size.html [ Failure ]
 crbug.com/626703 [ Mac ] external/wpt/css/css-sizing/clone-intrinsic-size.html [ Failure ]
 crbug.com/626703 [ Win ] external/wpt/css/css-sizing/clone-intrinsic-size.html [ Failure ]
@@ -3162,7 +3161,6 @@
 crbug.com/626703 [ Win10 ] external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/sizing/hori-block-size-small-or-larger-than-container-with-min-or-max-content-2a.html [ Failure ]
 crbug.com/626703 [ Win7 ] external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/sizing/hori-block-size-small-or-larger-than-container-with-min-or-max-content-2a.html [ Failure Crash ]
 crbug.com/626703 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/sizing/block-size-with-min-or-max-content-1b.html [ Failure ]
-crbug.com/626703 external/wpt/css/css-text/text-indent/text-indent-percentage-004.html [ Failure ]
 crbug.com/626703 external/wpt/css/filter-effects/filter-subregion-01.html [ Failure ]
 crbug.com/626703 [ Mac10.10 ] external/wpt/css/css-layout-api/auto-block-size-absolute.https.html [ Failure ]
 crbug.com/626703 external/wpt/infrastructure/testdriver/file_upload.sub.html [ Skip ]
diff --git a/third_party/blink/web_tests/W3CImportExpectations b/third_party/blink/web_tests/W3CImportExpectations
index 94fb8ec..b4d8a33 100644
--- a/third_party/blink/web_tests/W3CImportExpectations
+++ b/third_party/blink/web_tests/W3CImportExpectations
@@ -128,7 +128,6 @@
 external/wpt/svg-aam [ Skip ]
 external/wpt/svg/import [ Skip ]
 external/wpt/wai-aria [ Skip ]
-external/wpt/webdriver [ Skip ]
 external/wpt/webgl [ Skip ]
 
 # Exceptions for individual files that fail due to bugs in the
diff --git a/third_party/blink/web_tests/editing/assert_selection.js b/third_party/blink/web_tests/editing/assert_selection.js
index 9dd24e1..5ea2e46 100644
--- a/third_party/blink/web_tests/editing/assert_selection.js
+++ b/third_party/blink/web_tests/editing/assert_selection.js
@@ -754,6 +754,7 @@
     this.selection_.computeRight = computeRight;
     this.selection_.computeTop = computeTop;
     this.selection_.computeBottom = computeBottom;
+    this.selection_.window = this.iframe_.contentWindow;
     this.load(sampleText);
   }
 
diff --git a/third_party/blink/web_tests/editing/pasteboard/copy_crossing_editing_boundary.html b/third_party/blink/web_tests/editing/pasteboard/copy_crossing_editing_boundary.html
new file mode 100644
index 0000000..14f4e6c6
--- /dev/null
+++ b/third_party/blink/web_tests/editing/pasteboard/copy_crossing_editing_boundary.html
@@ -0,0 +1,18 @@
+<!doctype html>
+<script src="../../resources/testharness.js"></script>
+<script src="../../resources/testharnessreport.js"></script>
+<script src="../assert_selection.js"></script>
+<script>
+selection_test(
+ '<div contenteditable>^foo</div>bar|',
+  selection => {
+    assert_own_property(window, 'internals',
+                        'This test requires window.internals');
+    assert_equals(selection.window.internals.selectedTextForClipboard(), 'foo\nbar');
+    assert_equals(selection.window.internals.selectedHTMLForClipboard()
+                    .replace(/ style=".+?"/g, ' style="..."'),
+                  '<div contenteditable="" style="...">foo</div><span style="...">bar</span>');
+  },
+  '<div contenteditable>^foo</div>bar|',
+  'Selection by script should not be adjusted.');
+</script>
diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_6.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_6.json
index 6006a772..3515b31 100644
--- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_6.json
+++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_6.json
@@ -201391,6 +201391,12 @@
      {}
     ]
    ],
+   "css/css-overflow/overfow-outside-padding.html": [
+    [
+     "css/css-overflow/overfow-outside-padding.html",
+     {}
+    ]
+   ],
    "css/css-overflow/parsing/block-ellipsis-invalid.html": [
     [
      "css/css-overflow/parsing/block-ellipsis-invalid.html",
@@ -244606,6 +244612,12 @@
      {}
     ]
    ],
+   "intersection-observer/root-margin-root-element.html": [
+    [
+     "intersection-observer/root-margin-root-element.html",
+     {}
+    ]
+   ],
    "intersection-observer/root-margin-rounding.html": [
     [
      "intersection-observer/root-margin-rounding.html",
@@ -362805,6 +362817,10 @@
    "f425636c3bb4297e4e6564d1c2629dc10dde5607",
    "testharness"
   ],
+  "css/css-overflow/overfow-outside-padding.html": [
+   "792f7b87351bfcbda7baecc67ea6dedc2b05f3a5",
+   "testharness"
+  ],
   "css/css-overflow/parsing/block-ellipsis-invalid.html": [
    "2b9c059a45d0e315a350e0c09fd7cd86be72c61e",
    "testharness"
@@ -435057,6 +435073,10 @@
    "295bbf047e6523313ce74f2e383ed769c0d5c81b",
    "support"
   ],
+  "intersection-observer/root-margin-root-element.html": [
+   "6016d45bdf52ab8455ff20edc7da8fdcef3a24b9",
+   "testharness"
+  ],
   "intersection-observer/root-margin-rounding.html": [
    "f5e33230199eb77a16f8fe99eeb1c9c1618c3e19",
    "testharness"
@@ -437198,7 +437218,7 @@
    "support"
   ],
   "mediacapture-streams/MediaStream-MediaElement-firstframe.https.html": [
-   "1c6292458865bdeb3cfb5a64a7d4e4c9c215c866",
+   "714ae01b19ccc23dad2d601a8843adc44bb7b842",
    "testharness"
   ],
   "mediacapture-streams/MediaStream-MediaElement-preload-none-manual.https.html": [
@@ -437354,7 +437374,7 @@
    "testharness"
   ],
   "mediasession/setactionhandler.html": [
-   "dc7c3359e122db46f93aad4ef91daed1495f36ec",
+   "06d145b37d1603680ef61de4b2953f5bfc4ed650",
    "testharness"
   ],
   "mimesniff/META.yml": [
@@ -461222,7 +461242,7 @@
    "testharness"
   ],
   "service-workers/service-worker/fetch-event-async-respond-with.https.html": [
-   "ae64fcb9a5445843afb75679d0dafa45a3366677",
+   "d9147f85494c21e54d39a4fd7af16efa1a126384",
    "testharness"
   ],
   "service-workers/service-worker/fetch-event-is-history-backward-navigation-manual.https.html": [
@@ -467586,11 +467606,11 @@
    "support"
   ],
   "tools/lint/lint.py": [
-   "6a71dc860feb47d7c57df48a0fbfb12791f7b9f7",
+   "062c6a42d0f91836aaba5b308854ea6b5896b9aa",
    "support"
   ],
   "tools/lint/rules.py": [
-   "685bac3474ecf00a22e130dae78d3e6d384dc877",
+   "9b78f3495b2291044243170c54af5c3cd6b61046",
    "support"
   ],
   "tools/localpaths.py": [
@@ -471918,7 +471938,7 @@
    "support"
   ],
   "tools/wptrunner/setup.py": [
-   "0a16aa537b33b211622ef7799c149a135c7c4660",
+   "ab96bd10357cd6b3022364d471e5cebf0cb652dd",
    "support"
   ],
   "tools/wptrunner/tox.ini": [
diff --git a/third_party/blink/web_tests/external/wpt/intersection-observer/root-margin-root-element.html b/third_party/blink/web_tests/external/wpt/intersection-observer/root-margin-root-element.html
new file mode 100644
index 0000000..6016d45
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/intersection-observer/root-margin-root-element.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="./resources/intersection-observer-test-utils.js"></script>
+
+<style>
+pre, #log {
+  position: absolute;
+  top: 0;
+  left: 200px;
+}
+.spacer {
+  height: calc(100vh + 100px);
+}
+#root {
+  display: inline-block;
+  overflow-y: scroll;
+  height: 200px;
+  border: 3px solid black;
+}
+#target {
+  width: 100px;
+  height: 100px;
+  background-color: green;
+}
+</style>
+
+<div class="spacer"></div>
+<div id="root">
+  <div style="height: 300px;"></div>
+  <div id="target"></div>
+</div>
+<div class="spacer"></div>
+
+<script>
+var vw = document.documentElement.clientWidth;
+var vh = document.documentElement.clientHeight;
+
+var entries = [];
+var root, target;
+
+runTestCycle(function() {
+  target = document.getElementById("target");
+  assert_true(!!target, "target exists");
+  root = document.getElementById("root");
+  assert_true(!!root, "root exists");
+  var observer = new IntersectionObserver(function(changes) {
+    entries = entries.concat(changes)
+  }, { root: root, rootMargin: "10px 20% 40% 30px" });
+  observer.observe(target);
+  entries = entries.concat(observer.takeRecords());
+  assert_equals(entries.length, 0, "No initial notifications.");
+  runTestCycle(step0, "First rAF");
+}, "Root margin with explicit root.");
+
+function step0() {
+  document.scrollingElement.scrollTop = vh;
+  runTestCycle(step1, "document.scrollingElement.scrollTop = window.innerHeight.");
+  checkLastEntry(entries, 0, [ 11, 111, vh + 411, vh + 511, 0, 0, 0, 0, -19, 131, vh + 101, vh + 391, false]);
+}
+
+function step1() {
+  root.scrollTop = 50;
+  runTestCycle(step2, "root.scrollTop = 50, putting target into root margin");
+  assert_equals(entries.length, 1, "No notifications after scrolling frame.");
+}
+
+function step2() {
+  document.scrollingElement.scrollTop = 0;
+  runTestCycle(step3, "document.scrollingElement.scrollTop = 0.");
+  checkLastEntry(entries, 1, [11, 111, 361, 461, 11, 111, 361, 391, -19, 131, 101, 391, true]);
+}
+
+function step3() {
+  root.scrollTop = 0;
+  runTestCycle(step4, "root.scrollTop = 0");
+  checkLastEntry(entries, 1);
+}
+
+function step4() {
+  root.scrollTop = 50;
+  runTestCycle(step5, "root.scrollTop = 50 with root scrolled out of view.");
+  checkLastEntry(entries, 2, [ 11, 111, vh + 411, vh + 511, 0, 0, 0, 0, -19, 131, vh + 101, vh + 391, false]);
+}
+
+// This tests that notifications are generated even when the root element is off screen.
+function step5() {
+  checkLastEntry(entries, 3, [11, 111, vh + 361, vh + 461, 11, 111, vh + 361, vh + 391, -19, 131, vh + 101, vh + 391, true]);
+}
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/mediacapture-streams/MediaStream-MediaElement-firstframe.https-expected.txt b/third_party/blink/web_tests/external/wpt/mediacapture-streams/MediaStream-MediaElement-firstframe.https-expected.txt
index 8b4583f6..19c54862 100644
--- a/third_party/blink/web_tests/external/wpt/mediacapture-streams/MediaStream-MediaElement-firstframe.https-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/mediacapture-streams/MediaStream-MediaElement-firstframe.https-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Harness Error. harness_status.status = 1 , harness_status.message = Uncaught Error: Got unexpected event undefined
+Harness Error. harness_status.status = 1 , harness_status.message = Uncaught Error: assert_unreached: Got unexpected event resize Reached unreachable code
 PASS Tests that loading a MediaStream in a media element eventually results in "canplay" even when not playing or autoplaying
 PASS Tests that loading a MediaStream in a media element sees all the expected (deterministic) events even when not playing or autoplaying
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/mediacapture-streams/MediaStream-MediaElement-firstframe.https.html b/third_party/blink/web_tests/external/wpt/mediacapture-streams/MediaStream-MediaElement-firstframe.https.html
index 1c629245..714ae01b 100644
--- a/third_party/blink/web_tests/external/wpt/mediacapture-streams/MediaStream-MediaElement-firstframe.https.html
+++ b/third_party/blink/web_tests/external/wpt/mediacapture-streams/MediaStream-MediaElement-firstframe.https.html
@@ -38,9 +38,12 @@
     promise,
     wait(time).then(() => Promise.reject(new Error(msg)))
   ]);
-  const unexpected = e => { throw new Error(`Got unexpected event ${e.name}`); };
+  const unexpected = e => assert_unreached(`Got unexpected event ${e.type}`);
   const stream = await navigator.mediaDevices.getUserMedia({video: true});
-  t.add_cleanup(() => stream.getTracks().forEach(track => track.stop()));
+  t.add_cleanup(() => {
+    vid.ondurationchange = null;
+    stream.getTracks().forEach(track => track.stop())
+  });
   vid.srcObject = stream;
 
   vid.onloadstart = unexpected;
diff --git a/third_party/blink/web_tests/external/wpt/tools/lint/lint.py b/third_party/blink/web_tests/external/wpt/tools/lint/lint.py
index 6a71dc8..062c6a4 100644
--- a/third_party/blink/web_tests/external/wpt/tools/lint/lint.py
+++ b/third_party/blink/web_tests/external/wpt/tools/lint/lint.py
@@ -146,6 +146,13 @@
     return []
 
 
+def check_file_type(repo_root, path):
+    # type: (str, str) -> List[rules.Error]
+    if os.path.islink(path):
+        return [rules.FileType.error(path, (path, "symlink"))]
+    return []
+
+
 def check_worker_collision(repo_root, path):
     # type: (str, str) -> List[rules.Error]
     endings = [(".any.html", ".any.js"),
@@ -907,7 +914,8 @@
                 logger.info(line)
     return sum(itervalues(error_count))
 
-path_lints = [check_path_length, check_worker_collision, check_ahem_copy, check_gitignore_file]
+path_lints = [check_file_type, check_path_length, check_worker_collision, check_ahem_copy,
+              check_gitignore_file]
 all_paths_lints = [check_css_globally_unique]
 file_lints = [check_regexp_line, check_parsed, check_python_ast, check_script_metadata]
 
diff --git a/third_party/blink/web_tests/external/wpt/tools/lint/rules.py b/third_party/blink/web_tests/external/wpt/tools/lint/rules.py
index 685bac34..9b78f349 100644
--- a/third_party/blink/web_tests/external/wpt/tools/lint/rules.py
+++ b/third_party/blink/web_tests/external/wpt/tools/lint/rules.py
@@ -57,6 +57,11 @@
     description = "/%s longer than maximum path length (%d > 150)"
 
 
+class FileType(Rule):
+    name = "FILE TYPE"
+    description = "/%s is an unsupported file type (%s)"
+
+
 class WorkerCollision(Rule):
     name = "WORKER COLLISION"
     description = ("path ends with %s which collides with generated tests "
diff --git a/third_party/blink/web_tests/external/wpt/tools/wptrunner/setup.py b/third_party/blink/web_tests/external/wpt/tools/wptrunner/setup.py
index 0a16aa5..ab96bd1 100644
--- a/third_party/blink/web_tests/external/wpt/tools/wptrunner/setup.py
+++ b/third_party/blink/web_tests/external/wpt/tools/wptrunner/setup.py
@@ -57,7 +57,6 @@
                                   "prefs/*"]},
       include_package_data=True,
       data_files=[("requirements", requirements_files)],
-      install_requires=deps
       )
 
 if "install" in sys.argv:
diff --git a/third_party/blink/web_tests/wpt_internal/display-lock/lock-after-append/get-bounding-client-rect-block-layout.html b/third_party/blink/web_tests/wpt_internal/display-lock/lock-after-append/get-bounding-client-rect-block-layout.html
new file mode 100644
index 0000000..f89cdc8d
--- /dev/null
+++ b/third_party/blink/web_tests/wpt_internal/display-lock/lock-after-append/get-bounding-client-rect-block-layout.html
@@ -0,0 +1,79 @@
+<!doctype HTML>
+<html>
+<meta charset="utf8">
+<title>Display Locking: getBoundingClientRect on block layout</title>
+<link rel="author" title="Rakina Zata Amni" href="mailto:rakina@chromium.org">
+<link rel="help" href="https://github.com/WICG/display-locking">
+
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<style>
+div {
+  contain: style layout;
+}
+</style>
+<body>
+<script>
+const BODY_WIDTH = document.body.getBoundingClientRect().width;
+const ACQUIRE_WIDTH = 33;
+const ACQUIRE_HEIGHT = 44;
+
+async_test(async(t) => {
+  let container = document.createElement("div");
+  container.style = "width: min-content;";
+  let child = document.createElement("div");
+  container.appendChild(child);
+  document.body.appendChild(container);
+  await container.displayLock.acquire({ timeout: Infinity, size: [ACQUIRE_WIDTH, ACQUIRE_HEIGHT] });
+
+  let rect = container.getBoundingClientRect();
+  t.step(() => assert_equals(rect.width, ACQUIRE_WIDTH,
+    "Locked element with min-content uses width from acquire()"));
+  t.step(() => assert_equals(rect.height, ACQUIRE_HEIGHT,
+    "Locked element with min-content uses height from acquire()"));
+
+  rect = child.getBoundingClientRect();
+  t.step(() => assert_equals(rect.width, ACQUIRE_WIDTH,
+    "Child of locked element with min-content uses width from acquire()"));
+  t.step(() => assert_equals(rect.height, 0,
+    "Child of locked element with min-content & no content has zero height"));
+
+  child.style = "width: 100px; height: 200px;";
+  rect = container.getBoundingClientRect();
+  t.step(() => assert_equals(rect.width, ACQUIRE_WIDTH,
+    "Locked element with min-content and sized child uses width from acquire()"));
+  t.step(() => assert_equals(rect.height, ACQUIRE_HEIGHT,
+    "Locked element with min-content and sized child uses height from acquire()"));
+  rect = child.getBoundingClientRect();
+  t.step(() => assert_equals(rect.width, 100,
+    "Child of locked element with min-content uses width from style"));
+  t.step(() => assert_equals(rect.height, 200,
+    "Child of locked element with min-content uses height from style"));
+
+  t.done();
+}, "getBoundingClientRect with min-content");
+
+async_test(async(t) => {
+  let container = document.createElement("div");
+  document.body.appendChild(container);
+  await container.displayLock.acquire({ timeout: Infinity, size: [ACQUIRE_WIDTH, ACQUIRE_HEIGHT] });
+  let rect = container.getBoundingClientRect();
+
+  t.step(() => assert_equals(rect.width, BODY_WIDTH,
+    "Locked element uses width from body"));
+  t.step(() => assert_equals(rect.height, ACQUIRE_HEIGHT,
+    "Locked element uses height from acquire()"));
+
+  await container.displayLock.acquire({ timeout: Infinity, size: [55, 66] });
+  rect = container.getBoundingClientRect();
+  t.step(() => assert_equals(rect.width, BODY_WIDTH,
+    "After re-acquire, locked element still uses width from body"));
+  t.step(() => assert_equals(rect.height, 66,
+    "After re-acquire, locked element uses height from the last acquire()"));
+  t.done();
+}, "getBoundingClientRect with re-acquire");
+
+</script>
+</body>
+</html>
diff --git a/third_party/blink/web_tests/wpt_internal/display-lock/lock-after-append/reacquire-different-size.html b/third_party/blink/web_tests/wpt_internal/display-lock/lock-after-append/reacquire-different-size.html
new file mode 100644
index 0000000..0fdb32df
--- /dev/null
+++ b/third_party/blink/web_tests/wpt_internal/display-lock/lock-after-append/reacquire-different-size.html
@@ -0,0 +1,48 @@
+<!doctype HTML>
+<html class="reftest-wait">
+<meta charset="utf8">
+<title>Display Locking: re-acquire with a different size</title>
+<link rel="author" title="Rakina Zata Amni" href="mailto:rakina@chromium.org">
+<link rel="help" href="https://github.com/WICG/display-locking">
+<link rel="match" href="acquire-after-resize-ref.html">
+<script src="/common/reftest-wait.js"></script>
+
+<style>
+.contained {
+  contain: style layout;
+  background: lightblue;
+}
+#spacer {
+  width: 50px;
+  height: 50px;
+  background: lightgreen;
+}
+</style>
+
+<div id="log"></div>
+<div id="small" class="contained"></div>
+<div id="spacer">
+
+<script>
+function finishTest(status_string) {
+  if (document.getElementById("log").innerHTML === "")
+    document.getElementById("log").innerHTML = status_string;
+  takeScreenshot();
+}
+
+function runTest() {
+  const container = document.getElementById("small");
+  container.displayLock.acquire({ timeout: Infinity, size: [123, 456] }).then(
+    () => {
+      // Re-acquire with a different size.
+      container.displayLock.acquire({ timeout: Infinity, size: [150, 150] }).then(
+        () => { finishTest("PASS"); },
+        (e) => { finishTest("FAIL " + e.message); });
+    },
+    (e) => { finishTest("FAIL " + e.message); }
+  );
+}
+
+window.onload = runTest;
+</script>
+</html>
diff --git a/tools/mb/mb.py b/tools/mb/mb.py
index 150c26a..5bd9ad0 100755
--- a/tools/mb/mb.py
+++ b/tools/mb/mb.py
@@ -1251,7 +1251,9 @@
         './' + str(executable) + executable_suffix,
         '--test-launcher-bot-mode',
         '--asan=%d' % asan,
-        '--lsan=%d' % asan,  # Enable lsan when asan is enabled.
+        # Enable lsan when asan is enabled except on Windows where LSAN isn't
+        # supported.
+        '--lsan=%d' % (asan and not is_win),
         '--msan=%d' % msan,
         '--tsan=%d' % tsan,
         '--cfi-diag=%d' % cfi_diag,
@@ -1262,7 +1264,9 @@
           './' + str(executable) + executable_suffix,
           '--test-launcher-bot-mode',
           '--asan=%d' % asan,
-          '--lsan=%d' % asan,  # Enable lsan when asan is enabled.
+          # Enable lsan when asan is enabled except on Windows where LSAN isn't
+          # supported.
+          '--lsan=%d' % (asan and not is_win),
           '--msan=%d' % msan,
           '--tsan=%d' % tsan,
           '--cfi-diag=%d' % cfi_diag,
diff --git a/tools/mb/mb_config.pyl b/tools/mb/mb_config.pyl
index d3080dc3..0eff67f1 100644
--- a/tools/mb/mb_config.pyl
+++ b/tools/mb/mb_config.pyl
@@ -724,7 +724,6 @@
       'linux-blink-heap-verification-try': 'release_trybot_enable_blink_heap_verification',
       'linux-coverage-rel': 'gpu_tests_release_trybot_no_symbols_use_dummy_lastchange_code_coverage',
       'linux-dcheck-off-rel': 'release_trybot_dcheck_off',
-      'linux-goma-rbe-staging-rel': 'gpu_tests_release_trybot_no_symbols',
       'linux-gcc-rel': 'release_bot_x86_minimal_symbols_no_clang_cxx11',
       'linux-jumbo-rel': 'jumbo_large_chunks_release_bot_compile_only',
       'linux-libfuzzer-asan-rel': 'libfuzzer_asan_release_trybot',
@@ -1558,10 +1557,6 @@
       'gpu_tests', 'release_trybot', 'resource_whitelisting',
     ],
 
-    'gpu_tests_release_trybot_no_symbols': [
-      'gpu_tests', 'release_trybot', 'no_symbols',
-    ],
-
     'gpu_tests_release_trybot_no_symbols_use_dummy_lastchange': [
       'gpu_tests', 'release_trybot', 'no_symbols', 'use_dummy_lastchange',
     ],
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index daabd86c..3d926519 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -49298,6 +49298,21 @@
   <int value="2" label="Not shown due to background mode with no windows"/>
 </enum>
 
+<enum name="RemoteBookmarkUpdateError">
+  <int value="0"
+      label="Remote and local bookmarks types don't match (URL vs. Folder)"/>
+  <int value="1" label="Invalid specifics"/>
+  <int value="2" label="Invalid unique position"/>
+  <int value="3" label="Permanent node creation in an incremental update"/>
+  <int value="4" label="Parent entity not found in server"/>
+  <int value="5" label="Parent node not found locally"/>
+  <int value="6"
+      label="Parent entity not found in server when processing a conflict"/>
+  <int value="7"
+      label="Parent node not found locally when processing a conflict"/>
+  <int value="8" label="Failed to create a bookmark"/>
+</enum>
+
 <enum name="RemoteHungProcessTerminateReason">
   <int value="1" label="Terminate accepted by user"/>
   <int value="2" label="No visible windows found"/>
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index a6e2f90..4e030a1 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -129508,6 +129508,18 @@
   </summary>
 </histogram>
 
+<histogram name="Sync.ProblematicServerSideBookmarks"
+    enum="RemoteBookmarkUpdateError" expires_after="M85">
+  <owner>psivieroleitao@google.com</owner>
+  <owner>mamir@chromium.org</owner>
+  <owner>mastiz@chromium.org</owner>
+  <summary>
+    Records different issues encountered when processing remote bookmark
+    updates. Issues are recorded after receiving bookmark initial or incremental
+    updates from the server.
+  </summary>
+</histogram>
+
 <histogram name="Sync.ReauthorizationTime" units="ms"
     expires_after="2016-06-20">
   <obsolete>
diff --git a/ui/file_manager/file_manager/foreground/elements/files_visual_signals.css b/ui/file_manager/file_manager/foreground/elements/files_xf_elements.css
similarity index 92%
rename from ui/file_manager/file_manager/foreground/elements/files_visual_signals.css
rename to ui/file_manager/file_manager/foreground/elements/files_xf_elements.css
index 88d51ed..f62fcc221 100644
--- a/ui/file_manager/file_manager/foreground/elements/files_visual_signals.css
+++ b/ui/file_manager/file_manager/foreground/elements/files_xf_elements.css
@@ -2,6 +2,7 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file. */
 
+/* TODO(crbug.com/947388) revisit the 'xf-' prefix naming for better search. */
 xf-display-panel {
     max-width: 400px;
 }
diff --git a/ui/file_manager/file_manager/foreground/elements/xf_circular_progress.js b/ui/file_manager/file_manager/foreground/elements/xf_circular_progress.js
index 58ca0c0..405346d 100644
--- a/ui/file_manager/file_manager/foreground/elements/xf_circular_progress.js
+++ b/ui/file_manager/file_manager/foreground/elements/xf_circular_progress.js
@@ -60,6 +60,7 @@
                     }
                     .top {
                         stroke: rgb(26, 115, 232);
+                        stroke-linecap: round;
                         fill: none;
                     }
                     circle {
@@ -87,19 +88,22 @@
    * @private
    */
   static get observedAttributes() {
-    return ['radius', 'progress'];
+    return [
+      'label',
+      'progress',
+      'radius',
+    ];
   }
 
   /**
-   * Utility function to set the indicators progress position.
+   * Sets the indicators progress position.
    * @param {number} progress A value between 0 and maxProgress_ to indicate.
    * @return {number}
    * @public
    */
   setProgress(progress) {
-    // Limit the range between 0 and maxProgress_.
-    progress = Math.max(progress, 0);
-    progress = Math.min(progress, this.maxProgress_);
+    // Clamp progress to 0 .. maxProgress_.
+    progress = Math.min(Math.max(progress, 0), this.maxProgress_);
     const value = (progress / this.maxProgress_) * this.fullCircle_;
     this.indicator_.setAttribute(
         'stroke-dasharray', value + ' ' + this.fullCircle_);
@@ -108,15 +112,25 @@
 
   /**
    * Callback triggered by the browser when our attribute values change.
+   * TODO(crbug.com/947388) Add unit tests to exercise attribute edge cases.
    * @param {string} name Attribute that's changed.
-   * @param {string} oldValue Old value of the attribute.
-   * @param {string} newValue New value of the attribute.
+   * @param {?string} oldValue Old value of the attribute.
+   * @param {?string} newValue New value of the attribute.
    * @private
    */
   attributeChangedCallback(name, oldValue, newValue) {
+    if (oldValue === newValue) {
+      return;
+    }
     switch (name) {
+      case 'label':
+        this.label_.textContent = newValue;
+        break;
       case 'radius':
-        const radius = Math.floor(newValue);
+        if (!newValue) {
+          break;
+        }
+        const radius = Number(newValue);
         // Restrict the allowed size to what fits in our area.
         if (radius < 0 || radius > 16.5) {
           return;
@@ -124,8 +138,8 @@
         // Calculate the circumference for the progress dash length.
         this.fullCircle_ = Math.PI * 2 * radius;
         const bottom = this.shadowRoot.querySelector('.bottom');
-        bottom.setAttribute('r', newValue);
-        this.indicator_.setAttribute('r', newValue);
+        bottom.setAttribute('r', radius.toString());
+        this.indicator_.setAttribute('r', radius.toString());
         this.setProgress(this.progress_);
         break;
       case 'progress':
@@ -138,14 +152,14 @@
   /**
    * Getter for the current state of the progress indication.
    * @public
-   * @return {number}
+   * @return {string}
    */
   get progress() {
-    return this.progress_;
+    return this.progress_.toString();
   }
 
   /**
-   * Setter to set the progress position between 0 and 100.0.
+   * Sets the progress position between 0 and 100.0.
    * @param {string} progress Progress value being set.
    * @public
    */
@@ -161,7 +175,7 @@
    * @public
    */
   set label(label) {
-    this.label_.textContent = label;
+    this.setAttribute('label', label);
   }
 }
 
diff --git a/ui/file_manager/file_manager/foreground/elements/xf_panel_item.js b/ui/file_manager/file_manager/foreground/elements/xf_panel_item.js
index bb0253a..f8a63027 100644
--- a/ui/file_manager/file_manager/foreground/elements/xf_panel_item.js
+++ b/ui/file_manager/file_manager/foreground/elements/xf_panel_item.js
@@ -14,6 +14,20 @@
 
     /** @private {Element} */
     this.indicator_ = this.shadowRoot.querySelector('#indicator');
+
+    /**
+     * TODO(crbug.com/947388) make this a closure enum.
+     * @const
+     */
+    this.panelTypeDefault = -1;
+    this.panelTypeProgress = 0;
+    this.panelTypeSummary = 1;
+    this.panelTypeDone = 2;
+    this.panelTypeError = 3;
+    this.panelTypeInfo = 4;
+
+    /** @private {number} */
+    this.panelType_ = this.panelTypeDefault;
   }
 
   /**
@@ -22,59 +36,154 @@
    * @return {string}
    */
   static get template_() {
-    return `<link rel='stylesheet' href='files_visual_signals.css'>
+    return `<link rel='stylesheet'
+              href='foreground/elements/files_xf_elements.css'>
                 <div class='xf-panel-item'>
+                    <xf-circular-progress id='indicator'>
+                    </xf-circular-progress>
                     <div class='xf-panel-text'>
                         <span class='xf-panel-label-text'>
-                                Placeholder text</span>
+                                Placeholder text
+                        </span>
                         <br/>
                     </div>
                     <div class='xf-padder-24'></div>
-                    <button class='xf-button' src='pause-icon.png'
-                            tabindex='-1'>
-                    </button>
-                    <div class='xf-padder-4'></div>
-                    <button class='xf-button' src='cancel-icon.png'
-                            tabindex='-1'>
-                    </button>
+                    <xf-button id='secondary-action' tabindex='-1'>
+                    </xf-button>
+                    <div id='button-gap' class='xf-padder-4'></div>
+                    <xf-button id='primary-action' tabindex='-1'>
+                    </xf-button>
                     <div class='xf-padder-16'></div>
                 </div>`;
   }
 
   /**
+   * Remove an element from the panel using it's id.
+   * @private
+   */
+  removePanelElementById_(id) {
+    const element = this.shadowRoot.querySelector(id);
+    if (element) {
+      element.remove();
+    }
+  }
+
+  /**
+   * Sets up the different panel types. Panels have per-type configuration
+   * templates, but can be further customized using individual attributes.
+   * @param {number} type The enumerated panel type to set up.
+   * @private
+   */
+  setPanelType(type) {
+    if (this.panelType_ === type) {
+      return;
+    }
+
+    // Remove the indicators/buttons that can change.
+    this.removePanelElementById_('#indicator');
+    this.removePanelElementById_('#primary-action');
+    this.removePanelElementById_('#secondary-action');
+
+    // Mark the indicator as empty so it recreates on setAttribute.
+    this.setAttribute('indicator', 'empty');
+
+    const buttonSpacer = this.shadowRoot.querySelector('#button-gap');
+
+    // Setup the panel configuration for the panel type.
+    // TOOD(crbug.com/947388) Simplify this switch breaking out common cases.
+    switch (type) {
+      case this.panelTypeProgress:
+        this.setAttribute('indicator', 'progress');
+        let primaryButton = document.createElement('xf-button');
+        primaryButton.id = 'primary-action';
+        primaryButton.setAttribute('category', 'pause');
+        buttonSpacer.insertAdjacentElement('beforebegin', primaryButton);
+
+        let secondaryButton = document.createElement('xf-button');
+        secondaryButton.id = 'secondary-action';
+        secondaryButton.setAttribute('category', 'cancel');
+        buttonSpacer.insertAdjacentElement('afterend', secondaryButton);
+        break;
+      case this.panelTypeSummary:
+        this.setAttribute('indicator', 'largeprogress');
+        primaryButton = document.createElement('xf-button');
+        primaryButton.id = 'primary-action';
+        primaryButton.setAttribute('category', 'expand');
+        buttonSpacer.insertAdjacentElement('afterend', primaryButton);
+        break;
+      case this.panelTypeDone:
+        this.setAttribute('indicator', 'status');
+        this.setAttribute('status', 'success');
+        primaryButton = document.createElement('xf-button');
+        primaryButton.id = 'primary-action';
+        primaryButton.setAttribute('category', 'dismiss');
+        buttonSpacer.insertAdjacentElement('beforebegin', primaryButton);
+
+        secondaryButton = document.createElement('xf-button');
+        secondaryButton.id = 'secondary-action';
+        secondaryButton.setAttribute('category', 'undo');
+        buttonSpacer.insertAdjacentElement('afterend', secondaryButton);
+        break;
+      case this.panelTypeError:
+        this.setAttribute('indicator', 'status');
+        this.setAttribute('status', 'failure');
+        secondaryButton = document.createElement('xf-button');
+        secondaryButton.id = 'secondary-action';
+        secondaryButton.setAttribute('category', 'retry');
+        buttonSpacer.insertAdjacentElement('afterend', secondaryButton);
+        break;
+      case this.panelTypeInfo:
+        break;
+    }
+
+    this.panelType_ = type;
+  }
+
+  /**
    * Registers this instance to listen to these attribute changes.
    * @private
    */
   static get observedAttributes() {
     return [
-      'indicator', 'progress', 'status', 'primary-text', 'secondary-text'
+      'count',
+      'indicator',
+      'panel-type',
+      'primary-text',
+      'progress',
+      'secondary-text',
+      'status',
     ];
   }
 
   /**
    * Callback triggered by the browser when our attribute values change.
    * @param {string} name Attribute that's changed.
-   * @param {string} oldValue Old value of the attribute.
-   * @param {string} newValue New value of the attribute.
+   * @param {?string} oldValue Old value of the attribute.
+   * @param {?string} newValue New value of the attribute.
    * @private
    */
   attributeChangedCallback(name, oldValue, newValue) {
     /** @type {HTMLElement} */
-    let indicator;
+    let indicator = null;
     /** @type {HTMLSpanElement} */
     let textNode;
     if (oldValue === newValue) {
       return;
     }
+    // TODO(adanilo) Chop out each attribute handler into a function.
     switch (name) {
+      case 'count':
+        if (this.indicator_) {
+          this.indicator_.setAttribute('label', newValue);
+        }
+        break;
       case 'indicator':
-        // Get rid of any existing indicator.
+        // Get rid of any existing indicator
         const oldIndicator = this.shadowRoot.querySelector('#indicator');
         if (oldIndicator) {
           oldIndicator.remove();
         }
         switch (newValue) {
-          default:  // Always set something so the panel doesn't shrink.
           case 'progress':
           case 'largeprogress':
             indicator = document.createElement('xf-circular-progress');
@@ -92,22 +201,30 @@
             }
             break;
         }
+        this.indicator_ = indicator;
         if (indicator) {
           const itemRoot = this.shadowRoot.querySelector('.xf-panel-item');
           indicator.setAttribute('id', 'indicator');
           itemRoot.prepend(indicator);
         }
         break;
+      case 'panel-type':
+        this.setPanelType(Number(newValue));
+        if (this.parent && this.parent.updateSummaryPanel) {
+          this.parent.updateSummaryPanel();
+        }
+        break;
       case 'progress':
-        indicator = this.shadowRoot.querySelector('xf-circular-progress');
-        if (indicator) {
-          indicator.progress = Number(newValue);
+        if (this.indicator_) {
+          this.indicator_.progress = Number(newValue);
+          if (this.parent && this.parent.updateProgress) {
+            this.parent.updateProgress();
+          }
         }
         break;
       case 'status':
-        indicator = this.shadowRoot.querySelector('#indicator');
-        if (indicator) {
-          indicator.status = newValue;
+        if (this.indicator_) {
+          this.indicator_.status = newValue;
         }
         break;
       case 'primary-text':
@@ -142,7 +259,6 @@
    * @param {string} indicator Progress (optionally large) or status.
    */
   set indicator(indicator) {
-    // Reflect the status property into the attribute.
     this.setAttribute('indicator', indicator);
   }
 
@@ -151,7 +267,6 @@
    * @param {string} status Status value being set.
    */
   set status(status) {
-    // Reflect the status property into the attribute.
     this.setAttribute('status', status);
   }
 
@@ -161,16 +276,21 @@
    * @public
    */
   set progress(progress) {
-    // Reflect the progress property into the attribute.
     this.setAttribute('progress', progress);
   }
 
   /**
+   *  Getter for the progress indicator percentage.
+   */
+  get progress() {
+    return this.indicator_.progress || 0;
+  }
+
+  /**
    * Setter to set the primary text on the panel.
    * @param {string} text Text to be shown.
    */
   set primaryText(text) {
-    // Reflect the status property into the attribute.
     this.setAttribute('primary-text', text);
   }
 
@@ -179,9 +299,38 @@
    * @param {string} text Text to be shown.
    */
   set secondaryText(text) {
-    // Reflect the status property into the attribute.
     this.setAttribute('secondary-text', text);
   }
+
+  /**
+   * Setter to set the panel type.
+   * @param {number} type Enum value for the panel type.
+   */
+  set panelType(type) {
+    this.setAttribute('panel-type', type);
+  }
+
+  /**
+   * Getter for the panel type.
+   * TODO(crbug.com/947388) Add closure annotations to getters.
+   */
+  get panelType() {
+    return this.panelType_;
+  }
+
+  /**
+   * Getter for the primary action button.
+   */
+  get primaryButton() {
+    return this.shadowRoot.querySelector('#primary-action');
+  }
+
+  /**
+   * Getter for the secondary action button.
+   */
+  get secondaryButton() {
+    return this.shadowRoot.querySelector('#secondary-action');
+  }
 }
 
 window.customElements.define('xf-panel-item', PanelItem);
diff --git a/ui/file_manager/file_manager/foreground/js/quick_view_controller.js b/ui/file_manager/file_manager/foreground/js/quick_view_controller.js
index 37e12f7c..bf07381 100644
--- a/ui/file_manager/file_manager/foreground/js/quick_view_controller.js
+++ b/ui/file_manager/file_manager/foreground/js/quick_view_controller.js
@@ -208,11 +208,9 @@
     if (this.quickView_ && this.quickView_.isOpened()) {
       assert(this.entries_.length > 0);
       const entry = this.entries_[0];
-      if (util.isSameEntry(entry, this.quickViewModel_.getSelectedEntry())) {
-        return;
+      if (!util.isSameEntry(entry, this.quickViewModel_.getSelectedEntry())) {
+        this.updateQuickView_();
       }
-      this.quickViewModel_.setSelectedEntry(entry);
-      this.display_();
     }
   }
 
@@ -240,14 +238,15 @@
           .then(this.updateQuickView_.bind(this))
           .catch(console.error);
     }
-    assert(this.entries_.length > 0);
-    // TODO(oka): Support multi-selection.
-    this.quickViewModel_.setSelectedEntry(this.entries_[0]);
 
-    const entry =
-        (/** @type {!FileEntry} */ (this.quickViewModel_.getSelectedEntry()));
-    assert(entry);
+    // TODO(oka): Support multi-selection.
+    assert(this.entries_.length > 0);
+    const entry = this.entries_[0];
+    this.quickViewModel_.setSelectedEntry(entry);
+
+    // TODO(noel): Record UMA _after_ the rendering work below is done?
     this.quickViewUma_.onEntryChanged(entry);
+
     return Promise
         .all([
           this.metadataModel_.get([entry], ['thumbnailUrl']),
diff --git a/ui/file_manager/file_manager/foreground/js/quick_view_model.js b/ui/file_manager/file_manager/foreground/js/quick_view_model.js
index aa544d5..d7f472b 100644
--- a/ui/file_manager/file_manager/foreground/js/quick_view_model.js
+++ b/ui/file_manager/file_manager/foreground/js/quick_view_model.js
@@ -17,12 +17,17 @@
     this.selectedEntry_ = null;
   }
 
-  /** @return {FileEntry} */
+  /**
+   * Returns the selected file entry.
+   * @return {FileEntry}
+   */
   getSelectedEntry() {
     return this.selectedEntry_;
   }
 
   /**
+   * Sets the selected file entry. Emits a synchronous selected-entry-changed
+   * event to immediately call MetadataBoxController.updateView_().
    * @param {!FileEntry} entry
    */
   setSelectedEntry(entry) {
diff --git a/ui/ozone/platform/x11/x11_window_ozone.cc b/ui/ozone/platform/x11/x11_window_ozone.cc
index c3f17315..e9ce3e7 100644
--- a/ui/ozone/platform/x11/x11_window_ozone.cc
+++ b/ui/ozone/platform/x11/x11_window_ozone.cc
@@ -44,6 +44,10 @@
   window_manager_->UngrabEvents(this);
 }
 
+bool X11WindowOzone::HasCapture() const {
+  return window_manager_->event_grabber() == this;
+}
+
 void X11WindowOzone::SetCursor(PlatformCursor cursor) {
   X11CursorOzone* cursor_ozone = static_cast<X11CursorOzone*>(cursor);
   XDefineCursor(xdisplay(), xwindow(), cursor_ozone->xcursor());
diff --git a/ui/ozone/platform/x11/x11_window_ozone.h b/ui/ozone/platform/x11/x11_window_ozone.h
index e158634..ab45885 100644
--- a/ui/ozone/platform/x11/x11_window_ozone.h
+++ b/ui/ozone/platform/x11/x11_window_ozone.h
@@ -31,6 +31,7 @@
   void PrepareForShutdown() override;
   void SetCapture() override;
   void ReleaseCapture() override;
+  bool HasCapture() const override;
   void SetCursor(PlatformCursor cursor) override;
 
   // XEventDispatcher: