diff --git a/DEPS b/DEPS
index f33ffea..da95a75 100644
--- a/DEPS
+++ b/DEPS
@@ -280,7 +280,7 @@
   # 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': '77524387094192e4639253eeabca6ed3fb46dfc0',
+  'skia_revision': '4c5f736b89157519dcdad75c9801c1af9d765f8f',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
@@ -288,19 +288,19 @@
   # 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': '95756ae2acbe88a57cc33cff02eeb5e7eb127876',
+  'angle_revision': 'ccf65c8be1900e218b8df6aba22268449525d836',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling SwiftShader
   # and whatever else without interference from each other.
-  'swiftshader_revision': 'd91e98d1aa3f18398fd6bfadbb45060cd6e0db3b',
+  'swiftshader_revision': '7e54d43d6905f978ccf90680dd22a48b0ede8d8b',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling PDFium
   # and whatever else without interference from each other.
-  'pdfium_revision': 'c8caabb5a306cc313c41af5bf84fa82ea35f3701',
+  'pdfium_revision': '6d1b0b3ba801f9c1c87dea35823b5abcaf1ba72f',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling BoringSSL
   # and whatever else without interference from each other.
-  'boringssl_revision': 'b6eec48a579eff1abe70ce6d480a017d6ca3a32c',
+  'boringssl_revision': '470d9b07dd07353b7b0880f5b843f489ca24330e',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling Fuchsia sdk
   # and whatever else without interference from each other.
@@ -352,7 +352,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling chromium_variations
   # and whatever else without interference from each other.
-  'chromium_variations_revision': '7af220e108a6bfad281d1e8b7c923a269e3654c1',
+  'chromium_variations_revision': 'd8d5c452baadcdcdb85b57b443e211e26d0ad5e6',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling CrossBench
   # and whatever else without interference from each other.
@@ -424,7 +424,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libavif
   # and whatever else without interference from each other.
-  'libavif_revision': '03738d58595e0d62f0b9f8815a27cc7eb52d1c2a',
+  'libavif_revision': '3196438660ca478f85e8a3d209b166adcd845c4a',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling crabbyavif
   # and whatever else without interference from each other.
@@ -448,7 +448,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling nearby
   # and whatever else without interference from each other.
-  'nearby_revision': '0803db861f8db6873b6db96a999ed2254b13836d',
+  'nearby_revision': 'a08b4205455bbf1f05a91b8d4abcce8d2f0156e7',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling securemessage
   # and whatever else without interference from each other.
@@ -496,7 +496,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling llvm-libc
   # and whatever else without interference from each other.
-  'llvm_libc_revision':    '4d75039545cf1c121eddfb9636e4d19dfbb7fe29',
+  'llvm_libc_revision':    'ab2f32b66014843f072d32d72c560b7dd229c0f3',
 
   # If you change this, also update the libc++ revision in
   # //buildtools/deps_revisions.gni.
@@ -1304,12 +1304,12 @@
 
   'src/clank': {
     'url': Var('chrome_git') + '/clank/internal/apps.git' + '@' +
-    '21940795d0716914166441b2043aae2ec64086f1',
+    '6c91b3d63c04c2c5907dd772e25f5bdfc70c771f',
     'condition': 'checkout_android and checkout_src_internal',
   },
 
   'src/docs/website': {
-    'url': Var('chromium_git') + '/website.git' + '@' + 'e24b5fc00e87e2350895d20aae627189b681d748',
+    'url': Var('chromium_git') + '/website.git' + '@' + '14dfe5f8763aa342a6d34f55486186361a4d4c40',
   },
 
   'src/ios/third_party/earl_grey2/src': {
@@ -1463,7 +1463,7 @@
     'packages': [
       {
           'package': 'chromium/third_party/androidx',
-          'version': 'htV4MvGlfVbpqGSk_BC6R-OR2p5JKa7M1TmDGgIgSioC',
+          'version': 'vSj92wjvvjLnN0i_PCgtEw7ddiRrnqtkDeAoAmxGjGEC',
       },
     ],
     'condition': 'checkout_android and non_git_source',
@@ -1799,13 +1799,13 @@
 
 
   'src/third_party/depot_tools':
-    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '8d20c1e0b56c68b14878b597080484f9445962b4',
+    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'c30219e4a720a4f91f66983fdb11c5a665da63ac',
 
   'src/third_party/devtools-frontend/src':
     Var('chromium_git') + '/devtools/devtools-frontend' + '@' + Var('devtools_frontend_revision'),
 
   'src/third_party/devtools-frontend-internal': {
-      'url': Var('chrome_git') + '/devtools/devtools-internal.git' + '@' + 'd568021d39553f3923662cb2e7badb114fea980b',
+      'url': Var('chrome_git') + '/devtools/devtools-internal.git' + '@' + '2534d7deee0d3f46def3299aced0f4866ac978de',
     'condition': 'checkout_src_internal',
   },
 
@@ -1881,7 +1881,7 @@
     Var('chromium_git') + '/external/github.com/google/ink-stroke-modeler.git' + '@' + Var('ink_stroke_modeler_revision'),
 
   'src/third_party/instrumented_libs': {
-    'url': Var('chromium_git') + '/chromium/third_party/instrumented_libraries.git' + '@' + 'bb6dbcf2df7a9beb34c3773ef4df161800e3aed9',
+    'url': Var('chromium_git') + '/chromium/third_party/instrumented_libraries.git' + '@' + '3cc43119a29158bcde39d288a8def4b8ec49baf8',
     'condition': 'checkout_instrumented_libraries',
   },
 
@@ -2306,7 +2306,7 @@
     Var('pdfium_git') + '/pdfium.git' + '@' +  Var('pdfium_revision'),
 
   'src/third_party/perfetto':
-    Var('android_git') + '/platform/external/perfetto.git' + '@' + '1a0d053d2f0d440bd8cfd1fc6421bccd63dd4041',
+    Var('android_git') + '/platform/external/perfetto.git' + '@' + 'b4c1dfa24715ef5600fd068b646447707cb9ee08',
 
   'src/base/tracing/test/data': {
     'bucket': 'perfetto',
@@ -2668,13 +2668,13 @@
     Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + '450cceb587613ac1469c5a131fac15935c99e0e7',
 
   'src/third_party/webgpu-cts/src':
-    Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '9223c2618d5cb7fe45a90eb1d06c735db8338a39',
+    Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '3ed497b59345978f8460b5e375e7cd18f3b98872',
 
   'src/third_party/webpagereplay':
     Var('chromium_git') + '/webpagereplay.git' + '@' + Var('webpagereplay_revision'),
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + '93f5f9e8677d61eff3e8669ade6224195a421ebf',
+    Var('webrtc_git') + '/src.git' + '@' + '8d5b344b05e2415be08d31a21c09f89c1d220741',
 
   # Wuffs' canonical repository is at github.com/google/wuffs, but we use
   # Skia's mirror of Wuffs, the same as in upstream Skia's DEPS file.
@@ -4402,7 +4402,7 @@
 
   'src/components/metrics/internal': {
       'url': Var('chrome_git') + '/chrome/components/metrics/internal.git' + '@' +
-        '8e91fd73c988a39117cb6cca252af1d8bb08129d',
+        'b142ab0612763d64d3ec3b79cd71c6dc9bcbe20b',
       'condition': 'checkout_src_internal',
   },
 
@@ -4414,7 +4414,7 @@
 
   'src/components/optimization_guide/internal': {
       'url': Var('chrome_git') + '/chrome/components/optimization_guide.git' + '@' +
-        'fe7e9f241e165bb9fada55d320b6646e6ffa4a5f',
+        '5953b2f79e0d2274f7f053f9d5ce8956a09ccfd5',
       'condition': 'checkout_src_internal',
   },
 
@@ -4480,7 +4480,7 @@
 
   'src/ios_internal':  {
       'url': Var('chrome_git') + '/chrome/ios_internal.git' + '@' +
-        '0ab8b51d63a6a0a658d209f18df69058aa201007',
+        '3f2de6eed730e6f96f37636ea84815c933f28496',
       'condition': 'checkout_ios and checkout_src_internal',
   },
 
diff --git a/android_webview/BUILD.gn b/android_webview/BUILD.gn
index ebcdc56..642d2723 100644
--- a/android_webview/BUILD.gn
+++ b/android_webview/BUILD.gn
@@ -1012,7 +1012,7 @@
 
 repack("repack_pack") {
   sources = [
-    "$root_gen_dir/components/metrics/metrics_url_constants.pak",
+    "$root_gen_dir/components/metrics/metrics_server_urls.pak",
     "$root_gen_dir/content/content_resources.pak",
     "$root_gen_dir/content/histograms_resources.pak",
     "$root_gen_dir/net/net_resources.pak",
@@ -1026,7 +1026,7 @@
     ":generate_components_resources",
     ":generate_mojo_resources",
     ":generate_webui_resources",
-    "//components/metrics:url_constants",
+    "//components/metrics:server_urls_grd",
     "//content:content_resources",
     "//content/browser/resources/histograms:resources",
     "//net:net_resources",
diff --git a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
index b902eada..961dad6d 100644
--- a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
+++ b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
@@ -736,6 +736,7 @@
         Flag.baseFeature("UseRustJsonParser"),
         Flag.baseFeature("V8BaselineBatchCompilation"),
         Flag.baseFeature("V8ConcurrentSparkplug"),
+        Flag.baseFeature("V8Flag_minor_gc_task_with_lower_priority"),
         Flag.baseFeature("V8FlushCodeBasedOnTabVisibility"),
         Flag.baseFeature("V8FlushCodeBasedOnTime"),
         Flag.baseFeature("V8MemoryReducer"),
diff --git a/android_webview/test/BUILD.gn b/android_webview/test/BUILD.gn
index d91c636d..3eabd57 100644
--- a/android_webview/test/BUILD.gn
+++ b/android_webview/test/BUILD.gn
@@ -743,9 +743,9 @@
 }
 
 repack("android_webview_unittests_pak") {
-  sources = [ "$root_gen_dir/components/metrics/metrics_url_constants.pak" ]
+  sources = [ "$root_gen_dir/components/metrics/metrics_server_urls.pak" ]
 
-  deps = [ "//components/metrics:url_constants" ]
+  deps = [ "//components/metrics:server_urls_grd" ]
 
   output = "$root_out_dir/android_webview_unittests_resources.pak"
 }
diff --git a/ash/accelerators/accelerator_controller_unittest.cc b/ash/accelerators/accelerator_controller_unittest.cc
index 32528c4..e13d3a0e 100644
--- a/ash/accelerators/accelerator_controller_unittest.cc
+++ b/ash/accelerators/accelerator_controller_unittest.cc
@@ -36,6 +36,7 @@
 #include "ash/ime/ime_controller_impl.h"
 #include "ash/ime/test_ime_controller_client.h"
 #include "ash/media/media_controller_impl.h"
+#include "ash/public/cpp/accelerator_actions.h"
 #include "ash/public/cpp/accelerators.h"
 #include "ash/public/cpp/arc_game_controls_flag.h"
 #include "ash/public/cpp/ash_prefs.h"
@@ -2384,8 +2385,9 @@
 
 TEST_F(AcceleratorControllerTest, DisallowedAtModalWindow) {
   std::set<AcceleratorAction> all_actions;
-  for (size_t i = 0; i < kAcceleratorDataLength; ++i)
-    all_actions.insert(kAcceleratorData[i].action);
+  for (const AcceleratorData& data : kAcceleratorData) {
+    all_actions.insert(data.action);
+  }
   std::set<AcceleratorAction> all_debug_actions;
   for (size_t i = 0; i < kDebugAcceleratorDataLength; ++i)
     all_debug_actions.insert(kDebugAcceleratorData[i].action);
@@ -2508,8 +2510,7 @@
   for (size_t i = 0; i < kActionsNeedingWindowLength; ++i)
     actions_needing_window.insert(kActionsNeedingWindow[i]);
   std::map<AcceleratorAction, ui::Accelerator> accelerators_needing_window;
-  for (size_t i = 0; i < kAcceleratorDataLength; ++i) {
-    const auto& accelerator_data = kAcceleratorData[i];
+  for (const AcceleratorData& accelerator_data : kAcceleratorData) {
     auto iter = actions_needing_window.find(accelerator_data.action);
     if (!base::Contains(actions_needing_window, accelerator_data.action)) {
       continue;
diff --git a/ash/accelerators/accelerator_table_unittest.cc b/ash/accelerators/accelerator_table_unittest.cc
index c914468..8fe2881 100644
--- a/ash/accelerators/accelerator_table_unittest.cc
+++ b/ash/accelerators/accelerator_table_unittest.cc
@@ -7,10 +7,12 @@
 #pragma allow_unsafe_buffers
 #endif
 
+#include "ash/accelerators/accelerator_table.h"
+
 #include <set>
 #include <tuple>
 
-#include "ash/accelerators/accelerator_table.h"
+#include "ash/public/cpp/accelerators.h"
 #include "base/hash/md5.h"
 #include "base/strings/string_util.h"
 #include "base/strings/stringprintf.h"
@@ -61,13 +63,11 @@
 
 TEST(AcceleratorTableTest, CheckDuplicatedAccelerators) {
   std::set<AcceleratorData, Cmp> accelerators;
-  for (size_t i = 0; i < kAcceleratorDataLength; ++i) {
-    const AcceleratorData& entry = kAcceleratorData[i];
+  for (const AcceleratorData& entry : kAcceleratorData) {
     EXPECT_TRUE(accelerators.insert(entry).second)
         << "Duplicated accelerator: " << AcceleratorDataToString(entry);
   }
-  for (size_t i = 0; i < kDisableWithNewMappingAcceleratorDataLength; ++i) {
-    const AcceleratorData& entry = kDisableWithNewMappingAcceleratorData[i];
+  for (const AcceleratorData& entry : kDisableWithNewMappingAcceleratorData) {
     EXPECT_TRUE(accelerators.insert(entry).second)
         << "Duplicated accelerator: " << AcceleratorDataToString(entry);
   }
@@ -145,14 +145,12 @@
 // All new accelerators should be Search-based and approved by UX.
 TEST(AcceleratorTableTest, CheckSearchBasedAccelerators) {
   std::vector<AcceleratorData> non_search_accelerators;
-  for (size_t i = 0; i < kAcceleratorDataLength; ++i) {
-    const AcceleratorData& entry = kAcceleratorData[i];
+  for (const AcceleratorData& entry : kAcceleratorData) {
     if (entry.modifiers & ui::EF_COMMAND_DOWN)
       continue;
     non_search_accelerators.emplace_back(entry);
   }
-  for (size_t i = 0; i < kDisableWithNewMappingAcceleratorDataLength; ++i) {
-    const AcceleratorData& entry = kDisableWithNewMappingAcceleratorData[i];
+  for (const AcceleratorData& entry : kDisableWithNewMappingAcceleratorData) {
     if (entry.modifiers & ui::EF_COMMAND_DOWN)
       continue;
     non_search_accelerators.emplace_back(entry);
diff --git a/ash/capture_mode/capture_mode_session.cc b/ash/capture_mode/capture_mode_session.cc
index 924646c..d3a9629e 100644
--- a/ash/capture_mode/capture_mode_session.cc
+++ b/ash/capture_mode/capture_mode_session.cc
@@ -1648,6 +1648,16 @@
     return;
   }
 
+  // If the consent disclaimer is visible, let it handle key events.
+  if (disclaimer_) {
+    // The action button may still have a focus ring when we switch focus to the
+    // disclaimer, so clear it first.
+    if (focus_cycler_->HasFocus()) {
+      focus_cycler_->ClearFocus();
+    }
+    return;
+  }
+
   if (event->type() != ui::EventType::kKeyPressed) {
     return;
   }
diff --git a/ash/capture_mode/sunfish_unittest.cc b/ash/capture_mode/sunfish_unittest.cc
index d7283fc..563df8a 100644
--- a/ash/capture_mode/sunfish_unittest.cc
+++ b/ash/capture_mode/sunfish_unittest.cc
@@ -2927,4 +2927,50 @@
                   .GetDisclaimerWidget());
 }
 
+// Tests that the consent disclaimer can be properly navigated using the
+// keyboard.
+TEST_F(ScannerTest, KeyboardNavigationDisclaimer) {
+  base::HistogramTester histogram_tester;
+  Shell::Get()->session_controller()->GetActivePrefService()->SetBoolean(
+      kSunfishConsentDisclaimerAccepted, false);
+
+  ActionButtonView* smart_actions_button = GetSmartActionsButton();
+  ASSERT_TRUE(smart_actions_button);
+  auto* controller = CaptureModeController::Get();
+  CaptureModeSessionTestApi session_test_api(
+      controller->capture_mode_session());
+  ASSERT_EQ(session_test_api.GetActionButtons().size(), 2u);
+
+  // Use tab to navigate to the smart actions button.
+  auto* event_generator = GetEventGenerator();
+  SendKey(ui::VKEY_TAB, event_generator, ui::EF_SHIFT_DOWN, /*count=*/4);
+  ASSERT_EQ(CaptureModeSessionFocusCycler::FocusGroup::kActionButtons,
+            session_test_api.GetCurrentFocusGroup());
+  ASSERT_EQ(0u, session_test_api.GetCurrentFocusIndex());
+  ASSERT_EQ(session_test_api.GetActionButtons()[0], smart_actions_button);
+
+  // Press enter to open the consent disclaimer.
+  SendKey(ui::VKEY_RETURN, event_generator);
+  auto* disclaimer = session_test_api.GetDisclaimerWidget();
+  ASSERT_TRUE(disclaimer);
+
+  // Press tab once. The focus should shift to the decline button in the consent
+  // disclaimer.
+  SendKey(ui::VKEY_TAB, event_generator);
+  views::View* decline_button = disclaimer->GetContentsView()->GetViewByID(
+      kDisclaimerViewDeclineButtonId);
+  EXPECT_TRUE(decline_button->HasFocus());
+
+  // Press tab again. The accept button should now be focused.
+  SendKey(ui::VKEY_TAB, event_generator);
+  views::View* accept_button =
+      disclaimer->GetContentsView()->GetViewByID(kDisclaimerViewAcceptButtonId);
+  EXPECT_TRUE(accept_button->HasFocus());
+
+  // Press tab one more time. The focus should stay inside the disclaimer, and
+  // loop back around to the decline button.
+  SendKey(ui::VKEY_TAB, event_generator);
+  EXPECT_TRUE(decline_button->HasFocus());
+}
+
 }  // namespace ash
diff --git a/ash/public/cpp/accelerators.h b/ash/public/cpp/accelerators.h
index f8843ba6..ebdffa87 100644
--- a/ash/public/cpp/accelerators.h
+++ b/ash/public/cpp/accelerators.h
@@ -7,6 +7,8 @@
 
 #include <stddef.h>
 
+#include <array>
+
 #include "ash/public/cpp/accelerator_actions.h"
 #include "ash/public/cpp/ash_public_export.h"
 #include "base/functional/callback_forward.h"
@@ -39,7 +41,8 @@
 // If you plan on adding a new accelerator and want it displayed in the
 // Shortcuts app, please follow the instructions at:
 // `ash/webui/shortcut_customization_ui/backend/accelerator_layout_table.h`.
-ASH_PUBLIC_EXPORT inline constexpr AcceleratorData kAcceleratorData[] = {
+ASH_PUBLIC_EXPORT inline constexpr auto kAcceleratorData = std::to_array<
+    AcceleratorData>({
     {true, ui::VKEY_SPACE, ui::EF_CONTROL_DOWN,
      AcceleratorAction::kSwitchToLastUsedIme},
     {false, ui::VKEY_SPACE, ui::EF_CONTROL_DOWN,
@@ -350,14 +353,12 @@
     // Game Dashboard shortcut.
     {true, ui::VKEY_G, ui::EF_COMMAND_DOWN,
      AcceleratorAction::kToggleGameDashboard},
-};
-ASH_PUBLIC_EXPORT inline constexpr size_t kAcceleratorDataLength =
-    std::size(kAcceleratorData);
+});
 
 // Accelerators that are enabled/disabled with new accelerator mapping.
 // crbug.com/1067269
-ASH_PUBLIC_EXPORT inline constexpr AcceleratorData
-    kDisableWithNewMappingAcceleratorData[] = {
+ASH_PUBLIC_EXPORT inline constexpr auto kDisableWithNewMappingAcceleratorData =
+    std::to_array<AcceleratorData>({
         // Desk creation and removal:
         // Due to https://crbug.com/976487, Search + "=" is always automatically
         // rewritten to F12, and so is Search + "-" to F11. So we had to
@@ -372,14 +373,11 @@
          AcceleratorAction::kDesksNewDesk},
         {true, ui::VKEY_F11, ui::EF_SHIFT_DOWN,
          AcceleratorAction::kDesksRemoveCurrentDesk},
-};
-ASH_PUBLIC_EXPORT inline constexpr size_t
-    kDisableWithNewMappingAcceleratorDataLength =
-        std::size(kDisableWithNewMappingAcceleratorData);
+    });
 
 // Accelerators that are enabled with positional shortcut mapping.
-ASH_PUBLIC_EXPORT inline constexpr AcceleratorData
-    kEnableWithPositionalAcceleratorsData[] = {
+ASH_PUBLIC_EXPORT inline constexpr auto kEnableWithPositionalAcceleratorsData =
+    std::to_array<AcceleratorData>({
         // These are the desk shortcuts as advertised, but previously
         // they were implicitly implemented in terms of F11 and F12
         // due to event rewrites. Since the F-Key rewrites are deprecated
@@ -391,53 +389,46 @@
          AcceleratorAction::kDesksNewDesk},
         {true, ui::VKEY_OEM_MINUS, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN,
          AcceleratorAction::kDesksRemoveCurrentDesk},
-};
-ASH_PUBLIC_EXPORT inline constexpr size_t
-    kEnableWithPositionalAcceleratorsDataLength =
-        std::size(kEnableWithPositionalAcceleratorsData);
+    });
 
 // Accelerators that are enabled with improved desks keyboards shortcuts.
-ASH_PUBLIC_EXPORT inline constexpr AcceleratorData
-    kEnabledWithImprovedDesksKeyboardShortcutsAcceleratorData[] = {
-        // Indexed-desk activation:
-        {true, ui::VKEY_1, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN,
-         AcceleratorAction::kDesksActivate0},
-        {true, ui::VKEY_2, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN,
-         AcceleratorAction::kDesksActivate1},
-        {true, ui::VKEY_3, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN,
-         AcceleratorAction::kDesksActivate2},
-        {true, ui::VKEY_4, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN,
-         AcceleratorAction::kDesksActivate3},
-        {true, ui::VKEY_5, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN,
-         AcceleratorAction::kDesksActivate4},
-        {true, ui::VKEY_6, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN,
-         AcceleratorAction::kDesksActivate5},
-        {true, ui::VKEY_7, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN,
-         AcceleratorAction::kDesksActivate6},
-        {true, ui::VKEY_8, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN,
-         AcceleratorAction::kDesksActivate7},
-        // Toggle assign to all desks:
-        {true, ui::VKEY_A, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN,
-         AcceleratorAction::kDesksToggleAssignToAllDesks},
-};
-ASH_PUBLIC_EXPORT inline constexpr size_t
-    kEnabledWithImprovedDesksKeyboardShortcutsAcceleratorDataLength =
-        std::size(kEnabledWithImprovedDesksKeyboardShortcutsAcceleratorData);
+ASH_PUBLIC_EXPORT inline constexpr auto
+    kEnabledWithImprovedDesksKeyboardShortcutsAcceleratorData =
+        std::to_array<AcceleratorData>({
+            // Indexed-desk activation:
+            {true, ui::VKEY_1, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN,
+             AcceleratorAction::kDesksActivate0},
+            {true, ui::VKEY_2, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN,
+             AcceleratorAction::kDesksActivate1},
+            {true, ui::VKEY_3, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN,
+             AcceleratorAction::kDesksActivate2},
+            {true, ui::VKEY_4, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN,
+             AcceleratorAction::kDesksActivate3},
+            {true, ui::VKEY_5, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN,
+             AcceleratorAction::kDesksActivate4},
+            {true, ui::VKEY_6, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN,
+             AcceleratorAction::kDesksActivate5},
+            {true, ui::VKEY_7, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN,
+             AcceleratorAction::kDesksActivate6},
+            {true, ui::VKEY_8, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN,
+             AcceleratorAction::kDesksActivate7},
+            // Toggle assign to all desks:
+            {true, ui::VKEY_A, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN,
+             AcceleratorAction::kDesksToggleAssignToAllDesks},
+        });
 
 // Accelerators that are enabled with same app window cycling experiment.
-ASH_PUBLIC_EXPORT inline constexpr AcceleratorData
-    kEnableWithSameAppWindowCycleAcceleratorData[] = {
-        {true, ui::VKEY_OEM_3, ui::EF_ALT_DOWN,
-         AcceleratorAction::kCycleSameAppWindowsForward},
-        {true, ui::VKEY_OEM_3, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN,
-         AcceleratorAction::kCycleSameAppWindowsBackward},
-};
-ASH_PUBLIC_EXPORT inline constexpr size_t
-    kEnableWithSameAppWindowCycleAcceleratorDataLength =
-        std::size(kEnableWithSameAppWindowCycleAcceleratorData);
+ASH_PUBLIC_EXPORT inline constexpr auto
+    kEnableWithSameAppWindowCycleAcceleratorData =
+        std::to_array<AcceleratorData>({
+            {true, ui::VKEY_OEM_3, ui::EF_ALT_DOWN,
+             AcceleratorAction::kCycleSameAppWindowsForward},
+            {true, ui::VKEY_OEM_3, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN,
+             AcceleratorAction::kCycleSameAppWindowsBackward},
+        });
 
-ASH_PUBLIC_EXPORT inline constexpr AcceleratorData
-    kTilingWindowResizeAcceleratorData[] = {
+ASH_PUBLIC_EXPORT inline constexpr auto kTilingWindowResizeAcceleratorData =
+    std::to_array<AcceleratorData>({
         {true, ui::VKEY_OEM_COMMA, ui::EF_COMMAND_DOWN | ui::EF_CONTROL_DOWN,
          AcceleratorAction::kTilingWindowResizeLeft},
         {true, ui::VKEY_OEM_PERIOD, ui::EF_COMMAND_DOWN | ui::EF_CONTROL_DOWN,
@@ -446,10 +437,7 @@
          AcceleratorAction::kTilingWindowResizeUp},
         {true, ui::VKEY_OEM_2, ui::EF_COMMAND_DOWN | ui::EF_CONTROL_DOWN,
          AcceleratorAction::kTilingWindowResizeDown},
-};
-ASH_PUBLIC_EXPORT inline constexpr size_t
-    kTilingWindowResizeAcceleratorDataLength =
-        std::size(kTilingWindowResizeAcceleratorData);
+    });
 
 ASH_PUBLIC_EXPORT inline constexpr AcceleratorData kGeminiAcceleratorData[] = {
     {true, ui::VKEY_F23, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN,
diff --git a/ash/public/cpp/style/color_provider.h b/ash/public/cpp/style/color_provider.h
index 4ee0847..04fd7f0 100644
--- a/ash/public/cpp/style/color_provider.h
+++ b/ash/public/cpp/style/color_provider.h
@@ -23,35 +23,23 @@
 
   // Types of Controls layer.
   enum class ControlsLayerType {
-    kHairlineBorderColor,
     kControlBackgroundColorActive,
     kControlBackgroundColorInactive,
-    kControlBackgroundColorAlert,
-    kControlBackgroundColorWarning,
-    kControlBackgroundColorPositive,
-    kFocusAuraColor,
     kFocusRingColor,
   };
 
   enum class ContentLayerType {
-    kScrollBarColor,
     kSeparatorColor,
 
     kTextColorPrimary,
-    // Inverted `kTextColorPrimary` on current color mode.
-    kInvertedTextColorPrimary,
     kTextColorSecondary,
-    kTextColorAlert,
-    kTextColorWarning,
-    kTextColorPositive,
     kTextColorURL,
-    kTextColorSuggestion,
 
     kIconColorPrimary,
     kIconColorSecondary,
     kIconColorAlert,
     kIconColorWarning,
-    kIconColorPositive,
+
     // Color for prominent icon, e.g, "Add connection" icon button inside
     // VPN detailed view.
     kIconColorProminent,
@@ -61,9 +49,6 @@
 
     // The default color for button labels.
     kButtonLabelColor,
-    // Inverted `kButtonLabelColor` on current color mode.
-    kInvertedButtonLabelColor,
-    kButtonLabelColorPrimary,
 
     // Color for blue button labels, e.g, 'Retry' button of the system toast.
     kButtonLabelColorBlue,
@@ -71,49 +56,11 @@
     kButtonIconColor,
     kButtonIconColorPrimary,
 
-    // Color for app state indicator.
-    kAppStateIndicatorColor,
-    kAppStateIndicatorColorInactive,
-
-    // Color for slider.
-    kSliderColorActive,
-    kSliderColorInactive,
-
-    // Color for radio button.
-    kRadioColorActive,
-    kRadioColorInactive,
-
     // Color for toggle button.
     kSwitchKnobColorActive,
     kSwitchKnobColorInactive,
     kSwitchTrackColorActive,
     kSwitchTrackColorInactive,
-
-    // Color for current active desk's border.
-    kCurrentDeskColor,
-
-    // Color for the battery's badge (bolt, unreliable, X).
-    kBatteryBadgeColor,
-
-    // Color for the switch access's back button.
-    kSwitchAccessInnerStrokeColor,
-    kSwitchAccessOuterStrokeColor,
-
-    // Color for the media controls.
-    kProgressBarColorForeground,
-    kProgressBarColorBackground,
-
-    // Color used to highlight a hovered view.
-    kHighlightColorHover,
-
-    // Color for the background of battery system info view.
-    kBatterySystemInfoBackgroundColor,
-
-    // Color for the battery icon in the system info view.
-    kBatterySystemInfoIconColor,
-
-    // Color of the capture region in the capture session.
-    kCaptureRegionColor,
   };
 
   static ColorProvider* Get();
diff --git a/ash/style/ash_color_provider.cc b/ash/style/ash_color_provider.cc
index 9b06cc2..d1cc09f 100644
--- a/ash/style/ash_color_provider.cc
+++ b/ash/style/ash_color_provider.cc
@@ -51,20 +51,10 @@
   DCHECK(color_provider);
 
   switch (type) {
-    case ControlsLayerType::kHairlineBorderColor:
-      return color_provider->GetColor(kColorAshHairlineBorderColor);
     case ControlsLayerType::kControlBackgroundColorActive:
       return color_provider->GetColor(kColorAshControlBackgroundColorActive);
     case ControlsLayerType::kControlBackgroundColorInactive:
       return color_provider->GetColor(kColorAshControlBackgroundColorInactive);
-    case ControlsLayerType::kControlBackgroundColorAlert:
-      return color_provider->GetColor(kColorAshControlBackgroundColorAlert);
-    case ControlsLayerType::kControlBackgroundColorWarning:
-      return color_provider->GetColor(kColorAshControlBackgroundColorWarning);
-    case ControlsLayerType::kControlBackgroundColorPositive:
-      return color_provider->GetColor(kColorAshControlBackgroundColorPositive);
-    case ControlsLayerType::kFocusAuraColor:
-      return color_provider->GetColor(kColorAshFocusAuraColor);
     case ControlsLayerType::kFocusRingColor:
       return color_provider->GetColor(ui::kColorAshFocusRing);
   }
@@ -79,12 +69,6 @@
       return color_provider->GetColor(kColorAshIconColorSecondary);
     case ContentLayerType::kIconColorSecondaryBackground:
       return color_provider->GetColor(kColorAshIconColorSecondaryBackground);
-    case ContentLayerType::kScrollBarColor:
-      return color_provider->GetColor(kColorAshScrollBarColor);
-    case ContentLayerType::kSliderColorInactive:
-      return color_provider->GetColor(kColorAshSliderColorInactive);
-    case ContentLayerType::kRadioColorInactive:
-      return color_provider->GetColor(kColorAshRadioColorInactive);
     case ContentLayerType::kSwitchKnobColorInactive:
       return color_provider->GetColor(kColorAshSwitchKnobColorInactive);
     case ContentLayerType::kSwitchTrackColorInactive:
@@ -93,71 +77,26 @@
       return color_provider->GetColor(kColorAshButtonLabelColorBlue);
     case ContentLayerType::kTextColorURL:
       return color_provider->GetColor(kColorAshTextColorURL);
-    case ContentLayerType::kSliderColorActive:
-      return color_provider->GetColor(kColorAshSliderColorActive);
-    case ContentLayerType::kRadioColorActive:
-      return color_provider->GetColor(kColorAshRadioColorActive);
     case ContentLayerType::kSwitchKnobColorActive:
       return color_provider->GetColor(kColorAshSwitchKnobColorActive);
-    case ContentLayerType::kProgressBarColorForeground:
-      return color_provider->GetColor(kColorAshProgressBarColorForeground);
-    case ContentLayerType::kProgressBarColorBackground:
-      return color_provider->GetColor(kColorAshProgressBarColorBackground);
-    case ContentLayerType::kCaptureRegionColor:
-      return color_provider->GetColor(kColorAshCaptureRegionColor);
     case ContentLayerType::kSwitchTrackColorActive:
       return color_provider->GetColor(kColorAshSwitchTrackColorActive);
-    case ContentLayerType::kButtonLabelColorPrimary:
-      return color_provider->GetColor(kColorAshButtonLabelColorPrimary);
     case ContentLayerType::kButtonIconColorPrimary:
       return color_provider->GetColor(kColorAshButtonIconColorPrimary);
-    case ContentLayerType::kBatteryBadgeColor:
-      return color_provider->GetColor(kColorAshBatteryBadgeColor);
-    case ContentLayerType::kAppStateIndicatorColorInactive:
-      return color_provider->GetColor(kColorAshAppStateIndicatorColorInactive);
-    case ContentLayerType::kCurrentDeskColor:
-      return color_provider->GetColor(kColorAshCurrentDeskColor);
-    case ContentLayerType::kSwitchAccessInnerStrokeColor:
-      return color_provider->GetColor(kColorAshSwitchAccessInnerStrokeColor);
-    case ContentLayerType::kSwitchAccessOuterStrokeColor:
-      return color_provider->GetColor(kColorAshSwitchAccessOuterStrokeColor);
-    case ContentLayerType::kHighlightColorHover:
-      return color_provider->GetColor(kColorAshHighlightColorHover);
-    case ContentLayerType::kAppStateIndicatorColor:
-      return color_provider->GetColor(kColorAshAppStateIndicatorColor);
     case ContentLayerType::kButtonIconColor:
       return color_provider->GetColor(kColorAshButtonIconColor);
     case ContentLayerType::kButtonLabelColor:
       return color_provider->GetColor(kColorAshButtonLabelColor);
-    case ContentLayerType::kBatterySystemInfoBackgroundColor:
-      return color_provider->GetColor(
-          kColorAshBatterySystemInfoBackgroundColor);
-    case ContentLayerType::kBatterySystemInfoIconColor:
-      return color_provider->GetColor(kColorAshBatterySystemInfoIconColor);
-    case ContentLayerType::kInvertedTextColorPrimary:
-      return color_provider->GetColor(kColorAshInvertedTextColorPrimary);
-    case ContentLayerType::kInvertedButtonLabelColor:
-      return color_provider->GetColor(kColorAshInvertedButtonLabelColor);
-    case ContentLayerType::kTextColorSuggestion:
-      return color_provider->GetColor(kColorAshTextColorSuggestion);
     case ContentLayerType::kTextColorPrimary:
       return color_provider->GetColor(kColorAshTextColorPrimary);
     case ContentLayerType::kTextColorSecondary:
       return color_provider->GetColor(kColorAshTextColorSecondary);
-    case ContentLayerType::kTextColorAlert:
-      return color_provider->GetColor(kColorAshTextColorAlert);
-    case ContentLayerType::kTextColorWarning:
-      return color_provider->GetColor(kColorAshTextColorWarning);
-    case ContentLayerType::kTextColorPositive:
-      return color_provider->GetColor(kColorAshTextColorPositive);
     case ContentLayerType::kIconColorPrimary:
       return color_provider->GetColor(kColorAshIconColorPrimary);
     case ContentLayerType::kIconColorAlert:
       return color_provider->GetColor(kColorAshIconColorAlert);
     case ContentLayerType::kIconColorWarning:
       return color_provider->GetColor(kColorAshIconColorWarning);
-    case ContentLayerType::kIconColorPositive:
-      return color_provider->GetColor(kColorAshIconColorPositive);
     case ContentLayerType::kIconColorProminent:
       return color_provider->GetColor(kColorAshIconColorProminent);
   }
diff --git a/ash/style/ash_color_provider_unittest.cc b/ash/style/ash_color_provider_unittest.cc
index 27a267a..75d98d0 100644
--- a/ash/style/ash_color_provider_unittest.cc
+++ b/ash/style/ash_color_provider_unittest.cc
@@ -101,49 +101,21 @@
     testing::ValuesIn<ColorsTestCase<ColorProvider::ControlsLayerType>>(
         {// Dark mode
          {ColorMode::kDark,
-          ColorProvider::ControlsLayerType::kHairlineBorderColor,
-          SkColorSetARGB(0x24, 0xFF, 0xFF, 0xFF)},
-         {ColorMode::kDark,
           ColorProvider::ControlsLayerType::kControlBackgroundColorActive,
           SkColorSetRGB(0x8A, 0xB4, 0xF8)},
          {ColorMode::kDark,
           ColorProvider::ControlsLayerType::kControlBackgroundColorInactive,
           SkColorSetARGB(0x1A, 0xFF, 0xFF, 0xFF)},
-         {ColorMode::kDark,
-          ColorProvider::ControlsLayerType::kControlBackgroundColorAlert,
-          SkColorSetRGB(0xF2, 0x8B, 0x82)},
-         {ColorMode::kDark,
-          ColorProvider::ControlsLayerType::kControlBackgroundColorWarning,
-          SkColorSetRGB(0xFD, 0xD6, 0x63)},
-         {ColorMode::kDark,
-          ColorProvider::ControlsLayerType::kControlBackgroundColorPositive,
-          SkColorSetRGB(0x81, 0xC9, 0x95)},
-         {ColorMode::kDark, ColorProvider::ControlsLayerType::kFocusAuraColor,
-          SkColorSetARGB(0x3D, 0x8A, 0xB4, 0xF8)},
          {ColorMode::kDark, ColorProvider::ControlsLayerType::kFocusRingColor,
           SkColorSetRGB(0x8A, 0xB4, 0xF8)},
 
          // Light mode
          {ColorMode::kLight,
-          ColorProvider::ControlsLayerType::kHairlineBorderColor,
-          SkColorSetARGB(0x24, 0x0, 0x0, 0x0)},
-         {ColorMode::kLight,
           ColorProvider::ControlsLayerType::kControlBackgroundColorActive,
           SkColorSetRGB(0x1A, 0x73, 0xE8)},
          {ColorMode::kLight,
           ColorProvider::ControlsLayerType::kControlBackgroundColorInactive,
           SkColorSetARGB(0x0D, 0x0, 0x0, 0x0)},
-         {ColorMode::kLight,
-          ColorProvider::ControlsLayerType::kControlBackgroundColorAlert,
-          SkColorSetRGB(0xD9, 0x30, 0x25)},
-         {ColorMode::kLight,
-          ColorProvider::ControlsLayerType::kControlBackgroundColorWarning,
-          SkColorSetRGB(0xE3, 0x74, 0x0)},
-         {ColorMode::kLight,
-          ColorProvider::ControlsLayerType::kControlBackgroundColorPositive,
-          SkColorSetRGB(0x18, 0x80, 0x38)},
-         {ColorMode::kLight, ColorProvider::ControlsLayerType::kFocusAuraColor,
-          SkColorSetARGB(0x3D, 0x1A, 0x73, 0xE8)},
          {ColorMode::kLight, ColorProvider::ControlsLayerType::kFocusRingColor,
           SkColorSetRGB(0x1A, 0x73, 0xE8)}}));
 
@@ -165,26 +137,14 @@
     AshColorProviderContentTest,
     testing::ValuesIn<ColorsTestCase<ColorProvider::ContentLayerType>>(
         {// Light colors
-         {ColorMode::kLight, ColorProvider::ContentLayerType::kScrollBarColor,
-          SkColorSetRGB(0x5F, 0x63, 0x68)},
          {ColorMode::kLight, ColorProvider::ContentLayerType::kSeparatorColor,
           SkColorSetARGB(0x24, 0x0, 0x0, 0x0)},
 
          {ColorMode::kLight, ColorProvider::ContentLayerType::kTextColorPrimary,
           SkColorSetRGB(0x20, 0x21, 0x24)},
          {ColorMode::kLight,
-          ColorProvider::ContentLayerType::kInvertedTextColorPrimary,
-          SkColorSetRGB(0xE8, 0xEA, 0xED)},
-         {ColorMode::kLight,
           ColorProvider::ContentLayerType::kTextColorSecondary,
           SkColorSetRGB(0x5F, 0x63, 0x68)},
-         {ColorMode::kLight, ColorProvider::ContentLayerType::kTextColorAlert,
-          SkColorSetRGB(0xD9, 0x30, 0x25)},
-         {ColorMode::kLight, ColorProvider::ContentLayerType::kTextColorWarning,
-          SkColorSetRGB(0xE3, 0x74, 0x0)},
-         {ColorMode::kLight,
-          ColorProvider::ContentLayerType::kTextColorPositive,
-          SkColorSetRGB(0x18, 0x80, 0x38)},
          {ColorMode::kLight, ColorProvider::ContentLayerType::kTextColorURL,
           SkColorSetRGB(0x1A, 0x73, 0xE8)},
 
@@ -197,9 +157,7 @@
           SkColorSetRGB(0xD9, 0x30, 0x25)},
          {ColorMode::kLight, ColorProvider::ContentLayerType::kIconColorWarning,
           SkColorSetRGB(0xE3, 0x74, 0x0)},
-         {ColorMode::kLight,
-          ColorProvider::ContentLayerType::kIconColorPositive,
-          SkColorSetRGB(0x18, 0x80, 0x38)},
+
          {ColorMode::kLight,
           ColorProvider::ContentLayerType::kIconColorProminent,
           SkColorSetRGB(0x1A, 0x73, 0xE8)},
@@ -210,12 +168,6 @@
 
          {ColorMode::kLight, ColorProvider::ContentLayerType::kButtonLabelColor,
           SkColorSetRGB(0x20, 0x21, 0x24)},
-         {ColorMode::kLight,
-          ColorProvider::ContentLayerType::kInvertedButtonLabelColor,
-          SkColorSetRGB(0xE8, 0xEA, 0xED)},
-         {ColorMode::kLight,
-          ColorProvider::ContentLayerType::kButtonLabelColorPrimary,
-          SkColorSetRGB(0xE8, 0xEA, 0xED)},
 
          {ColorMode::kLight,
           ColorProvider::ContentLayerType::kButtonLabelColorBlue,
@@ -228,26 +180,6 @@
           SkColorSetRGB(0xE8, 0xEA, 0xED)},
 
          {ColorMode::kLight,
-          ColorProvider::ContentLayerType::kAppStateIndicatorColor,
-          SkColorSetRGB(0x20, 0x21, 0x24)},
-         {ColorMode::kLight,
-          ColorProvider::ContentLayerType::kAppStateIndicatorColorInactive,
-          SkColorSetARGB(0x60, 0x20, 0x21, 0x24)},
-
-         {ColorMode::kLight,
-          ColorProvider::ContentLayerType::kSliderColorActive,
-          SkColorSetRGB(0x1A, 0x73, 0xE8)},
-         {ColorMode::kLight,
-          ColorProvider::ContentLayerType::kSliderColorInactive,
-          SkColorSetRGB(0x5F, 0x63, 0x68)},
-
-         {ColorMode::kLight, ColorProvider::ContentLayerType::kRadioColorActive,
-          SkColorSetRGB(0x1A, 0x73, 0xE8)},
-         {ColorMode::kLight,
-          ColorProvider::ContentLayerType::kRadioColorInactive,
-          SkColorSetRGB(0x5F, 0x63, 0x68)},
-
-         {ColorMode::kLight,
           ColorProvider::ContentLayerType::kSwitchKnobColorActive,
           SkColorSetRGB(0x1A, 0x73, 0xE8)},
          {ColorMode::kLight,
@@ -260,63 +192,15 @@
           ColorProvider::ContentLayerType::kSwitchTrackColorInactive,
           SkColorSetARGB(0x4C, 0x5F, 0x63, 0x68)},
 
-         {ColorMode::kLight, ColorProvider::ContentLayerType::kCurrentDeskColor,
-          SkColorSetRGB(0x0, 0x0, 0x0)},
-
-         {ColorMode::kLight,
-          ColorProvider::ContentLayerType::kBatteryBadgeColor,
-          SkColorSetRGB(0xE8, 0xEA, 0xED)},
-
-         {ColorMode::kLight,
-          ColorProvider::ContentLayerType::kSwitchAccessInnerStrokeColor,
-          SkColorSetRGB(0x8A, 0xB4, 0xF8)},
-         {ColorMode::kLight,
-          ColorProvider::ContentLayerType::kSwitchAccessOuterStrokeColor,
-          SkColorSetRGB(0x17, 0x4E, 0xA6)},
-
-         {ColorMode::kLight,
-          ColorProvider::ContentLayerType::kProgressBarColorForeground,
-          SkColorSetRGB(0x1A, 0x73, 0xE8)},
-         {ColorMode::kLight,
-          ColorProvider::ContentLayerType::kProgressBarColorBackground,
-          SkColorSetARGB(0x4C, 0x1A, 0x73, 0xE8)},
-
-         {ColorMode::kLight,
-          ColorProvider::ContentLayerType::kHighlightColorHover,
-          SkColorSetARGB(0x14, 0x0, 0x0, 0x0)},
-
-         {ColorMode::kLight,
-          ColorProvider::ContentLayerType::kBatterySystemInfoBackgroundColor,
-          SkColorSetRGB(0x18, 0x80, 0x38)},
-
-         {ColorMode::kLight,
-          ColorProvider::ContentLayerType::kBatterySystemInfoIconColor,
-          SkColorSetRGB(0xE8, 0xEA, 0xED)},
-
-         {ColorMode::kLight,
-          ColorProvider::ContentLayerType::kCaptureRegionColor,
-          SkColorSetARGB(0x4C, 0x1A, 0x73, 0xE8)},
-
          // Dark colors
-         {ColorMode::kDark, ColorProvider::ContentLayerType::kScrollBarColor,
-          SkColorSetRGB(0xE8, 0xEA, 0xED)},
          {ColorMode::kDark, ColorProvider::ContentLayerType::kSeparatorColor,
           SkColorSetARGB(0x24, 0xFF, 0xFF, 0xFF)},
 
          {ColorMode::kDark, ColorProvider::ContentLayerType::kTextColorPrimary,
           SkColorSetRGB(0xE8, 0xEA, 0xED)},
          {ColorMode::kDark,
-          ColorProvider::ContentLayerType::kInvertedTextColorPrimary,
-          SkColorSetRGB(0x20, 0x21, 0x24)},
-         {ColorMode::kDark,
           ColorProvider::ContentLayerType::kTextColorSecondary,
           SkColorSetRGB(0xBD, 0xC1, 0xC6)},
-         {ColorMode::kDark, ColorProvider::ContentLayerType::kTextColorAlert,
-          SkColorSetRGB(0xF2, 0x8B, 0x82)},
-         {ColorMode::kDark, ColorProvider::ContentLayerType::kTextColorWarning,
-          SkColorSetRGB(0xFD, 0xD6, 0x63)},
-         {ColorMode::kDark, ColorProvider::ContentLayerType::kTextColorPositive,
-          SkColorSetRGB(0x81, 0xC9, 0x95)},
          {ColorMode::kDark, ColorProvider::ContentLayerType::kTextColorURL,
           SkColorSetRGB(0x8A, 0xB4, 0xF8)},
 
@@ -329,8 +213,6 @@
           SkColorSetRGB(0xF2, 0x8B, 0x82)},
          {ColorMode::kDark, ColorProvider::ContentLayerType::kIconColorWarning,
           SkColorSetRGB(0xFD, 0xD6, 0x63)},
-         {ColorMode::kDark, ColorProvider::ContentLayerType::kIconColorPositive,
-          SkColorSetRGB(0x81, 0xC9, 0x95)},
          {ColorMode::kDark,
           ColorProvider::ContentLayerType::kIconColorProminent,
           SkColorSetRGB(0x8A, 0xB4, 0xF8)},
@@ -341,12 +223,6 @@
 
          {ColorMode::kDark, ColorProvider::ContentLayerType::kButtonLabelColor,
           SkColorSetRGB(0xE8, 0xEA, 0xED)},
-         {ColorMode::kDark,
-          ColorProvider::ContentLayerType::kInvertedButtonLabelColor,
-          SkColorSetRGB(0x20, 0x21, 0x24)},
-         {ColorMode::kDark,
-          ColorProvider::ContentLayerType::kButtonLabelColorPrimary,
-          SkColorSetRGB(0x20, 0x21, 0x24)},
 
          {ColorMode::kDark,
           ColorProvider::ContentLayerType::kButtonLabelColorBlue,
@@ -359,25 +235,6 @@
           SkColorSetRGB(0x20, 0x21, 0x24)},
 
          {ColorMode::kDark,
-          ColorProvider::ContentLayerType::kAppStateIndicatorColor,
-          SkColorSetRGB(0xE8, 0xEA, 0xED)},
-         {ColorMode::kDark,
-          ColorProvider::ContentLayerType::kAppStateIndicatorColorInactive,
-          SkColorSetARGB(0x60, 0xE8, 0xEA, 0xED)},
-
-         {ColorMode::kDark, ColorProvider::ContentLayerType::kSliderColorActive,
-          SkColorSetRGB(0x8A, 0xB4, 0xF8)},
-         {ColorMode::kDark,
-          ColorProvider::ContentLayerType::kSliderColorInactive,
-          SkColorSetRGB(0xE8, 0xEA, 0xED)},
-
-         {ColorMode::kDark, ColorProvider::ContentLayerType::kRadioColorActive,
-          SkColorSetRGB(0x8A, 0xB4, 0xF8)},
-         {ColorMode::kDark,
-          ColorProvider::ContentLayerType::kRadioColorInactive,
-          SkColorSetRGB(0xE8, 0xEA, 0xED)},
-
-         {ColorMode::kDark,
           ColorProvider::ContentLayerType::kSwitchKnobColorActive,
           SkColorSetRGB(0x8A, 0xB4, 0xF8)},
          {ColorMode::kDark,
@@ -388,43 +245,7 @@
           SkColorSetARGB(0x4C, 0x8A, 0xB4, 0xF8)},
          {ColorMode::kDark,
           ColorProvider::ContentLayerType::kSwitchTrackColorInactive,
-          SkColorSetARGB(0x4C, 0xE8, 0xEA, 0xED)},
-
-         {ColorMode::kDark, ColorProvider::ContentLayerType::kCurrentDeskColor,
-          SkColorSetRGB(0xFF, 0xFF, 0xFF)},
-
-         {ColorMode::kDark, ColorProvider::ContentLayerType::kBatteryBadgeColor,
-          SkColorSetRGB(0x20, 0x21, 0x24)},
-
-         {ColorMode::kDark,
-          ColorProvider::ContentLayerType::kSwitchAccessInnerStrokeColor,
-          SkColorSetRGB(0x8A, 0xB4, 0xF8)},
-         {ColorMode::kDark,
-          ColorProvider::ContentLayerType::kSwitchAccessOuterStrokeColor,
-          SkColorSetRGB(0x17, 0x4E, 0xA6)},
-
-         {ColorMode::kDark,
-          ColorProvider::ContentLayerType::kProgressBarColorForeground,
-          SkColorSetRGB(0x8A, 0xB4, 0xF8)},
-         {ColorMode::kDark,
-          ColorProvider::ContentLayerType::kProgressBarColorBackground,
-          SkColorSetARGB(0x4C, 0x8A, 0xB4, 0xF8)},
-
-         {ColorMode::kDark,
-          ColorProvider::ContentLayerType::kHighlightColorHover,
-          SkColorSetARGB(0xD, 0xFF, 0xFF, 0xFF)},
-
-         {ColorMode::kDark,
-          ColorProvider::ContentLayerType::kBatterySystemInfoBackgroundColor,
-          SkColorSetRGB(0x81, 0xC9, 0x95)},
-
-         {ColorMode::kDark,
-          ColorProvider::ContentLayerType::kBatterySystemInfoIconColor,
-          SkColorSetRGB(0x20, 0x21, 0x24)},
-
-         {ColorMode::kDark,
-          ColorProvider::ContentLayerType::kCaptureRegionColor,
-          SkColorSetARGB(0x4C, 0x8A, 0xB4, 0xF8)}}));
+          SkColorSetARGB(0x4C, 0xE8, 0xEA, 0xED)}}));
 
 }  // namespace
 
diff --git a/ash/webui/shortcut_customization_ui/backend/accelerator_layout_table_unittest.cc b/ash/webui/shortcut_customization_ui/backend/accelerator_layout_table_unittest.cc
index 0eac2ca..9a76913 100644
--- a/ash/webui/shortcut_customization_ui/backend/accelerator_layout_table_unittest.cc
+++ b/ash/webui/shortcut_customization_ui/backend/accelerator_layout_table_unittest.cc
@@ -120,8 +120,7 @@
 // exception list kAshAcceleratorsWithoutLayout.
 TEST_F(AcceleratorLayoutMetadataTest,
        AshAcceleratorsNotInAllowedListShouldHaveLayouts) {
-  for (size_t i = 0; i < ash::kAcceleratorDataLength; ++i) {
-    const ash::AcceleratorData& accel_data = ash::kAcceleratorData[i];
+  for (const ash::AcceleratorData& accel_data : ash::kAcceleratorData) {
     if (ShouldNotHaveLayouts(accel_data.action)) {
       EXPECT_FALSE(HasLayouts(accel_data.action))
           << ToActionName(accel_data.action)
@@ -151,22 +150,18 @@
 //    output.
 TEST_F(AcceleratorLayoutMetadataTest, ModifyAcceleratorShouldUpdateLayout) {
   std::vector<ash::AcceleratorData> ash_accelerators;
-  for (size_t i = 0; i < ash::kAcceleratorDataLength; ++i) {
-    ash_accelerators.emplace_back(ash::kAcceleratorData[i]);
+  for (const ash::AcceleratorData& data : ash::kAcceleratorData) {
+    ash_accelerators.emplace_back(data);
   }
-  for (size_t i = 0; i < ash::kDisableWithNewMappingAcceleratorDataLength;
-       ++i) {
-    ash_accelerators.emplace_back(
-        ash::kDisableWithNewMappingAcceleratorData[i]);
+  for (const ash::AcceleratorData& data :
+       ash::kDisableWithNewMappingAcceleratorData) {
+    ash_accelerators.emplace_back(data);
   }
 
   if (::features::IsImprovedKeyboardShortcutsEnabled()) {
-    for (size_t i = 0;
-         i <
-         ash::kEnabledWithImprovedDesksKeyboardShortcutsAcceleratorDataLength;
-         ++i) {
-      ash_accelerators.emplace_back(
-          ash::kEnabledWithImprovedDesksKeyboardShortcutsAcceleratorData[i]);
+    for (const AcceleratorData& data :
+         ash::kEnabledWithImprovedDesksKeyboardShortcutsAcceleratorData) {
+      ash_accelerators.emplace_back(data);
     }
   }
 
diff --git a/ash/webui/shortcut_customization_ui/resources/js/accelerator_row.html b/ash/webui/shortcut_customization_ui/resources/js/accelerator_row.html
index bb9fb31a..369c6237 100644
--- a/ash/webui/shortcut_customization_ui/resources/js/accelerator_row.html
+++ b/ash/webui/shortcut_customization_ui/resources/js/accelerator_row.html
@@ -1,4 +1,4 @@
-<style include="shortcut-customization-shared">
+<style include="shortcut-customization-shared cr-shared-style">
   #container {
     align-items: flex-start;
     column-gap: 24px;
@@ -48,11 +48,14 @@
   }
 
   #descriptionText {
-    align-items: center;
+    align-content: center;
+    -webkit-box-orient: vertical;
+    -webkit-line-clamp: 3;
     color: var(--cros-text-color-primary);
-    display: flex;
+    display: -webkit-box;
     font: var(--cros-body-2-font);
     height: 62px;
+    overflow: hidden;
     padding: 0; /* Remove padding coming from <th> tag. */
     text-align: initial;
   }
@@ -81,13 +84,24 @@
   #noShortcutAssignedContainer[hidden] {
     display: none;
   }
+
+  paper-tooltip {
+    --paper-tooltip-min-width: 0;
+  }
 </style>
 
 <tr id="container" tabindex="-1" role="row"
     on-focus="onFocusOrMouseEnter" on-blur="onBlur"
     on-mouseenter="onFocusOrMouseEnter"
     aria-label$="[[getAriaLabel(description, acceleratorInfos)]]">
-  <th id="descriptionText" scope="row">[[description]]</th>
+  <th id="descriptionText" on-mouseenter="onMouseEnterDescriptionText_" scope="row">[[description]]</th>
+  <paper-tooltip
+      hidden="[[!isEllipsisActive_]]"
+      fit-to-visible-bounds
+      offset="0"
+      for="descriptionText">
+    [[description]]
+  </paper-tooltip>
   <td>
     <template is="dom-if" if="[[isDefaultLayout(layoutStyle)]]">
       <template is="dom-repeat" items="[[acceleratorInfos]]" as="item"
diff --git a/ash/webui/shortcut_customization_ui/resources/js/accelerator_row.ts b/ash/webui/shortcut_customization_ui/resources/js/accelerator_row.ts
index 5dccbd6..8064a56 100644
--- a/ash/webui/shortcut_customization_ui/resources/js/accelerator_row.ts
+++ b/ash/webui/shortcut_customization_ui/resources/js/accelerator_row.ts
@@ -7,7 +7,9 @@
 import '/strings.m.js';
 import '../css/shortcut_customization_shared.css.js';
 import 'chrome://resources/ash/common/cr_elements/cr_input/cr_input.js';
+import 'chrome://resources/ash/common/cr_elements/cr_shared_style.css.js';
 import 'chrome://resources/polymer/v3_0/iron-icon/iron-icon.js';
+import 'chrome://resources/polymer/v3_0/paper-tooltip/paper-tooltip.js';
 
 import {I18nMixin} from 'chrome://resources/ash/common/cr_elements/i18n_mixin.js';
 import {strictQuery} from 'chrome://resources/ash/common/typescript_utils/strict_query.js';
@@ -27,6 +29,13 @@
   source: AcceleratorSource,
 }>;
 
+export interface AcceleratorRowElement {
+  $: {
+    descriptionText: HTMLElement,
+    container: HTMLElement,
+  };
+}
+
 declare global {
   interface HTMLElementEventMap {
     'show-edit-dialog': ShowEditDialogEvent;
@@ -76,6 +85,11 @@
         value: 0,
         observer: AcceleratorRowElement.prototype.onSourceChanged,
       },
+
+      isEllipsisActive_: {
+        type: Boolean,
+        value: false,
+      },
     };
   }
 
@@ -90,6 +104,7 @@
       AcceleratorLookupManager.getInstance();
   private shortcutInterfaceProvider: ShortcutProviderInterface =
       getShortcutProvider();
+  private isEllipsisActive_: boolean;
 
   override async connectedCallback(): Promise<void> {
     super.connectedCallback();
@@ -211,6 +226,15 @@
     return this.i18n('editButtonForRow', this.description);
   }
 
+  private onMouseEnterDescriptionText_(): void {
+    const descriptionText = this.$.descriptionText;
+    const container = this.$.container;
+    console.log(container!.clientHeight);
+    console.log(descriptionText!.scrollHeight);
+    this.isEllipsisActive_ =
+        container.clientHeight < descriptionText.scrollHeight;
+  }
+
   static get template(): HTMLTemplateElement {
     return getTemplate();
   }
diff --git a/ash/wm/snap_group/OWNERS b/ash/wm/snap_group/OWNERS
index 7fafff9..a81589e 100644
--- a/ash/wm/snap_group/OWNERS
+++ b/ash/wm/snap_group/OWNERS
@@ -1,2 +1 @@
-michelefan@chromium.org
 sophiewen@chromium.org
\ No newline at end of file
diff --git a/ash/wm/splitview/OWNERS b/ash/wm/splitview/OWNERS
index d4088d0..7c889f6 100644
--- a/ash/wm/splitview/OWNERS
+++ b/ash/wm/splitview/OWNERS
@@ -1,3 +1,2 @@
-michelefan@chromium.org
 sophiewen@chromium.org
-xdai@chromium.org
+xdai@chromium.org
\ No newline at end of file
diff --git a/base/command_line.cc b/base/command_line.cc
index 3631cee..5c687fe8 100644
--- a/base/command_line.cc
+++ b/base/command_line.cc
@@ -61,6 +61,10 @@
 #endif
 size_t switch_prefix_count = std::size(kSwitchPrefixes);
 
+bool IsSwitchNameValid(std::string_view switch_name) {
+  return ToLowerASCII(switch_name) == switch_name;
+}
+
 #if BUILDFLAG(IS_WIN)
 // Switch string that specifies the single argument to the command line.
 // If present, everything after this switch is interpreted as a single
@@ -338,7 +342,7 @@
 }
 
 bool CommandLine::HasSwitch(std::string_view switch_string) const {
-  DCHECK_EQ(ToLowerASCII(switch_string), switch_string);
+  CHECK(IsSwitchNameValid(switch_string), base::NotFatalUntil::M134);
   return Contains(switches_, switch_string);
 }
 
@@ -370,7 +374,8 @@
 
 CommandLine::StringType CommandLine::GetSwitchValueNative(
     std::string_view switch_string) const {
-  DCHECK_EQ(ToLowerASCII(switch_string), switch_string);
+  CHECK(IsSwitchNameValid(switch_string), base::NotFatalUntil::M134);
+
   auto result = switches_.find(switch_string);
   return result == switches_.end() ? StringType() : result->second;
 }
@@ -432,13 +437,15 @@
 #if BUILDFLAG(ENABLE_COMMANDLINE_SEQUENCE_CHECKS)
   sequence_checker_.Check();
 #endif
+  CHECK(IsSwitchNameValid(switch_key_without_prefix),
+        base::NotFatalUntil::M134);
+
 #if BUILDFLAG(IS_WIN)
   StringType switch_key_native = UTF8ToWide(switch_key_without_prefix);
 #elif BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA)
   StringType switch_key_native(switch_key_without_prefix);
 #endif
 
-  DCHECK_EQ(ToLowerASCII(switch_key_without_prefix), switch_key_without_prefix);
   DCHECK_EQ(0u, GetSwitchPrefixLength(switch_key_native));
   auto it = switches_.find(switch_key_without_prefix);
   if (it == switches_.end())
diff --git a/base/task/thread_pool/thread_pool_impl.cc b/base/task/thread_pool/thread_pool_impl.cc
index 64c0f50..f8c23542 100644
--- a/base/task/thread_pool/thread_pool_impl.cc
+++ b/base/task/thread_pool/thread_pool_impl.cc
@@ -76,7 +76,6 @@
                                bool use_background_threads)
     : histogram_label_(histogram_label),
       task_tracker_(std::move(task_tracker)),
-      use_background_threads_(use_background_threads),
       single_thread_task_runner_manager_(task_tracker_->GetTrackedRef(),
                                          &delayed_task_manager_),
       has_disable_best_effort_switch_(HasDisableBestEffortTasksSwitch()),
diff --git a/base/task/thread_pool/thread_pool_impl.h b/base/task/thread_pool/thread_pool_impl.h
index f0d3420..8f831f84 100644
--- a/base/task/thread_pool/thread_pool_impl.h
+++ b/base/task/thread_pool/thread_pool_impl.h
@@ -176,7 +176,6 @@
 
   const std::string histogram_label_;
   const std::unique_ptr<TaskTrackerImpl> task_tracker_;
-  const bool use_background_threads_;
   ServiceThread service_thread_;
   DelayedTaskManager delayed_task_manager_;
   PooledSingleThreadTaskRunnerManager single_thread_task_runner_manager_;
diff --git a/base/test/android/javatests/src/org/chromium/base/test/transit/ScrollableFacility.java b/base/test/android/javatests/src/org/chromium/base/test/transit/ScrollableFacility.java
index a974b42..8b0a80d 100644
--- a/base/test/android/javatests/src/org/chromium/base/test/transit/ScrollableFacility.java
+++ b/base/test/android/javatests/src/org/chromium/base/test/transit/ScrollableFacility.java
@@ -425,6 +425,7 @@
     public class ItemOnScreenFacility<SelectReturnT> extends Facility<HostStationT> {
 
         protected final Item<SelectReturnT> mItem;
+        private ViewElement mViewElement;
 
         protected ItemOnScreenFacility(Item<SelectReturnT> item) {
             mItem = item;
@@ -432,7 +433,7 @@
 
         @Override
         public void declareElements(Elements.Builder elements) {
-            elements.declareView(mItem.getViewSpec(), mItem.getViewElementOptions());
+            mViewElement = elements.declareView(mItem.getViewSpec(), mItem.getViewElementOptions());
         }
 
         /** Select the item and trigger its |selectHandler|. */
@@ -462,5 +463,11 @@
         public Transition.Trigger clickTrigger() {
             return getItem().getViewSpec()::click;
         }
+
+        /** Returns the item rendered to an Android View. */
+        public View getView() {
+            assertSuppliersCanBeUsed();
+            return mViewElement.get();
+        }
     }
 }
diff --git a/base/tracing/perfetto_platform.h b/base/tracing/perfetto_platform.h
index 35e35e7..9f07e4b1 100644
--- a/base/tracing/perfetto_platform.h
+++ b/base/tracing/perfetto_platform.h
@@ -46,7 +46,6 @@
   perfetto::base::PlatformThreadId GetCurrentThreadId() override;
 
  private:
-  const TaskRunnerType task_runner_type_ = TaskRunnerType::kThreadPool;
   raw_ptr<PerfettoTaskRunner> task_runner_;
   ThreadLocalStorage::Slot thread_local_object_;
 };
diff --git a/build/android/gyp/compile_java.py b/build/android/gyp/compile_java.py
index fe9f03a6..0d3ec7d 100755
--- a/build/android/gyp/compile_java.py
+++ b/build/android/gyp/compile_java.py
@@ -740,11 +740,11 @@
       # These apply to both .jars in classpath as well as code being compiled.
       # Chrome classes rely on the presence of @NullMarked.
       errorprone_flags += [
-          '-XepOpt:NullAway:AnnotatedPackages=android,androidx'
+          '-XepOpt:NullAway:AnnotatedPackages='
       ]
       # Detect "assert foo != null" as a null check.
       errorprone_flags += ['-XepOpt:NullAway:AssertsEnabled=true']
-      # Do not ignore @Nullable in non-annotated packages.
+      # Do not ignore @Nullable & @NonNull in non-annotated packages.
       errorprone_flags += [
           '-XepOpt:NullAway:AcknowledgeRestrictiveAnnotations=true'
       ]
diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni
index ea54d49..5b1ea00 100644
--- a/build/config/android/internal_rules.gni
+++ b/build/config/android/internal_rules.gni
@@ -1352,21 +1352,6 @@
     }
     _outputs += [ _mapping_path ]
 
-    if (defined(invoker.input_art_profile)) {
-      _inputs += [ invoker.input_art_profile ]
-      _args += [ "--input-art-profile=" +
-                 rebase_path(invoker.input_art_profile, root_build_dir) ]
-      if (defined(invoker.output_art_profile)) {
-        _outputs += [ invoker.output_art_profile ]
-        _args += [ "--output-art-profile=" +
-                   rebase_path(invoker.output_art_profile, root_build_dir) ]
-      }
-      if (defined(invoker.enable_startup_profile) &&
-          invoker.enable_startup_profile) {
-        _args += [ "--apply-startup-profile" ]
-      }
-    }
-
     if (defined(invoker.enable_proguard_checks) &&
         !invoker.enable_proguard_checks) {
       _args += [ "--disable-checks" ]
@@ -1590,9 +1575,6 @@
                                TESTONLY_AND_VISIBILITY + [
                                      "add_view_trace_events",
                                      "apply_mapping",
-                                     "input_art_profile",
-                                     "output_art_profile",
-                                     "enable_startup_profile",
                                      "build_config",
                                      "custom_assertion_handler",
                                      "data",
@@ -2762,48 +2744,6 @@
     }
   }
 
-  template("create_binary_profile") {
-    action_with_pydeps(target_name) {
-      forward_variables_from(invoker, TESTONLY_AND_VISIBILITY)
-      forward_variables_from(invoker, [ "deps" ])
-      script = "//build/android/gyp/binary_baseline_profile.py"
-      depfile = "$target_gen_dir/$target_name.d"
-      outputs = [
-        invoker.binary_baseline_profile_path,
-        invoker.binary_baseline_profile_metadata_path,
-      ]
-      _profgen_path =
-          "$public_android_sdk_root/cmdline-tools/latest/bin/profgen"
-      _rebased_build_config = rebase_path(invoker.build_config, root_build_dir)
-      inputs = [
-        invoker.build_config,
-        invoker.input_profile_path,
-        _profgen_path,
-      ]
-      args = [
-        "--profgen",
-        rebase_path(_profgen_path, root_build_dir),
-        "--output-profile",
-        rebase_path(invoker.binary_baseline_profile_path, root_build_dir),
-        "--output-metadata",
-        rebase_path(invoker.binary_baseline_profile_metadata_path,
-                    root_build_dir),
-        "--dex=@FileArg($_rebased_build_config:final_dex:path)",
-        "--input-profile-path",
-        rebase_path(invoker.input_profile_path, root_build_dir),
-        "--depfile",
-        rebase_path(depfile, root_build_dir),
-      ]
-      if (defined(invoker.proguard_mapping_path)) {
-        args += [
-          "--proguard-mapping",
-          rebase_path(invoker.proguard_mapping_path, root_build_dir),
-        ]
-        inputs += [ invoker.proguard_mapping_path ]
-      }
-    }
-  }
-
   # Creates a signed and aligned .apk.
   #
   # Variables
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
index 60de4793..7ffe4092 100644
--- a/build/config/android/rules.gni
+++ b/build/config/android/rules.gni
@@ -2855,25 +2855,6 @@
       }
     }
 
-    # Old name for variable, mark as not_needed while it is being renamed
-    # downstream. Remove after all references to baseline_profile_path have been
-    # changed.
-    not_needed(invoker, [ "baseline_profile_path" ])
-
-    _enable_art_profile_optimizations =
-        defined(invoker.art_profile_path) && _proguard_enabled
-
-    if (_enable_art_profile_optimizations) {
-      _include_baseline_profile = enable_baseline_profiles
-      _enable_startup_profile = enable_startup_profiles
-      if (_include_baseline_profile) {
-        _obfuscated_art_profile =
-            "$target_out_dir/${target_name}.obfuscated.hrf"
-      }
-    } else {
-      not_needed(invoker, [ "art_profile_path" ])
-    }
-
     if (_is_bundle_module || _omit_dex) {
       # Dex generation for app bundle modules take place in the
       # android_app_bundle template.
@@ -2908,14 +2889,6 @@
           proguard_mapping_path = _proguard_mapping_path
           has_apk_under_test = defined(invoker.apk_under_test)
 
-          if (_enable_art_profile_optimizations) {
-            input_art_profile = invoker.art_profile_path
-            if (_include_baseline_profile) {
-              output_art_profile = _obfuscated_art_profile
-            }
-            enable_startup_profile = _enable_startup_profile
-          }
-
           # Must not be set via write_build_config, because that will cause it
           # to be picked up by test apks that use apk_under_test.
           if (!_assertions_implicitly_enabled && !enable_java_asserts &&
@@ -2953,26 +2926,6 @@
 
       _final_dex_target_dep = ":$_final_dex_target_name"
 
-      if (_enable_art_profile_optimizations && _include_baseline_profile) {
-        _binary_profile_target = "${_template_name}__binary_baseline_profile"
-        _binary_baseline_profile_path =
-            "$target_out_dir/$_template_name.baseline.prof"
-        _binary_baseline_profile_metadata_path =
-            _binary_baseline_profile_path + "m"
-        create_binary_profile(_binary_profile_target) {
-          forward_variables_from(invoker, TESTONLY_AND_VISIBILITY)
-          binary_baseline_profile_path = _binary_baseline_profile_path
-          binary_baseline_profile_metadata_path =
-              _binary_baseline_profile_metadata_path
-          build_config = _build_config
-          input_profile_path = _obfuscated_art_profile
-          deps = [
-            ":$_build_config_target",
-            _final_dex_target_dep,
-          ]
-        }
-      }
-
       # Unused resources target for bundles handled in android_app_bundle
       # template.
       if (_strip_unused_resources && !_is_bundle_module) {
@@ -3113,17 +3066,6 @@
           if (defined(_final_dex_path)) {
             dex_path = _final_dex_path
             deps += [ _final_dex_target_dep ]
-            if (_enable_art_profile_optimizations &&
-                _include_baseline_profile) {
-              # extra_assets is a list of ["{src_path}:{dst_path}"]
-              extra_assets = [
-                rebase_path(_binary_baseline_profile_path, root_build_dir) +
-                    ":dexopt/baseline.prof",
-                rebase_path(_binary_baseline_profile_metadata_path,
-                            root_build_dir) + ":dexopt/baseline.profm",
-              ]
-              deps += [ ":$_binary_profile_target" ]
-            }
           }
 
           output_apk_path = _final_apk_path
@@ -3367,11 +3309,9 @@
             "annotation_processor_deps",
             "apk_under_test",
             "app_as_shared_lib",
-            "art_profile_path",
             "assert_no_deps",
             "assert_no_native_deps",
             "asset_deps",
-            "baseline_profile_path",
             "build_config_include_product_version_resource",
             "bundles_supported",
             "chromium_code",
@@ -4774,25 +4714,6 @@
       }
     }
 
-    # Old name for variable, mark as not_needed while it is being renamed
-    # downstream. Remove after all references to baseline_profile_path have been
-    # changed.
-    not_needed(invoker, [ "baseline_profile_path" ])
-
-    _enable_art_profile_optimizations =
-        defined(invoker.art_profile_path) && _proguard_enabled
-
-    if (_enable_art_profile_optimizations) {
-      _include_baseline_profile = enable_baseline_profiles
-      _enable_startup_profile = enable_startup_profiles
-      if (_include_baseline_profile) {
-        _obfuscated_art_profile =
-            "$target_out_dir/${target_name}.obfuscated.hrf"
-      }
-    } else {
-      not_needed(invoker, [ "art_profile_path" ])
-    }
-
     if (_proguard_enabled) {
       if (_add_view_trace_events) {
         _trace_event_rewriter_target =
@@ -4846,13 +4767,6 @@
         proguard_enabled = true
         proguard_mapping_path = _proguard_mapping_path
         build_config = _build_config
-        if (_enable_art_profile_optimizations) {
-          input_art_profile = invoker.art_profile_path
-          if (_include_baseline_profile) {
-            output_art_profile = _obfuscated_art_profile
-          }
-          enable_startup_profile = _enable_startup_profile
-        }
 
         deps = _module_java_targets + [ ":$_build_config_target" ]
         if (_add_view_trace_events) {
@@ -4907,27 +4821,6 @@
       }
       _dex_target_for_module = ":$_dex_target"
 
-      if (_enable_art_profile_optimizations && _include_baseline_profile) {
-        _module_target_name = get_label_info(_module_target, "name")
-        _binary_profile_target =
-            "${_module_target_name}__binary_baseline_profile"
-        _binary_baseline_profile_path = "$target_out_dir/$_module_target_name/$_module_target_name.baseline.prof"
-        _binary_baseline_profile_metadata_path =
-            _binary_baseline_profile_path + "m"
-        create_binary_profile(_binary_profile_target) {
-          forward_variables_from(invoker, TESTONLY_AND_VISIBILITY)
-          binary_baseline_profile_path = _binary_baseline_profile_path
-          binary_baseline_profile_metadata_path =
-              _binary_baseline_profile_metadata_path
-          build_config = _module_build_config
-          input_profile_path = _obfuscated_art_profile
-          deps = [
-            _dex_target_for_module,
-            _module_build_config_target,
-          ]
-        }
-      }
-
       # Generate one module .zip file per bundle module.
       #
       # Important: the bundle tool uses the module's zip filename as
@@ -4966,17 +4859,6 @@
           _module_build_config_target,
           _module_target,
         ]
-
-        if (_enable_art_profile_optimizations && _include_baseline_profile) {
-          # extra_assets is a list of ["{src_path}:{dst_path}"]
-          extra_assets = [
-            rebase_path(_binary_baseline_profile_path, root_build_dir) +
-                ":dexopt/baseline.prof",
-            rebase_path(_binary_baseline_profile_metadata_path,
-                        root_build_dir) + ":dexopt/baseline.profm",
-          ]
-          deps += [ ":$_binary_profile_target" ]
-        }
       }
 
       _all_create_module_targets += [
diff --git a/build/config/unsafe_buffers_paths.txt b/build/config/unsafe_buffers_paths.txt
index 956a91b..15fac97d 100644
--- a/build/config/unsafe_buffers_paths.txt
+++ b/build/config/unsafe_buffers_paths.txt
@@ -100,8 +100,6 @@
 -components/segmentation_platform/
 -components/sharing_message/
 -components/system_cpu/
--components/url_formatter/
--components/url_pattern_index/
 -components/webrtc_logging/
 -components/zucchini/
 -fuchsia_web/
diff --git a/cc/input/touch_action.h b/cc/input/touch_action.h
index 0228487..4964b87 100644
--- a/cc/input/touch_action.h
+++ b/cc/input/touch_action.h
@@ -30,7 +30,6 @@
   kPanY = kPanUp | kPanDown,
   kPan = kPanX | kPanY,
   kPinchZoom = 0x10,
-  kManipulation = kPan | kPinchZoom,
   kDoubleTapZoom = 0x20,
   // Used by swipe to move cursor feature. This is only used internally
   // for swipe to move cursor feature  and it is not a web-visible value. When
@@ -45,9 +44,15 @@
   // field and has kPan, we don't set this bit.
   kInternalNotWritable = 0x80,
 
+  // TODO(crbug.com/382525574): This value is currently being used to measure
+  // how many pages would lose handwriting if handwriting were to ship as a new
+  // touch action value as describedd in the linked bug.
+  kInternalHandwriting = 0x100,
+
+  kManipulation = kPan | kPinchZoom | kInternalHandwriting,
   kAuto = kManipulation | kDoubleTapZoom | kInternalPanXScrolls |
-          kInternalNotWritable,
-  kMax = (1 << 8) - 1
+          kInternalNotWritable | kInternalHandwriting,
+  kMax = (1 << 9) - 1
 };
 
 inline TouchAction operator|(TouchAction a, TouchAction b) {
@@ -79,6 +84,12 @@
   // touch action field.
   touch_action &= ~TouchAction::kInternalNotWritable;
 
+  // Until handwriting is a web exposed feature, the combination of
+  // non-handwriting bits should result in values of auto / manipulation in the
+  // exposed CSS value.
+  // TODO(crbug.com/382525574): Launch or clean up kHandwriting.
+  touch_action &= ~TouchAction::kInternalHandwriting;
+
   switch (static_cast<int>(touch_action)) {
     case 0:
       return "NONE";
@@ -142,10 +153,10 @@
       return "PAN_LEFT_PAN_Y_PINCH_ZOOM";
     case 30:
       return "PAN_RIGHT_PAN_Y_PINCH_ZOOM";
-    case 31:
-      return "MANIPULATION";
     case 32:
       return "DOUBLE_TAP_ZOOM";
+    case 31:
+      return "MANIPULATION";
     case 33:
       return "PAN_LEFT_DOUBLE_TAP_ZOOM";
     case 34:
diff --git a/cc/trees/draw_property_utils.cc b/cc/trees/draw_property_utils.cc
index 5a0b625..f74a767 100644
--- a/cc/trees/draw_property_utils.cc
+++ b/cc/trees/draw_property_utils.cc
@@ -9,6 +9,7 @@
 #include <algorithm>
 #include <array>
 #include <map>
+#include <unordered_set>
 #include <utility>
 #include <vector>
 
@@ -1171,7 +1172,7 @@
   // Surface which require copy of output (view transition captures) are exempt
   // because their contents are required regardless of the state of the target
   // surface.
-  bool removed_surface = false;
+  std::unordered_set<RenderSurfaceImpl*> surfaces_to_remove;
   for (RenderSurfaceImpl* surface : *initial_surface_list) {
     bool is_root = surface->EffectTreeIndex() == kContentsRootPropertyNodeId;
     RenderSurfaceImpl* target_surface = surface->render_target();
@@ -1179,13 +1180,30 @@
                      (!target_surface->is_render_surface_list_member() &&
                       !surface->CopyOfOutputRequired()))) {
       surface->set_is_render_surface_list_member(false);
-      removed_surface = true;
-      target_surface->decrement_num_contributors();
+      surfaces_to_remove.insert(surface);
       continue;
     }
+
+    // If one of the child surfaces had a CopyOfOutputRequired, it may be the
+    // reason we're adding it. However, we may have skipped its target surface
+    // already, so undelete the chain of all target surfaces for any surface
+    // that we're adding.
+    for (auto* target_to_undelete = target_surface;
+         surfaces_to_remove.count(target_to_undelete);
+         target_to_undelete = target_to_undelete->render_target()) {
+      surface->set_is_render_surface_list_member(true);
+      final_surface_list->push_back(target_to_undelete);
+      surfaces_to_remove.erase(target_to_undelete);
+    }
     final_surface_list->push_back(surface);
   }
-  if (removed_surface) {
+
+  for (auto* surface : surfaces_to_remove) {
+    RenderSurfaceImpl* target_surface = surface->render_target();
+    target_surface->decrement_num_contributors();
+  }
+
+  if (!surfaces_to_remove.empty()) {
     for (LayerImpl* layer : *layer_tree_impl) {
       if (layer->contributes_to_drawn_render_surface()) {
         RenderSurfaceImpl* render_target = layer->render_target();
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
index 72986d1..24e5689 100644
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -119,7 +119,6 @@
       forward_variables_from(invoker,
                              [
                                "add_view_trace_events",
-                               "art_profile_path",
                                "bundle_name",
                                "include_32_bit_webview",
                                "include_64_bit_webview",
@@ -2667,7 +2666,6 @@
   chrome_public_apk_or_module_tmpl("chrome_public_apk") {
     target_type = "android_apk"
     apk_name = "ChromePublic"
-    art_profile_path = "//chrome/android/baseline_profiles/profile.txt"
     if (android_64bit_target_cpu) {
       # Ensure 64-bit chrome does not depend on 32-bit things.
       assert_no_deps =
@@ -3447,7 +3445,6 @@
       bundle_name = "TrichromeChrome"
       static_library_provider = ":$_main_trichrome_library_apk_target"
       add_view_trace_events = true
-      art_profile_path = "//chrome/android/baseline_profiles/profile.txt"
       if (android_64bit_target_cpu) {
         is_64_bit_browser = false
         include_64_bit_webview = true
diff --git a/chrome/android/baseline_profiles/OWNERS b/chrome/android/baseline_profiles/OWNERS
deleted file mode 100644
index 828b487..0000000
--- a/chrome/android/baseline_profiles/OWNERS
+++ /dev/null
@@ -1,2 +0,0 @@
-mheikal@chromium.org
-agrieve@chromium.org
diff --git a/chrome/android/baseline_profiles/README.md b/chrome/android/baseline_profiles/README.md
deleted file mode 100644
index 4f2c8a2a..0000000
--- a/chrome/android/baseline_profiles/README.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# Baseline Profiles
-
-This directory contains Human Readable Format (HRF) baseline profiles. Googlers:
-see go/baseline-profiles-in-chrome for more details about how this is going to
-be used.
-
-## What are baseline profiles?
-
-These are basically the successor/sibling of android cloud profiles where a list
-of classes and methods are marked as (startup, hot, etc.) hinting at the ART to
-precompile certain parts of the dex rather than JIT for performance reasons. See
-https://developer.android.com/topic/performance/baselineprofiles/overview for
-more details.
-
-## What are HRF profiles?
-
-HRF or Human Readable Format profiles is a text file containing methods and
-classes of your app alongside flags (startup, hot, etc). This is fairly stable
-across small code changes and thus can be committed to the repo/cipd. Using the
-macrobenchmark library you can get an HRF profile for your app. The ART can't
-use this though and it must be converted to a binary profile which is then
-shipped with your apk/bundle.
diff --git a/chrome/android/baseline_profiles/profile.txt b/chrome/android/baseline_profiles/profile.txt
deleted file mode 100644
index 4c50d97..0000000
--- a/chrome/android/baseline_profiles/profile.txt
+++ /dev/null
@@ -1,9750 +0,0 @@
-LJ/N;
-Landroid/support/v4/media/MediaMetadataCompat$Builder$$ExternalSyntheticOutline0;
-HSPLandroid/support/v4/media/MediaMetadataCompat$Builder$$ExternalSyntheticOutline0;->m(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Landroidx/activity/Cancellable;
-Landroidx/activity/ComponentActivity;
-HSPLandroidx/activity/ComponentActivity;-><init>()V
-HSPLandroidx/activity/ComponentActivity;->addOnContextAvailableListener(Landroidx/activity/contextaware/OnContextAvailableListener;)V
-HSPLandroidx/activity/ComponentActivity;->getDefaultViewModelCreationExtras()Landroidx/lifecycle/viewmodel/MutableCreationExtras;
-HSPLandroidx/activity/ComponentActivity;->getLifecycle()Landroidx/lifecycle/LifecycleRegistry;
-HSPLandroidx/activity/ComponentActivity;->getSavedStateRegistry()Landroidx/savedstate/SavedStateRegistry;
-HSPLandroidx/activity/ComponentActivity;->getViewModelStore()Landroidx/lifecycle/ViewModelStore;
-HSPLandroidx/activity/ComponentActivity;->onCreate(Landroid/os/Bundle;)V
-Landroidx/activity/ComponentActivity$$ExternalSyntheticLambda0;
-HSPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda0;-><init>(ILjava/lang/Object;)V
-HSPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda0;->run()V
-Landroidx/activity/ComponentActivity$$ExternalSyntheticLambda1;
-HSPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda1;-><init>(Landroidx/fragment/app/FragmentActivity;)V
-Landroidx/activity/ComponentActivity$$ExternalSyntheticLambda2;
-HSPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda2;-><init>(Landroidx/fragment/app/FragmentActivity;)V
-Landroidx/activity/ComponentActivity$$ExternalSyntheticLambda3;
-HSPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda3;-><init>(Landroidx/fragment/app/FragmentActivity;)V
-HSPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda3;->onContextAvailable()V
-Landroidx/activity/ComponentActivity$1;
-HSPLandroidx/activity/ComponentActivity$1;-><init>(Landroidx/fragment/app/FragmentActivity;)V
-Landroidx/activity/ComponentActivity$2;
-HSPLandroidx/activity/ComponentActivity$2;-><init>(Landroidx/fragment/app/FragmentActivity;)V
-Landroidx/activity/ComponentActivity$2$$ExternalSyntheticOutline0;
-HSPLandroidx/activity/ComponentActivity$2$$ExternalSyntheticOutline0;->m(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Landroidx/activity/ComponentActivity$3;
-HSPLandroidx/activity/ComponentActivity$3;-><init>(Landroidx/fragment/app/FragmentActivity;I)V
-HSPLandroidx/activity/ComponentActivity$3;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V
-Landroidx/activity/ComponentActivity$NonConfigurationInstances;
-Landroidx/activity/ComponentActivity$ReportFullyDrawnExecutorApi16Impl;
-HSPLandroidx/activity/ComponentActivity$ReportFullyDrawnExecutorApi16Impl;-><init>(Landroidx/fragment/app/FragmentActivity;)V
-Landroidx/activity/FullyDrawnReporter;
-HSPLandroidx/activity/FullyDrawnReporter;-><init>(Landroidx/activity/ComponentActivity$ReportFullyDrawnExecutorApi16Impl;Landroidx/activity/ComponentActivity$$ExternalSyntheticLambda1;)V
-Landroidx/activity/OnBackPressedCallback;
-HSPLandroidx/activity/OnBackPressedCallback;-><init>(Z)V
-HSPLandroidx/activity/OnBackPressedCallback;->setEnabled(Z)V
-Landroidx/activity/OnBackPressedDispatcher;
-HSPLandroidx/activity/OnBackPressedDispatcher;-><init>(Ljava/lang/Runnable;)V
-HSPLandroidx/activity/OnBackPressedDispatcher;->addCallback(Landroidx/lifecycle/LifecycleOwner;Landroidx/activity/OnBackPressedCallback;)V
-HSPLandroidx/activity/OnBackPressedDispatcher;->addCancellableCallback$activity_release(Landroidx/activity/OnBackPressedCallback;)Landroidx/activity/OnBackPressedDispatcher$OnBackPressedCancellable;
-Landroidx/activity/OnBackPressedDispatcher$LifecycleOnBackPressedCancellable;
-HSPLandroidx/activity/OnBackPressedDispatcher$LifecycleOnBackPressedCancellable;-><init>(Landroidx/activity/OnBackPressedDispatcher;Landroidx/lifecycle/Lifecycle;Landroidx/activity/OnBackPressedCallback;)V
-HSPLandroidx/activity/OnBackPressedDispatcher$LifecycleOnBackPressedCancellable;->cancel()V
-HSPLandroidx/activity/OnBackPressedDispatcher$LifecycleOnBackPressedCancellable;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V
-Landroidx/activity/OnBackPressedDispatcher$OnBackPressedCancellable;
-HSPLandroidx/activity/OnBackPressedDispatcher$OnBackPressedCancellable;-><init>(Landroidx/activity/OnBackPressedDispatcher;Landroidx/activity/OnBackPressedCallback;)V
-HSPLandroidx/activity/OnBackPressedDispatcher$OnBackPressedCancellable;->cancel()V
-Landroidx/activity/OnBackPressedDispatcherOwner;
-Landroidx/activity/ViewTreeOnBackPressedDispatcherOwner;
-HSPLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner;->set(Landroid/view/View;Landroidx/activity/OnBackPressedDispatcherOwner;)V
-Landroidx/activity/contextaware/ContextAwareHelper;
-HSPLandroidx/activity/contextaware/ContextAwareHelper;-><init>()V
-Landroidx/activity/contextaware/OnContextAvailableListener;
-Landroidx/activity/result/ActivityResult;
-Landroidx/activity/result/ActivityResultCallback;
-Landroidx/activity/result/ActivityResultRegistry;
-HSPLandroidx/activity/result/ActivityResultRegistry;-><init>()V
-HSPLandroidx/activity/result/ActivityResultRegistry;->register(Ljava/lang/String;Landroidx/activity/result/contract/ActivityResultContract;Landroidx/fragment/app/FragmentManager$8;)Landroidx/activity/result/ActivityResultRegistry$3;
-Landroidx/activity/result/ActivityResultRegistry$$ExternalSyntheticThrowCCEIfNotNull0;
-HSPLandroidx/activity/result/ActivityResultRegistry$$ExternalSyntheticThrowCCEIfNotNull0;->m(Ljava/lang/Object;)V
-Landroidx/activity/result/ActivityResultRegistry$3;
-HSPLandroidx/activity/result/ActivityResultRegistry$3;-><init>(Landroidx/activity/result/ActivityResultRegistry;Ljava/lang/String;Landroidx/activity/result/contract/ActivityResultContract;)V
-HSPLandroidx/activity/result/ActivityResultRegistry$3;->unregister()V
-Landroidx/activity/result/ActivityResultRegistry$CallbackAndContract;
-HSPLandroidx/activity/result/ActivityResultRegistry$CallbackAndContract;-><init>(Landroidx/fragment/app/FragmentManager$8;Landroidx/activity/result/contract/ActivityResultContract;)V
-Landroidx/activity/result/ActivityResultRegistryOwner;
-Landroidx/activity/result/contract/ActivityResultContract;
-HSPLandroidx/activity/result/contract/ActivityResultContract;-><init>()V
-Landroidx/activity/result/contract/ActivityResultContracts$RequestMultiplePermissions;
-HSPLandroidx/activity/result/contract/ActivityResultContracts$RequestMultiplePermissions;-><init>()V
-Landroidx/activity/result/contract/ActivityResultContracts$StartActivityForResult;
-HSPLandroidx/activity/result/contract/ActivityResultContracts$StartActivityForResult;-><init>()V
-Landroidx/appcompat/app/AppCompatActivity;
-HSPLandroidx/appcompat/app/AppCompatActivity;-><init>()V
-HSPLandroidx/appcompat/app/AppCompatActivity;->attachBaseContext(Landroid/content/Context;)V
-HSPLandroidx/appcompat/app/AppCompatActivity;->findViewById(I)Landroid/view/View;
-HSPLandroidx/appcompat/app/AppCompatActivity;->getDelegate()Landroidx/appcompat/app/AppCompatDelegate;
-HSPLandroidx/appcompat/app/AppCompatActivity;->getResources()Landroid/content/res/Resources;
-HSPLandroidx/appcompat/app/AppCompatActivity;->getSupportActionBar()Landroidx/appcompat/app/ActionBar;
-HSPLandroidx/appcompat/app/AppCompatActivity;->initViewTreeOwners()V
-HSPLandroidx/appcompat/app/AppCompatActivity;->invalidateOptionsMenu()V
-HSPLandroidx/appcompat/app/AppCompatActivity;->onContentChanged()V
-HSPLandroidx/appcompat/app/AppCompatActivity;->onDestroy()V
-HSPLandroidx/appcompat/app/AppCompatActivity;->onPostCreate(Landroid/os/Bundle;)V
-HSPLandroidx/appcompat/app/AppCompatActivity;->onPostResume()V
-HSPLandroidx/appcompat/app/AppCompatActivity;->onStart()V
-HSPLandroidx/appcompat/app/AppCompatActivity;->onStop()V
-HSPLandroidx/appcompat/app/AppCompatActivity;->onTitleChanged(Ljava/lang/CharSequence;I)V
-HSPLandroidx/appcompat/app/AppCompatActivity;->setContentView(I)V
-HSPLandroidx/appcompat/app/AppCompatActivity;->setTheme(I)V
-Landroidx/appcompat/app/AppCompatActivity$1;
-HSPLandroidx/appcompat/app/AppCompatActivity$1;-><init>(Landroidx/appcompat/app/AppCompatActivity;)V
-Landroidx/appcompat/app/AppCompatActivity$2;
-HSPLandroidx/appcompat/app/AppCompatActivity$2;-><init>(Landroidx/appcompat/app/AppCompatActivity;)V
-HSPLandroidx/appcompat/app/AppCompatActivity$2;->onContextAvailable()V
-Landroidx/appcompat/app/AppCompatCallback;
-Landroidx/appcompat/app/AppCompatDelegate;
-HSPLandroidx/appcompat/app/AppCompatDelegate;-><init>()V
-HSPLandroidx/appcompat/app/AppCompatDelegate;->isAutoStorageOptedIn(Landroid/content/Context;)Z
-HSPLandroidx/appcompat/app/AppCompatDelegate;->removeDelegateFromActives(Landroidx/appcompat/app/AppCompatDelegate;)V
-HSPLandroidx/appcompat/app/AppCompatDelegate;->setDefaultNightMode(I)V
-Landroidx/appcompat/app/AppCompatDelegateImpl;
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl;-><init>(Landroid/content/Context;Landroid/view/Window;Landroidx/appcompat/app/AppCompatCallback;Ljava/lang/Object;)V
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl;->applyApplicationSpecificConfig(ZZ)Z
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl;->attachToWindow(Landroid/view/Window;)V
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl;->calculateApplicationLocales(Landroid/content/Context;)Landroidx/core/os/LocaleListCompat;
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl;->createOverrideAppConfiguration(Landroid/content/Context;ILandroidx/core/os/LocaleListCompat;Landroid/content/res/Configuration;Z)Landroid/content/res/Configuration;
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl;->doInvalidatePanelMenu(I)V
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl;->ensureSubDecor()V
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl;->ensureWindow()V
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl;->getConfigurationLocales(Landroid/content/res/Configuration;)Landroidx/core/os/LocaleListCompat;
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl;->getPanelState(I)Landroidx/appcompat/app/AppCompatDelegateImpl$PanelFeatureState;
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl;->initWindowDecorActionBar()V
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl;->installViewFactory()V
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl;->invalidateOptionsMenu()V
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl;->mapNightMode(Landroid/content/Context;I)I
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl;->onCreate()V
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl;->onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl;->onDestroy()V
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl;->requestWindowFeature(I)Z
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl;->setContentView(I)V
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl;->setTitle(Ljava/lang/CharSequence;)V
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl;->throwFeatureRequestIfSubDecorInstalled()V
-Landroidx/appcompat/app/AppCompatDelegateImpl$2;
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl$2;-><init>(Landroidx/appcompat/app/AppCompatDelegateImpl;I)V
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl$2;->run()V
-Landroidx/appcompat/app/AppCompatDelegateImpl$3;
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl$3;-><init>(Landroidx/appcompat/app/AppCompatDelegateImpl;I)V
-Landroidx/appcompat/app/AppCompatDelegateImpl$AppCompatWindowCallback;
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl$AppCompatWindowCallback;-><init>(Landroidx/appcompat/app/AppCompatDelegateImpl;Landroid/view/Window$Callback;)V
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl$AppCompatWindowCallback;->bypassOnContentChanged(Landroid/view/Window$Callback;)V
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl$AppCompatWindowCallback;->dispatchPopulateAccessibilityEvent$androidx$appcompat$view$WindowCallbackWrapper(Landroid/view/accessibility/AccessibilityEvent;)Z
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl$AppCompatWindowCallback;->dispatchPopulateAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)Z
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl$AppCompatWindowCallback;->onAttachedToWindow$androidx$appcompat$view$WindowCallbackWrapper()V
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl$AppCompatWindowCallback;->onAttachedToWindow()V
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl$AppCompatWindowCallback;->onContentChanged()V
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl$AppCompatWindowCallback;->onDetachedFromWindow$androidx$appcompat$view$WindowCallbackWrapper()V
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl$AppCompatWindowCallback;->onDetachedFromWindow()V
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl$AppCompatWindowCallback;->onWindowAttributesChanged$androidx$appcompat$view$WindowCallbackWrapper(Landroid/view/WindowManager$LayoutParams;)V
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl$AppCompatWindowCallback;->onWindowAttributesChanged(Landroid/view/WindowManager$LayoutParams;)V
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl$AppCompatWindowCallback;->onWindowFocusChanged$androidx$appcompat$view$WindowCallbackWrapper(Z)V
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl$AppCompatWindowCallback;->onWindowFocusChanged(Z)V
-Landroidx/appcompat/app/AppCompatDelegateImpl$PanelFeatureState;
-HSPLandroidx/appcompat/app/AppCompatDelegateImpl$PanelFeatureState;-><init>(I)V
-Landroidx/appcompat/app/AppCompatViewInflater;
-HSPLandroidx/appcompat/app/AppCompatViewInflater;-><init>()V
-HSPLandroidx/appcompat/app/AppCompatViewInflater;->createView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;
-Landroidx/appcompat/app/AppCompatViewInflater$DeclaredOnClickListener;
-Landroidx/appcompat/app/AppLocalesMetadataHolderService;
-Landroidx/appcompat/app/AppLocalesStorageHelper$SerialExecutor;
-HSPLandroidx/appcompat/app/AppLocalesStorageHelper$SerialExecutor;-><init>(Landroidx/appcompat/app/AppLocalesStorageHelper$ThreadPerTaskExecutor;)V
-Landroidx/appcompat/app/AppLocalesStorageHelper$ThreadPerTaskExecutor;
-HSPLandroidx/appcompat/app/AppLocalesStorageHelper$ThreadPerTaskExecutor;-><init>()V
-Landroidx/appcompat/content/res/AppCompatResources;
-HSPLandroidx/appcompat/content/res/AppCompatResources;->getDrawable(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable;
-Landroidx/appcompat/graphics/drawable/DrawableWrapperCompat;
-Landroidx/appcompat/view/ContextThemeWrapper;
-HSPLandroidx/appcompat/view/ContextThemeWrapper;-><init>(Landroid/content/Context;I)V
-HSPLandroidx/appcompat/view/ContextThemeWrapper;->applyOverrideConfiguration(Landroid/content/res/Configuration;)V
-HSPLandroidx/appcompat/view/ContextThemeWrapper;->getResources()Landroid/content/res/Resources;
-HSPLandroidx/appcompat/view/ContextThemeWrapper;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
-HSPLandroidx/appcompat/view/ContextThemeWrapper;->getTheme()Landroid/content/res/Resources$Theme;
-HSPLandroidx/appcompat/view/ContextThemeWrapper;->initializeTheme()V
-Landroidx/appcompat/view/menu/MenuBuilder$Callback;
-Landroidx/appcompat/view/menu/MenuPresenter$Callback;
-Landroidx/appcompat/view/menu/SubMenuBuilder$$ExternalSyntheticOutline0;
-HSPLandroidx/appcompat/view/menu/SubMenuBuilder$$ExternalSyntheticOutline0;->m(Ljava/lang/String;I)Ljava/lang/String;
-Landroidx/appcompat/widget/AppCompatAutoCompleteTextView;
-Landroidx/appcompat/widget/AppCompatBackgroundHelper;
-HSPLandroidx/appcompat/widget/AppCompatBackgroundHelper;-><init>(Landroid/view/View;)V
-HSPLandroidx/appcompat/widget/AppCompatBackgroundHelper;->applySupportBackgroundTint()V
-HSPLandroidx/appcompat/widget/AppCompatBackgroundHelper;->loadFromAttributes(Landroid/util/AttributeSet;I)V
-HSPLandroidx/appcompat/widget/AppCompatBackgroundHelper;->onSetBackgroundDrawable()V
-HSPLandroidx/appcompat/widget/AppCompatBackgroundHelper;->setInternalBackgroundTint(Landroid/content/res/ColorStateList;)V
-Landroidx/appcompat/widget/AppCompatButton;
-HSPLandroidx/appcompat/widget/AppCompatButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
-HSPLandroidx/appcompat/widget/AppCompatButton;->drawableStateChanged()V
-HSPLandroidx/appcompat/widget/AppCompatButton;->onTextChanged(Ljava/lang/CharSequence;III)V
-HSPLandroidx/appcompat/widget/AppCompatButton;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V
-HSPLandroidx/appcompat/widget/AppCompatButton;->setFilters([Landroid/text/InputFilter;)V
-Landroidx/appcompat/widget/AppCompatCheckBox;
-Landroidx/appcompat/widget/AppCompatCheckedTextView;
-Landroidx/appcompat/widget/AppCompatDrawableManager;
-HSPLandroidx/appcompat/widget/AppCompatDrawableManager;-><init>()V
-HSPLandroidx/appcompat/widget/AppCompatDrawableManager;->get()Landroidx/appcompat/widget/AppCompatDrawableManager;
-HSPLandroidx/appcompat/widget/AppCompatDrawableManager;->preload()V
-Landroidx/appcompat/widget/AppCompatDrawableManager$1;
-HSPLandroidx/appcompat/widget/AppCompatDrawableManager$1;-><init>()V
-HSPLandroidx/appcompat/widget/AppCompatDrawableManager$1;->arrayContains([II)Z
-HSPLandroidx/appcompat/widget/AppCompatDrawableManager$1;->getTintListForDrawableRes(Landroid/content/Context;I)Landroid/content/res/ColorStateList;
-Landroidx/appcompat/widget/AppCompatEditText;
-HSPLandroidx/appcompat/widget/AppCompatEditText;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroidx/appcompat/widget/AppCompatEditText;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
-HSPLandroidx/appcompat/widget/AppCompatEditText;->drawableStateChanged()V
-HSPLandroidx/appcompat/widget/AppCompatEditText;->getText()Landroid/text/Editable;
-HSPLandroidx/appcompat/widget/AppCompatEditText;->getText()Ljava/lang/CharSequence;
-HSPLandroidx/appcompat/widget/AppCompatEditText;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V
-HSPLandroidx/appcompat/widget/AppCompatEditText;->setCompoundDrawables(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V
-HSPLandroidx/appcompat/widget/AppCompatEditText;->setCustomSelectionActionModeCallback(Landroid/view/ActionMode$Callback;)V
-HSPLandroidx/appcompat/widget/AppCompatEditText;->setTextAppearance(Landroid/content/Context;I)V
-HSPLandroidx/appcompat/widget/AppCompatEditText;->setTextClassifier(Landroid/view/textclassifier/TextClassifier;)V
-Landroidx/appcompat/widget/AppCompatEditText$SuperCaller;
-HSPLandroidx/appcompat/widget/AppCompatEditText$SuperCaller;-><init>(Landroidx/appcompat/widget/AppCompatEditText;)V
-Landroidx/appcompat/widget/AppCompatEmojiEditTextHelper;
-HSPLandroidx/appcompat/widget/AppCompatEmojiEditTextHelper;-><init>(Landroid/widget/EditText;)V
-HSPLandroidx/appcompat/widget/AppCompatEmojiEditTextHelper;->getKeyListener(Landroid/text/method/KeyListener;)Landroid/text/method/KeyListener;
-HSPLandroidx/appcompat/widget/AppCompatEmojiEditTextHelper;->loadFromAttributes(Landroid/util/AttributeSet;I)V
-Landroidx/appcompat/widget/AppCompatEmojiTextHelper;
-HSPLandroidx/appcompat/widget/AppCompatEmojiTextHelper;-><init>(Landroid/widget/TextView;)V
-HSPLandroidx/appcompat/widget/AppCompatEmojiTextHelper;->getFilters([Landroid/text/InputFilter;)[Landroid/text/InputFilter;
-HSPLandroidx/appcompat/widget/AppCompatEmojiTextHelper;->loadFromAttributes(Landroid/util/AttributeSet;I)V
-Landroidx/appcompat/widget/AppCompatImageButton;
-HSPLandroidx/appcompat/widget/AppCompatImageButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroidx/appcompat/widget/AppCompatImageButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
-HSPLandroidx/appcompat/widget/AppCompatImageButton;->drawableStateChanged()V
-HSPLandroidx/appcompat/widget/AppCompatImageButton;->hasOverlappingRendering()Z
-HSPLandroidx/appcompat/widget/AppCompatImageButton;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V
-HSPLandroidx/appcompat/widget/AppCompatImageButton;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V
-Landroidx/appcompat/widget/AppCompatImageHelper;
-HSPLandroidx/appcompat/widget/AppCompatImageHelper;-><init>(Landroid/widget/ImageView;)V
-HSPLandroidx/appcompat/widget/AppCompatImageHelper;->applySupportImageTint()V
-HSPLandroidx/appcompat/widget/AppCompatImageHelper;->loadFromAttributes(Landroid/util/AttributeSet;I)V
-HSPLandroidx/appcompat/widget/AppCompatImageHelper;->setImageResource(I)V
-Landroidx/appcompat/widget/AppCompatImageView;
-HSPLandroidx/appcompat/widget/AppCompatImageView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroidx/appcompat/widget/AppCompatImageView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
-HSPLandroidx/appcompat/widget/AppCompatImageView;->drawableStateChanged()V
-HSPLandroidx/appcompat/widget/AppCompatImageView;->hasOverlappingRendering()Z
-HSPLandroidx/appcompat/widget/AppCompatImageView;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V
-HSPLandroidx/appcompat/widget/AppCompatImageView;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V
-HSPLandroidx/appcompat/widget/AppCompatImageView;->setImageResource(I)V
-Landroidx/appcompat/widget/AppCompatMultiAutoCompleteTextView;
-Landroidx/appcompat/widget/AppCompatRadioButton;
-Landroidx/appcompat/widget/AppCompatRatingBar;
-Landroidx/appcompat/widget/AppCompatSeekBar;
-Landroidx/appcompat/widget/AppCompatSpinner;
-Landroidx/appcompat/widget/AppCompatTextClassifierHelper;
-HSPLandroidx/appcompat/widget/AppCompatTextClassifierHelper;-><init>(Landroid/widget/TextView;)V
-Landroidx/appcompat/widget/AppCompatTextHelper;
-HSPLandroidx/appcompat/widget/AppCompatTextHelper;-><init>(Landroid/widget/TextView;)V
-HSPLandroidx/appcompat/widget/AppCompatTextHelper;->applyCompoundDrawablesTints()V
-HSPLandroidx/appcompat/widget/AppCompatTextHelper;->loadFromAttributes(Landroid/util/AttributeSet;I)V
-HSPLandroidx/appcompat/widget/AppCompatTextHelper;->onSetTextAppearance(Landroid/content/Context;I)V
-HSPLandroidx/appcompat/widget/AppCompatTextHelper;->updateTypefaceAndStyle(Landroid/content/Context;Landroidx/appcompat/widget/TintTypedArray;)V
-Landroidx/appcompat/widget/AppCompatTextHelper$1;
-HSPLandroidx/appcompat/widget/AppCompatTextHelper$1;-><init>(Landroidx/appcompat/widget/AppCompatTextHelper;IILjava/lang/ref/WeakReference;)V
-HSPLandroidx/appcompat/widget/AppCompatTextHelper$1;->onFontRetrievalFailed(I)V
-Landroidx/appcompat/widget/AppCompatTextHelper$Api26Impl;
-Landroidx/appcompat/widget/AppCompatTextView;
-HSPLandroidx/appcompat/widget/AppCompatTextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroidx/appcompat/widget/AppCompatTextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
-HSPLandroidx/appcompat/widget/AppCompatTextView;->drawableStateChanged()V
-HSPLandroidx/appcompat/widget/AppCompatTextView;->onTextChanged(Ljava/lang/CharSequence;III)V
-HSPLandroidx/appcompat/widget/AppCompatTextView;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V
-HSPLandroidx/appcompat/widget/AppCompatTextView;->setCompoundDrawables(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V
-HSPLandroidx/appcompat/widget/AppCompatTextView;->setCompoundDrawablesWithIntrinsicBounds(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V
-HSPLandroidx/appcompat/widget/AppCompatTextView;->setFilters([Landroid/text/InputFilter;)V
-HSPLandroidx/appcompat/widget/AppCompatTextView;->setTextAppearance(Landroid/content/Context;I)V
-HSPLandroidx/appcompat/widget/AppCompatTextView;->setTypeface(Landroid/graphics/Typeface;I)V
-Landroidx/appcompat/widget/AppCompatTextViewAutoSizeHelper;
-HSPLandroidx/appcompat/widget/AppCompatTextViewAutoSizeHelper;-><init>(Landroid/widget/TextView;)V
-HSPLandroidx/appcompat/widget/AppCompatTextViewAutoSizeHelper;->supportsAutoSizeText()Z
-Landroidx/appcompat/widget/AppCompatTextViewAutoSizeHelper$Impl;
-HSPLandroidx/appcompat/widget/AppCompatTextViewAutoSizeHelper$Impl;-><init>()V
-Landroidx/appcompat/widget/AppCompatTextViewAutoSizeHelper$Impl23;
-HSPLandroidx/appcompat/widget/AppCompatTextViewAutoSizeHelper$Impl23;-><init>()V
-Landroidx/appcompat/widget/AppCompatTextViewAutoSizeHelper$Impl29;
-HSPLandroidx/appcompat/widget/AppCompatTextViewAutoSizeHelper$Impl29;-><init>()V
-Landroidx/appcompat/widget/AppCompatToggleButton;
-Landroidx/appcompat/widget/ContentFrameLayout;
-HSPLandroidx/appcompat/widget/ContentFrameLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroidx/appcompat/widget/ContentFrameLayout;->onAttachedToWindow()V
-HSPLandroidx/appcompat/widget/ContentFrameLayout;->onDetachedFromWindow()V
-HSPLandroidx/appcompat/widget/ContentFrameLayout;->onMeasure(II)V
-Landroidx/appcompat/widget/DrawableUtils;
-HSPLandroidx/appcompat/widget/DrawableUtils;->fixDrawable(Landroid/graphics/drawable/Drawable;)V
-Landroidx/appcompat/widget/DrawableUtils$$ExternalSyntheticApiModelOutline0;
-HSPLandroidx/appcompat/widget/DrawableUtils$$ExternalSyntheticApiModelOutline0;->m$2(Landroid/graphics/Insets;)I
-HSPLandroidx/appcompat/widget/DrawableUtils$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/Insets;)I
-Landroidx/appcompat/widget/FitWindowsFrameLayout;
-HSPLandroidx/appcompat/widget/FitWindowsFrameLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-Landroidx/appcompat/widget/ResourceManagerInternal;
-HSPLandroidx/appcompat/widget/ResourceManagerInternal;-><init>()V
-HSPLandroidx/appcompat/widget/ResourceManagerInternal;->createDrawableIfNeeded(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable;
-HSPLandroidx/appcompat/widget/ResourceManagerInternal;->get()Landroidx/appcompat/widget/ResourceManagerInternal;
-HSPLandroidx/appcompat/widget/ResourceManagerInternal;->getCachedDrawable(Landroid/content/Context;J)Landroid/graphics/drawable/Drawable;
-HSPLandroidx/appcompat/widget/ResourceManagerInternal;->getDrawable(ILandroid/content/Context;Z)Landroid/graphics/drawable/Drawable;
-HSPLandroidx/appcompat/widget/ResourceManagerInternal;->getDrawable(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable;
-HSPLandroidx/appcompat/widget/ResourceManagerInternal;->getTintList(Landroid/content/Context;I)Landroid/content/res/ColorStateList;
-HSPLandroidx/appcompat/widget/ResourceManagerInternal;->tintDrawableUsingColorFilter(Landroid/content/Context;ILandroid/graphics/drawable/Drawable;)Z
-Landroidx/appcompat/widget/ResourceManagerInternal$ColorFilterLruCache;
-HSPLandroidx/appcompat/widget/ResourceManagerInternal$ColorFilterLruCache;-><init>()V
-Landroidx/appcompat/widget/ResourcesWrapper;
-Landroidx/appcompat/widget/ThemeUtils;
-HSPLandroidx/appcompat/widget/ThemeUtils;->checkAppCompatTheme(Landroid/content/Context;Landroid/view/View;)V
-Landroidx/appcompat/widget/TintContextWrapper;
-HSPLandroidx/appcompat/widget/TintContextWrapper;->wrap(Landroid/content/Context;)V
-Landroidx/appcompat/widget/TintResources;
-Landroidx/appcompat/widget/TintTypedArray;
-HSPLandroidx/appcompat/widget/TintTypedArray;-><init>(Landroid/content/Context;Landroid/content/res/TypedArray;)V
-HSPLandroidx/appcompat/widget/TintTypedArray;->getColorStateList(I)Landroid/content/res/ColorStateList;
-HSPLandroidx/appcompat/widget/TintTypedArray;->getDimensionPixelSize(II)I
-HSPLandroidx/appcompat/widget/TintTypedArray;->getFont(IILandroidx/appcompat/widget/AppCompatTextHelper$1;)Landroid/graphics/Typeface;
-HSPLandroidx/appcompat/widget/TintTypedArray;->getInt(II)I
-HSPLandroidx/appcompat/widget/TintTypedArray;->getResourceId(II)I
-HSPLandroidx/appcompat/widget/TintTypedArray;->getString(I)Ljava/lang/String;
-HSPLandroidx/appcompat/widget/TintTypedArray;->hasValue(I)Z
-HSPLandroidx/appcompat/widget/TintTypedArray;->obtainStyledAttributes(Landroid/content/Context;Landroid/util/AttributeSet;[II)Landroidx/appcompat/widget/TintTypedArray;
-HSPLandroidx/appcompat/widget/TintTypedArray;->recycle()V
-Landroidx/appcompat/widget/VectorEnabledTintResources;
-Landroidx/appcompat/widget/ViewStubCompat;
-HSPLandroidx/appcompat/widget/ViewStubCompat;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroidx/appcompat/widget/ViewStubCompat;->setVisibility(I)V
-Landroidx/appcompat/widget/ViewUtils;
-Landroidx/arch/core/executor/ArchTaskExecutor;
-HSPLandroidx/arch/core/executor/ArchTaskExecutor;-><init>()V
-Landroidx/arch/core/executor/DefaultTaskExecutor;
-HSPLandroidx/arch/core/executor/DefaultTaskExecutor;-><init>()V
-Landroidx/arch/core/executor/DefaultTaskExecutor$1;
-HSPLandroidx/arch/core/executor/DefaultTaskExecutor$1;-><init>()V
-Landroidx/arch/core/executor/TaskExecutor;
-HSPLandroidx/arch/core/executor/TaskExecutor;-><init>()V
-Landroidx/arch/core/internal/FastSafeIterableMap;
-HSPLandroidx/arch/core/internal/FastSafeIterableMap;-><init>()V
-HSPLandroidx/arch/core/internal/FastSafeIterableMap;->get(Ljava/lang/Object;)Landroidx/arch/core/internal/SafeIterableMap$Entry;
-HSPLandroidx/arch/core/internal/FastSafeIterableMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroidx/arch/core/internal/FastSafeIterableMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
-Landroidx/arch/core/internal/SafeIterableMap;
-HSPLandroidx/arch/core/internal/SafeIterableMap;-><init>()V
-HSPLandroidx/arch/core/internal/SafeIterableMap;->get(Ljava/lang/Object;)Landroidx/arch/core/internal/SafeIterableMap$Entry;
-HSPLandroidx/arch/core/internal/SafeIterableMap;->iterator()Ljava/util/Iterator;
-HSPLandroidx/arch/core/internal/SafeIterableMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
-Landroidx/arch/core/internal/SafeIterableMap$AscendingIterator;
-HSPLandroidx/arch/core/internal/SafeIterableMap$AscendingIterator;-><init>(Landroidx/arch/core/internal/SafeIterableMap$Entry;Landroidx/arch/core/internal/SafeIterableMap$Entry;I)V
-Landroidx/arch/core/internal/SafeIterableMap$Entry;
-HSPLandroidx/arch/core/internal/SafeIterableMap$Entry;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
-HSPLandroidx/arch/core/internal/SafeIterableMap$Entry;->getKey()Ljava/lang/Object;
-HSPLandroidx/arch/core/internal/SafeIterableMap$Entry;->getValue()Ljava/lang/Object;
-Landroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;
-HSPLandroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;-><init>(Landroidx/arch/core/internal/SafeIterableMap;)V
-HSPLandroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;->hasNext()Z
-HSPLandroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;->next()Ljava/lang/Object;
-HSPLandroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;->supportRemove(Landroidx/arch/core/internal/SafeIterableMap$Entry;)V
-Landroidx/arch/core/internal/SafeIterableMap$ListIterator;
-HSPLandroidx/arch/core/internal/SafeIterableMap$ListIterator;-><init>(Landroidx/arch/core/internal/SafeIterableMap$Entry;Landroidx/arch/core/internal/SafeIterableMap$Entry;)V
-HSPLandroidx/arch/core/internal/SafeIterableMap$ListIterator;->hasNext()Z
-HSPLandroidx/arch/core/internal/SafeIterableMap$ListIterator;->next()Ljava/lang/Object;
-HSPLandroidx/arch/core/internal/SafeIterableMap$ListIterator;->nextNode()Landroidx/arch/core/internal/SafeIterableMap$Entry;
-HSPLandroidx/arch/core/internal/SafeIterableMap$ListIterator;->supportRemove(Landroidx/arch/core/internal/SafeIterableMap$Entry;)V
-Landroidx/arch/core/internal/SafeIterableMap$SupportRemove;
-HSPLandroidx/arch/core/internal/SafeIterableMap$SupportRemove;-><init>()V
-Landroidx/asynclayoutinflater/view/AsyncLayoutInflater;
-HSPLandroidx/asynclayoutinflater/view/AsyncLayoutInflater;-><init>(Landroid/content/Context;)V
-Landroidx/asynclayoutinflater/view/AsyncLayoutInflater$1;
-HSPLandroidx/asynclayoutinflater/view/AsyncLayoutInflater$1;-><init>(Landroidx/asynclayoutinflater/view/AsyncLayoutInflater;)V
-Landroidx/asynclayoutinflater/view/AsyncLayoutInflater$BasicInflater;
-HSPLandroidx/asynclayoutinflater/view/AsyncLayoutInflater$BasicInflater;-><init>(Landroid/content/Context;)V
-Landroidx/asynclayoutinflater/view/AsyncLayoutInflater$InflateThread;
-HSPLandroidx/asynclayoutinflater/view/AsyncLayoutInflater$InflateThread;-><init>()V
-HSPLandroidx/asynclayoutinflater/view/AsyncLayoutInflater$InflateThread;->run()V
-Landroidx/asynclayoutinflater/view/AsyncLayoutInflater$OnInflateFinishedListener;
-Landroidx/browser/customtabs/CustomTabsSessionToken;
-HSPLandroidx/browser/customtabs/CustomTabsSessionToken;->getSessionTokenFromIntent(Landroid/content/Intent;)Landroidx/browser/customtabs/CustomTabsSessionToken;
-Landroidx/collection/ArrayMap;
-HSPLandroidx/collection/ArrayMap;-><init>()V
-Landroidx/collection/ArraySet;
-HSPLandroidx/collection/ArraySet;-><init>(I)V
-HSPLandroidx/collection/ArraySet;->add(Ljava/lang/Object;)Z
-HSPLandroidx/collection/ArraySet;->contains(Ljava/lang/Object;)Z
-HSPLandroidx/collection/ArraySet;->remove(Ljava/lang/Object;)Z
-HSPLandroidx/collection/ArraySet;->removeAt(I)V
-Landroidx/collection/ArraySet$ElementIterator;
-HSPLandroidx/collection/ArraySet$ElementIterator;-><init>(Landroidx/collection/ArraySet;)V
-HSPLandroidx/collection/ArraySet$ElementIterator;->elementAt(I)Ljava/lang/Object;
-HSPLandroidx/collection/ArraySet$ElementIterator;->removeAt(I)V
-Landroidx/collection/ArraySetKt;
-HSPLandroidx/collection/ArraySetKt;->allocArrays(Landroidx/collection/ArraySet;I)V
-HSPLandroidx/collection/ArraySetKt;->indexOf(Landroidx/collection/ArraySet;Ljava/lang/Object;I)I
-Landroidx/collection/IndexBasedArrayIterator;
-HSPLandroidx/collection/IndexBasedArrayIterator;-><init>(I)V
-HSPLandroidx/collection/IndexBasedArrayIterator;->hasNext()Z
-HSPLandroidx/collection/IndexBasedArrayIterator;->next()Ljava/lang/Object;
-HSPLandroidx/collection/IndexBasedArrayIterator;->remove()V
-Landroidx/collection/LongSparseArray;
-HSPLandroidx/collection/LongSparseArray;-><init>()V
-HSPLandroidx/collection/LongSparseArray;->clear()V
-Landroidx/collection/LruCache;
-HSPLandroidx/collection/LruCache;-><init>(I)V
-HSPLandroidx/collection/LruCache;->create(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroidx/collection/LruCache;->get(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroidx/collection/LruCache;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroidx/collection/LruCache;->safeSizeOf(Ljava/lang/Object;Ljava/lang/Object;)I
-HSPLandroidx/collection/LruCache;->sizeOf(Ljava/lang/Object;Ljava/lang/Object;)I
-HSPLandroidx/collection/LruCache;->trimToSize(I)V
-Landroidx/collection/SimpleArrayMap;
-HSPLandroidx/collection/SimpleArrayMap;-><init>()V
-HSPLandroidx/collection/SimpleArrayMap;-><init>(I)V
-HSPLandroidx/collection/SimpleArrayMap;->clear()V
-HSPLandroidx/collection/SimpleArrayMap;->containsKey(Ljava/lang/Object;)Z
-HSPLandroidx/collection/SimpleArrayMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroidx/collection/SimpleArrayMap;->indexOf(ILjava/lang/Object;)I
-HSPLandroidx/collection/SimpleArrayMap;->indexOfKey(Ljava/lang/Object;)I
-HSPLandroidx/collection/SimpleArrayMap;->keyAt(I)Ljava/lang/Object;
-HSPLandroidx/collection/SimpleArrayMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroidx/collection/SimpleArrayMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroidx/collection/SimpleArrayMap;->removeAt(I)Ljava/lang/Object;
-HSPLandroidx/collection/SimpleArrayMap;->valueAt(I)Ljava/lang/Object;
-Landroidx/collection/internal/ContainerHelpersKt;
-HSPLandroidx/collection/internal/ContainerHelpersKt;->binarySearch(II[I)I
-Landroidx/collection/internal/Lock;
-HSPLandroidx/collection/internal/Lock;-><init>()V
-Landroidx/collection/internal/LruHashMap;
-HSPLandroidx/collection/internal/LruHashMap;-><init>()V
-HSPLandroidx/collection/internal/LruHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-Landroidx/concurrent/futures/AbstractResolvableFuture$$ExternalSyntheticOutline0;
-HSPLandroidx/concurrent/futures/AbstractResolvableFuture$$ExternalSyntheticOutline0;->m(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLandroidx/concurrent/futures/AbstractResolvableFuture$$ExternalSyntheticOutline0;->m(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Landroidx/constraintlayout/core/widgets/analyzer/DependencyGraph$$ExternalSyntheticOutline0;
-HSPLandroidx/constraintlayout/core/widgets/analyzer/DependencyGraph$$ExternalSyntheticOutline0;->m(FFFF)F
-Landroidx/constraintlayout/widget/ConstraintHelper$$ExternalSyntheticOutline0;
-HSPLandroidx/constraintlayout/widget/ConstraintHelper$$ExternalSyntheticOutline0;->m(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-Landroidx/constraintlayout/widget/ConstraintLayout$$ExternalSyntheticOutline0;
-HSPLandroidx/constraintlayout/widget/ConstraintLayout$$ExternalSyntheticOutline0;->m(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Landroidx/coordinatorlayout/widget/CoordinatorLayout;
-HSPLandroidx/coordinatorlayout/widget/CoordinatorLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroidx/coordinatorlayout/widget/CoordinatorLayout;->acquireTempRect()Landroid/graphics/Rect;
-HSPLandroidx/coordinatorlayout/widget/CoordinatorLayout;->checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z
-HSPLandroidx/coordinatorlayout/widget/CoordinatorLayout;->constrainChildRect(Landroidx/coordinatorlayout/widget/CoordinatorLayout$LayoutParams;Landroid/graphics/Rect;II)V
-HSPLandroidx/coordinatorlayout/widget/CoordinatorLayout;->drawChild(Landroid/graphics/Canvas;Landroid/view/View;J)Z
-HSPLandroidx/coordinatorlayout/widget/CoordinatorLayout;->drawableStateChanged()V
-HSPLandroidx/coordinatorlayout/widget/CoordinatorLayout;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams;
-HSPLandroidx/coordinatorlayout/widget/CoordinatorLayout;->getChildRect(Landroid/view/View;Landroid/graphics/Rect;Z)V
-HSPLandroidx/coordinatorlayout/widget/CoordinatorLayout;->getDescendantRect(Landroid/graphics/Rect;Landroid/view/View;)V
-HSPLandroidx/coordinatorlayout/widget/CoordinatorLayout;->getDesiredAnchoredChildRectWithoutConstraints(ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroidx/coordinatorlayout/widget/CoordinatorLayout$LayoutParams;II)V
-HSPLandroidx/coordinatorlayout/widget/CoordinatorLayout;->getResolvedLayoutParams(Landroid/view/View;)Landroidx/coordinatorlayout/widget/CoordinatorLayout$LayoutParams;
-HSPLandroidx/coordinatorlayout/widget/CoordinatorLayout;->getSuggestedMinimumHeight()I
-HSPLandroidx/coordinatorlayout/widget/CoordinatorLayout;->getSuggestedMinimumWidth()I
-HSPLandroidx/coordinatorlayout/widget/CoordinatorLayout;->onAttachedToWindow()V
-HSPLandroidx/coordinatorlayout/widget/CoordinatorLayout;->onChildViewsChanged(I)V
-HSPLandroidx/coordinatorlayout/widget/CoordinatorLayout;->onDetachedFromWindow()V
-HSPLandroidx/coordinatorlayout/widget/CoordinatorLayout;->onLayout(ZIIII)V
-HSPLandroidx/coordinatorlayout/widget/CoordinatorLayout;->onLayoutChild(Landroid/view/View;I)V
-HSPLandroidx/coordinatorlayout/widget/CoordinatorLayout;->onMeasure(II)V
-HSPLandroidx/coordinatorlayout/widget/CoordinatorLayout;->resetTouchBehaviors()V
-HSPLandroidx/coordinatorlayout/widget/CoordinatorLayout;->setupForInsets()V
-Landroidx/coordinatorlayout/widget/CoordinatorLayout$AttachedBehavior;
-Landroidx/coordinatorlayout/widget/CoordinatorLayout$Behavior;
-HSPLandroidx/coordinatorlayout/widget/CoordinatorLayout$Behavior;-><init>()V
-HSPLandroidx/coordinatorlayout/widget/CoordinatorLayout$Behavior;-><init>(I)V
-Landroidx/coordinatorlayout/widget/CoordinatorLayout$DefaultBehavior;
-Landroidx/coordinatorlayout/widget/CoordinatorLayout$HierarchyChangeListener;
-HSPLandroidx/coordinatorlayout/widget/CoordinatorLayout$HierarchyChangeListener;-><init>(Landroidx/coordinatorlayout/widget/CoordinatorLayout;)V
-HSPLandroidx/coordinatorlayout/widget/CoordinatorLayout$HierarchyChangeListener;->onChildViewAdded(Landroid/view/View;Landroid/view/View;)V
-HSPLandroidx/coordinatorlayout/widget/CoordinatorLayout$HierarchyChangeListener;->onChildViewRemoved(Landroid/view/View;Landroid/view/View;)V
-Landroidx/coordinatorlayout/widget/CoordinatorLayout$LayoutParams;
-HSPLandroidx/coordinatorlayout/widget/CoordinatorLayout$LayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-Landroidx/coordinatorlayout/widget/CoordinatorLayout$OnPreDrawListener;
-HSPLandroidx/coordinatorlayout/widget/CoordinatorLayout$OnPreDrawListener;-><init>(Landroidx/coordinatorlayout/widget/CoordinatorLayout;)V
-HSPLandroidx/coordinatorlayout/widget/CoordinatorLayout$OnPreDrawListener;->onPreDraw()Z
-Landroidx/coordinatorlayout/widget/CoordinatorLayout$ViewElevationComparator;
-HSPLandroidx/coordinatorlayout/widget/CoordinatorLayout$ViewElevationComparator;-><init>()V
-Landroidx/coordinatorlayout/widget/DirectedAcyclicGraph;
-HSPLandroidx/coordinatorlayout/widget/DirectedAcyclicGraph;-><init>()V
-HSPLandroidx/coordinatorlayout/widget/DirectedAcyclicGraph;->dfs(Ljava/lang/Object;Ljava/util/ArrayList;Ljava/util/HashSet;)V
-Landroidx/coordinatorlayout/widget/ViewGroupUtils;
-HSPLandroidx/coordinatorlayout/widget/ViewGroupUtils;->offsetDescendantMatrix(Landroid/view/ViewParent;Landroid/view/View;Landroid/graphics/Matrix;)V
-Landroidx/core/app/ActivityCompat$RequestPermissionsRequestCodeValidator;
-Landroidx/core/app/ComponentActivity;
-HSPLandroidx/core/app/ComponentActivity;-><init>()V
-HSPLandroidx/core/app/ComponentActivity;->onCreate(Landroid/os/Bundle;)V
-Landroidx/core/app/NavUtils;
-HSPLandroidx/core/app/NavUtils;->getParentActivityName(Landroid/content/Context;Landroid/content/ComponentName;)Ljava/lang/String;
-Landroidx/core/app/NotificationManagerCompat;
-HSPLandroidx/core/app/NotificationManagerCompat;-><init>(Landroid/content/Context;)V
-HSPLandroidx/core/app/NotificationManagerCompat;->getNotificationChannel(Ljava/lang/String;)Landroid/app/NotificationChannel;
-Landroidx/core/app/NotificationManagerCompat$Api26Impl;
-HSPLandroidx/core/app/NotificationManagerCompat$Api26Impl;->createNotificationChannel(Landroid/app/NotificationManager;Landroid/app/NotificationChannel;)V
-HSPLandroidx/core/app/NotificationManagerCompat$Api26Impl;->createNotificationChannelGroup(Landroid/app/NotificationManager;Landroid/app/NotificationChannelGroup;)V
-HSPLandroidx/core/app/NotificationManagerCompat$Api26Impl;->deleteNotificationChannel(Landroid/app/NotificationManager;Ljava/lang/String;)V
-HSPLandroidx/core/app/NotificationManagerCompat$Api26Impl;->getNotificationChannel(Landroid/app/NotificationManager;Ljava/lang/String;)Landroid/app/NotificationChannel;
-HSPLandroidx/core/app/NotificationManagerCompat$Api26Impl;->getNotificationChannels(Landroid/app/NotificationManager;)Ljava/util/List;
-Landroidx/core/app/OnMultiWindowModeChangedProvider;
-Landroidx/core/app/OnPictureInPictureModeChangedProvider;
-Landroidx/core/content/ContextCompat;
-HSPLandroidx/core/content/ContextCompat;->getColorStateList(Landroid/content/Context;I)Landroid/content/res/ColorStateList;
-Landroidx/core/content/FileProvider;
-HSPLandroidx/core/content/FileProvider;-><init>()V
-HSPLandroidx/core/content/FileProvider;->attachInfo(Landroid/content/Context;Landroid/content/pm/ProviderInfo;)V
-HSPLandroidx/core/content/FileProvider;->getPathStrategy(Landroid/content/Context;Ljava/lang/String;)Landroidx/core/content/FileProvider$SimplePathStrategy;
-HSPLandroidx/core/content/FileProvider;->onCreate()Z
-HSPLandroidx/core/content/FileProvider;->parsePathStrategy(Landroid/content/Context;Ljava/lang/String;)Landroidx/core/content/FileProvider$SimplePathStrategy;
-Landroidx/core/content/FileProvider$SimplePathStrategy;
-HSPLandroidx/core/content/FileProvider$SimplePathStrategy;-><init>(Ljava/lang/String;)V
-Landroidx/core/content/OnConfigurationChangedProvider;
-Landroidx/core/content/OnTrimMemoryProvider;
-Landroidx/core/content/res/CamColor;
-Landroidx/core/content/res/CamUtils;
-Landroidx/core/content/res/ColorStateListInflaterCompat;
-HSPLandroidx/core/content/res/ColorStateListInflaterCompat;->createFromXml(Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;Landroid/content/res/Resources$Theme;)Landroid/content/res/ColorStateList;
-HSPLandroidx/core/content/res/ColorStateListInflaterCompat;->createFromXmlInner(Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)Landroid/content/res/ColorStateList;
-Landroidx/core/content/res/FontResourcesParserCompat;
-HSPLandroidx/core/content/res/FontResourcesParserCompat;->parse(Landroid/content/res/XmlResourceParser;Landroid/content/res/Resources;)Landroidx/core/content/res/FontResourcesParserCompat$FamilyResourceEntry;
-HSPLandroidx/core/content/res/FontResourcesParserCompat;->readCerts(ILandroid/content/res/Resources;)Ljava/util/List;
-Landroidx/core/content/res/FontResourcesParserCompat$FamilyResourceEntry;
-Landroidx/core/content/res/FontResourcesParserCompat$ProviderResourceEntry;
-HSPLandroidx/core/content/res/FontResourcesParserCompat$ProviderResourceEntry;-><init>(Landroidx/core/provider/FontRequest;IILjava/lang/String;)V
-Landroidx/core/content/res/ResourcesCompat;
-HSPLandroidx/core/content/res/ResourcesCompat;->loadFont(Landroid/content/Context;ILandroid/util/TypedValue;ILandroidx/core/content/res/ResourcesCompat$FontCallback;ZZ)Landroid/graphics/Typeface;
-Landroidx/core/content/res/ResourcesCompat$ColorStateListCacheEntry;
-HSPLandroidx/core/content/res/ResourcesCompat$ColorStateListCacheEntry;-><init>(Landroid/content/res/ColorStateList;Landroid/content/res/Configuration;Landroid/content/res/Resources$Theme;)V
-Landroidx/core/content/res/ResourcesCompat$ColorStateListCacheKey;
-HSPLandroidx/core/content/res/ResourcesCompat$ColorStateListCacheKey;-><init>(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;)V
-HSPLandroidx/core/content/res/ResourcesCompat$ColorStateListCacheKey;->equals(Ljava/lang/Object;)Z
-HSPLandroidx/core/content/res/ResourcesCompat$ColorStateListCacheKey;->hashCode()I
-Landroidx/core/content/res/ResourcesCompat$FontCallback;
-HSPLandroidx/core/content/res/ResourcesCompat$FontCallback;-><init>()V
-HSPLandroidx/core/content/res/ResourcesCompat$FontCallback;->callbackFailAsync(I)V
-Landroidx/core/content/res/ResourcesCompat$FontCallback$$ExternalSyntheticLambda1;
-HSPLandroidx/core/content/res/ResourcesCompat$FontCallback$$ExternalSyntheticLambda1;-><init>(Landroidx/core/content/res/ResourcesCompat$FontCallback;I)V
-HSPLandroidx/core/content/res/ResourcesCompat$FontCallback$$ExternalSyntheticLambda1;->run()V
-Landroidx/core/content/res/ViewingConditions;
-Landroidx/core/graphics/ColorUtils;
-HSPLandroidx/core/graphics/ColorUtils;->compositeColors(II)I
-HSPLandroidx/core/graphics/ColorUtils;->setAlphaComponent(II)I
-Landroidx/core/graphics/Insets;
-HSPLandroidx/core/graphics/Insets;-><init>(IIII)V
-HSPLandroidx/core/graphics/Insets;->equals(Ljava/lang/Object;)Z
-HSPLandroidx/core/graphics/Insets;->of(IIII)Landroidx/core/graphics/Insets;
-Landroidx/core/graphics/TypefaceCompat;
-HSPLandroidx/core/graphics/TypefaceCompat;->createFromResourcesFamilyXml(Landroid/content/Context;Landroidx/core/content/res/FontResourcesParserCompat$FamilyResourceEntry;Landroid/content/res/Resources;ILjava/lang/String;IILandroidx/core/content/res/ResourcesCompat$FontCallback;Z)Landroid/graphics/Typeface;
-HSPLandroidx/core/graphics/TypefaceCompat;->createResourceUid(Landroid/content/res/Resources;ILjava/lang/String;II)Ljava/lang/String;
-Landroidx/core/graphics/TypefaceCompat$ResourcesCallbackAdapter;
-HSPLandroidx/core/graphics/TypefaceCompat$ResourcesCallbackAdapter;-><init>(Landroidx/core/content/res/ResourcesCompat$FontCallback;)V
-HSPLandroidx/core/graphics/TypefaceCompat$ResourcesCallbackAdapter;->onTypefaceRequestFailed(I)V
-HSPLandroidx/core/graphics/TypefaceCompat$ResourcesCallbackAdapter;->onTypefaceRetrieved(Landroid/graphics/Typeface;)V
-Landroidx/core/graphics/TypefaceCompatApi29Impl;
-HSPLandroidx/core/graphics/TypefaceCompatApi29Impl;-><init>()V
-HSPLandroidx/core/graphics/TypefaceCompatApi29Impl;->createFromFontInfo(Landroid/content/Context;[Landroidx/core/provider/FontsContractCompat$FontInfo;I)Landroid/graphics/Typeface;
-HSPLandroidx/core/graphics/TypefaceCompatApi29Impl;->findBaseFont(Landroid/graphics/fonts/FontFamily;I)Landroid/graphics/fonts/Font;
-HSPLandroidx/core/graphics/TypefaceCompatApi29Impl;->getMatchScore(Landroid/graphics/fonts/FontStyle;Landroid/graphics/fonts/FontStyle;)I
-Landroidx/core/graphics/TypefaceCompatBaseImpl;
-HSPLandroidx/core/graphics/TypefaceCompatBaseImpl;-><init>()V
-Landroidx/core/graphics/drawable/RoundedBitmapDrawable;
-HSPLandroidx/core/graphics/drawable/RoundedBitmapDrawable;-><init>(Landroid/content/res/Resources;Landroid/graphics/Bitmap;)V
-HSPLandroidx/core/graphics/drawable/RoundedBitmapDrawable;->getIntrinsicHeight()I
-HSPLandroidx/core/graphics/drawable/RoundedBitmapDrawable;->getIntrinsicWidth()I
-HSPLandroidx/core/graphics/drawable/RoundedBitmapDrawable;->getOpacity()I
-HSPLandroidx/core/graphics/drawable/RoundedBitmapDrawable;->setColorFilter(Landroid/graphics/ColorFilter;)V
-HSPLandroidx/core/graphics/drawable/RoundedBitmapDrawable;->setCornerRadius(F)V
-Landroidx/core/graphics/drawable/RoundedBitmapDrawable21;
-HSPLandroidx/core/graphics/drawable/RoundedBitmapDrawable21;-><init>(Landroid/content/res/Resources;Landroid/graphics/Bitmap;)V
-Landroidx/core/math/MathUtils;
-HSPLandroidx/core/math/MathUtils;->clamp(III)I
-Landroidx/core/os/BuildCompat;
-HSPLandroidx/core/os/BuildCompat;->isAtLeastT()Z
-Landroidx/core/os/LocaleListCompat;
-HSPLandroidx/core/os/LocaleListCompat;-><init>(Landroidx/core/os/LocaleListPlatformWrapper;)V
-HSPLandroidx/core/os/LocaleListCompat;->forLanguageTags(Ljava/lang/String;)Landroidx/core/os/LocaleListCompat;
-Landroidx/core/os/LocaleListCompat$Api21Impl;
-Landroidx/core/os/LocaleListInterface;
-Landroidx/core/os/LocaleListPlatformWrapper;
-HSPLandroidx/core/os/LocaleListPlatformWrapper;-><init>(Ljava/lang/Object;)V
-Landroidx/core/os/TraceCompat;
-Landroidx/core/provider/CallbackWithHandler;
-HSPLandroidx/core/provider/CallbackWithHandler;-><init>(Landroidx/core/graphics/TypefaceCompat$ResourcesCallbackAdapter;Landroid/os/Handler;)V
-HSPLandroidx/core/provider/CallbackWithHandler;->onTypefaceResult(Landroidx/core/provider/FontRequestWorker$TypefaceResult;)V
-Landroidx/core/provider/CallbackWithHandler$1;
-HSPLandroidx/core/provider/CallbackWithHandler$1;-><init>(Landroidx/core/provider/FontsContractCompat$FontRequestCallback;Landroid/graphics/Typeface;)V
-HSPLandroidx/core/provider/CallbackWithHandler$1;->run()V
-Landroidx/core/provider/CallbackWithHandler$2;
-HSPLandroidx/core/provider/CallbackWithHandler$2;-><init>(Landroidx/core/provider/FontsContractCompat$FontRequestCallback;I)V
-HSPLandroidx/core/provider/CallbackWithHandler$2;->run()V
-Landroidx/core/provider/FontProvider;
-HSPLandroidx/core/provider/FontProvider;->getFontFamilyResult(Landroid/content/Context;Landroidx/core/provider/FontRequest;)Landroidx/core/provider/FontsContractCompat$FontFamilyResult;
-Landroidx/core/provider/FontProvider$$ExternalSyntheticLambda0;
-HSPLandroidx/core/provider/FontProvider$$ExternalSyntheticLambda0;-><init>()V
-Landroidx/core/provider/FontRequest;
-HSPLandroidx/core/provider/FontRequest;-><init>(Ljava/lang/String;)V
-HSPLandroidx/core/provider/FontRequest;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V
-Landroidx/core/provider/FontRequest$$ExternalSyntheticOutline0;
-HSPLandroidx/core/provider/FontRequest$$ExternalSyntheticOutline0;->m(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Landroidx/core/provider/FontRequestWorker;
-HSPLandroidx/core/provider/FontRequestWorker;->getFontSync(Ljava/lang/String;Landroid/content/Context;Landroidx/core/provider/FontRequest;I)Landroidx/core/provider/FontRequestWorker$TypefaceResult;
-HSPLandroidx/core/provider/FontRequestWorker;->requestFontAsync(Landroid/content/Context;Landroidx/core/provider/FontRequest;ILandroidx/core/provider/RequestExecutor$HandlerExecutor;Landroidx/core/provider/CallbackWithHandler;)Landroid/graphics/Typeface;
-Landroidx/core/provider/FontRequestWorker$1;
-HSPLandroidx/core/provider/FontRequestWorker$1;-><init>(Ljava/lang/String;Landroid/content/Context;Landroidx/core/provider/FontRequest;II)V
-HSPLandroidx/core/provider/FontRequestWorker$1;->call()Landroidx/core/provider/FontRequestWorker$TypefaceResult;
-HSPLandroidx/core/provider/FontRequestWorker$1;->call()Ljava/lang/Object;
-Landroidx/core/provider/FontRequestWorker$2;
-HSPLandroidx/core/provider/FontRequestWorker$2;-><init>(ILjava/lang/Object;)V
-HSPLandroidx/core/provider/FontRequestWorker$2;->accept(Landroidx/core/provider/FontRequestWorker$TypefaceResult;)V
-HSPLandroidx/core/provider/FontRequestWorker$2;->accept(Ljava/lang/Object;)V
-Landroidx/core/provider/FontRequestWorker$TypefaceResult;
-HSPLandroidx/core/provider/FontRequestWorker$TypefaceResult;-><init>(I)V
-HSPLandroidx/core/provider/FontRequestWorker$TypefaceResult;-><init>(Landroid/graphics/Typeface;)V
-Landroidx/core/provider/FontsContractCompat$FontFamilyResult;
-HSPLandroidx/core/provider/FontsContractCompat$FontFamilyResult;-><init>(I[Landroidx/core/provider/FontsContractCompat$FontInfo;)V
-Landroidx/core/provider/FontsContractCompat$FontInfo;
-HSPLandroidx/core/provider/FontsContractCompat$FontInfo;-><init>(Landroid/net/Uri;IIZI)V
-Landroidx/core/provider/FontsContractCompat$FontRequestCallback;
-HSPLandroidx/core/provider/FontsContractCompat$FontRequestCallback;-><init>()V
-Landroidx/core/provider/RequestExecutor$DefaultThreadFactory;
-HSPLandroidx/core/provider/RequestExecutor$DefaultThreadFactory;-><init>()V
-HSPLandroidx/core/provider/RequestExecutor$DefaultThreadFactory;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;
-Landroidx/core/provider/RequestExecutor$DefaultThreadFactory$ProcessPriorityThread;
-HSPLandroidx/core/provider/RequestExecutor$DefaultThreadFactory$ProcessPriorityThread;-><init>(Ljava/lang/Runnable;Ljava/lang/String;I)V
-HSPLandroidx/core/provider/RequestExecutor$DefaultThreadFactory$ProcessPriorityThread;->run()V
-Landroidx/core/provider/RequestExecutor$ReplyRunnable;
-HSPLandroidx/core/provider/RequestExecutor$ReplyRunnable;-><init>(Landroid/os/Handler;Landroidx/core/provider/FontRequestWorker$1;Landroidx/core/provider/FontRequestWorker$2;)V
-HSPLandroidx/core/provider/RequestExecutor$ReplyRunnable;-><init>(Landroidx/core/provider/RequestExecutor$ReplyRunnable;Landroidx/core/util/Consumer;Ljava/lang/Object;)V
-HSPLandroidx/core/provider/RequestExecutor$ReplyRunnable;->run()V
-Landroidx/core/text/BidiFormatter;
-HSPLandroidx/core/text/BidiFormatter;-><init>(ZILandroidx/core/text/TextDirectionHeuristicsCompat$TextDirectionHeuristicInternal;)V
-HSPLandroidx/core/text/BidiFormatter;->getInstance()Landroidx/core/text/BidiFormatter;
-Landroidx/core/text/TextDirectionHeuristicsCompat;
-Landroidx/core/text/TextDirectionHeuristicsCompat$FirstStrong;
-HSPLandroidx/core/text/TextDirectionHeuristicsCompat$FirstStrong;-><init>()V
-HSPLandroidx/core/text/TextDirectionHeuristicsCompat$FirstStrong;->checkRtl(Ljava/lang/CharSequence;I)I
-Landroidx/core/text/TextDirectionHeuristicsCompat$TextDirectionAlgorithm;
-Landroidx/core/text/TextDirectionHeuristicsCompat$TextDirectionHeuristicImpl;
-HSPLandroidx/core/text/TextDirectionHeuristicsCompat$TextDirectionHeuristicImpl;-><init>(Landroidx/core/text/TextDirectionHeuristicsCompat$FirstStrong;)V
-HSPLandroidx/core/text/TextDirectionHeuristicsCompat$TextDirectionHeuristicImpl;->isRtl(Ljava/lang/CharSequence;I)Z
-Landroidx/core/text/TextDirectionHeuristicsCompat$TextDirectionHeuristicInternal;
-HSPLandroidx/core/text/TextDirectionHeuristicsCompat$TextDirectionHeuristicInternal;-><init>(Landroidx/core/text/TextDirectionHeuristicsCompat$FirstStrong;Z)V
-Landroidx/core/text/TextUtilsCompat;
-Landroidx/core/util/AtomicFile;
-HSPLandroidx/core/util/AtomicFile;-><init>(Ljava/io/File;)V
-HSPLandroidx/core/util/AtomicFile;->finishWrite(Ljava/io/FileOutputStream;)V
-HSPLandroidx/core/util/AtomicFile;->rename(Ljava/io/File;Ljava/io/File;)V
-HSPLandroidx/core/util/AtomicFile;->startWrite()Ljava/io/FileOutputStream;
-Landroidx/core/util/Consumer;
-Landroidx/core/util/Pools$SimplePool;
-HSPLandroidx/core/util/Pools$SimplePool;-><init>(I)V
-HSPLandroidx/core/util/Pools$SimplePool;->acquire()Ljava/lang/Object;
-HSPLandroidx/core/util/Pools$SimplePool;->release(Ljava/lang/Object;)Z
-Landroidx/core/util/Pools$SynchronizedPool;
-HSPLandroidx/core/util/Pools$SynchronizedPool;-><init>(I)V
-HSPLandroidx/core/util/Pools$SynchronizedPool;->acquire()Ljava/lang/Object;
-HSPLandroidx/core/util/Pools$SynchronizedPool;->release(Ljava/lang/Object;)Z
-Landroidx/core/view/AccessibilityDelegateCompat;
-HSPLandroidx/core/view/AccessibilityDelegateCompat;-><init>()V
-HSPLandroidx/core/view/AccessibilityDelegateCompat;-><init>(Landroid/view/View$AccessibilityDelegate;)V
-Landroidx/core/view/AccessibilityDelegateCompat$AccessibilityDelegateAdapter;
-HSPLandroidx/core/view/AccessibilityDelegateCompat$AccessibilityDelegateAdapter;-><init>(Landroidx/core/view/AccessibilityDelegateCompat;)V
-Landroidx/core/view/GestureDetectorCompat;
-HSPLandroidx/core/view/GestureDetectorCompat;-><init>(Landroid/content/Context;Landroid/view/GestureDetector$SimpleOnGestureListener;)V
-Landroidx/core/view/GestureDetectorCompat$GestureDetectorCompatImplJellybeanMr2;
-HSPLandroidx/core/view/GestureDetectorCompat$GestureDetectorCompatImplJellybeanMr2;-><init>(Landroid/content/Context;Landroid/view/GestureDetector$SimpleOnGestureListener;)V
-Landroidx/core/view/KeyEventDispatcher$Component;
-Landroidx/core/view/MenuHost;
-Landroidx/core/view/MenuHostHelper;
-HSPLandroidx/core/view/MenuHostHelper;-><init>(Ljava/lang/Runnable;)V
-Landroidx/core/view/NestedScrollingChild;
-Landroidx/core/view/NestedScrollingChildHelper;
-HSPLandroidx/core/view/NestedScrollingChildHelper;-><init>(Landroid/view/View;)V
-HSPLandroidx/core/view/NestedScrollingChildHelper;->getNestedScrollingParentForType(I)Landroid/view/ViewParent;
-HSPLandroidx/core/view/NestedScrollingChildHelper;->stopNestedScroll(I)V
-Landroidx/core/view/NestedScrollingParent2;
-Landroidx/core/view/NestedScrollingParent3;
-Landroidx/core/view/NestedScrollingParentHelper;
-HSPLandroidx/core/view/NestedScrollingParentHelper;-><init>()V
-Landroidx/core/view/OnApplyWindowInsetsListener;
-Landroidx/core/view/OnReceiveContentViewBehavior;
-Landroidx/core/view/ViewCompat;
-HSPLandroidx/core/view/ViewCompat;->getAccessibilityDelegateInternal(Landroid/view/View;)Landroid/view/View$AccessibilityDelegate;
-HSPLandroidx/core/view/ViewCompat;->notifyViewAccessibilityStateChangedIfNeeded(Landroid/view/View;I)V
-HSPLandroidx/core/view/ViewCompat;->removeActionWithId(Landroid/view/View;I)V
-HSPLandroidx/core/view/ViewCompat;->replaceAccessibilityAction(Landroid/view/View;Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityActionCompat;Ljava/lang/String;Landroidx/core/view/accessibility/AccessibilityViewCommand;)V
-HSPLandroidx/core/view/ViewCompat;->saveAttributeDataForStyleable(Landroid/view/View;Landroid/content/Context;[ILandroid/util/AttributeSet;Landroid/content/res/TypedArray;II)V
-HSPLandroidx/core/view/ViewCompat;->setAccessibilityDelegate(Landroid/view/View;Landroidx/core/view/AccessibilityDelegateCompat;)V
-HSPLandroidx/core/view/ViewCompat;->setOnApplyWindowInsetsListener(Landroid/view/View;Landroidx/core/view/OnApplyWindowInsetsListener;)V
-Landroidx/core/view/ViewCompat$$ExternalSyntheticLambda0;
-HSPLandroidx/core/view/ViewCompat$$ExternalSyntheticLambda0;-><init>()V
-Landroidx/core/view/ViewCompat$1;
-HSPLandroidx/core/view/ViewCompat$1;-><init>(IIII)V
-Landroidx/core/view/ViewCompat$AccessibilityPaneVisibilityManager;
-HSPLandroidx/core/view/ViewCompat$AccessibilityPaneVisibilityManager;-><init>()V
-Landroidx/core/view/ViewCompat$AccessibilityViewProperty;
-HSPLandroidx/core/view/ViewCompat$AccessibilityViewProperty;-><init>(ILjava/lang/Class;II)V
-HSPLandroidx/core/view/ViewCompat$AccessibilityViewProperty;->get(Landroid/view/View;)Ljava/lang/Object;
-Landroidx/core/view/ViewCompat$Api21Impl$1;
-HSPLandroidx/core/view/ViewCompat$Api21Impl$1;-><init>(Landroid/view/View;Landroidx/core/view/OnApplyWindowInsetsListener;)V
-Landroidx/core/view/ViewCompat$Api26Impl;
-HSPLandroidx/core/view/ViewCompat$Api26Impl;->getImportantForAutofill(Landroid/view/View;)I
-HSPLandroidx/core/view/ViewCompat$Api26Impl;->setImportantForAutofill(Landroid/view/View;I)V
-Landroidx/core/view/ViewCompat$Api28Impl;
-HSPLandroidx/core/view/ViewCompat$Api28Impl;->getAccessibilityPaneTitle(Landroid/view/View;)Ljava/lang/CharSequence;
-Landroidx/core/view/ViewCompat$Api29Impl;
-HSPLandroidx/core/view/ViewCompat$Api29Impl;->getAccessibilityDelegate(Landroid/view/View;)Landroid/view/View$AccessibilityDelegate;
-HSPLandroidx/core/view/ViewCompat$Api29Impl;->saveAttributeDataForStyleable(Landroid/view/View;Landroid/content/Context;[ILandroid/util/AttributeSet;Landroid/content/res/TypedArray;II)V
-Landroidx/core/view/ViewConfigurationCompat;
-Landroidx/core/view/ViewConfigurationCompat$Api26Impl;
-HSPLandroidx/core/view/ViewConfigurationCompat$Api26Impl;->getScaledHorizontalScrollFactor(Landroid/view/ViewConfiguration;)F
-HSPLandroidx/core/view/ViewConfigurationCompat$Api26Impl;->getScaledVerticalScrollFactor(Landroid/view/ViewConfiguration;)F
-Landroidx/core/view/WindowInsetsCompat;
-HSPLandroidx/core/view/WindowInsetsCompat;-><init>()V
-HSPLandroidx/core/view/WindowInsetsCompat;-><init>(Landroid/view/WindowInsets;)V
-HSPLandroidx/core/view/WindowInsetsCompat;->toWindowInsetsCompat(Landroid/view/View;Landroid/view/WindowInsets;)Landroidx/core/view/WindowInsetsCompat;
-Landroidx/core/view/WindowInsetsCompat$BuilderImpl;
-HSPLandroidx/core/view/WindowInsetsCompat$BuilderImpl;-><init>()V
-HSPLandroidx/core/view/WindowInsetsCompat$BuilderImpl;-><init>(Landroidx/core/view/WindowInsetsCompat;)V
-Landroidx/core/view/WindowInsetsCompat$BuilderImpl29;
-HSPLandroidx/core/view/WindowInsetsCompat$BuilderImpl29;-><init>()V
-HSPLandroidx/core/view/WindowInsetsCompat$BuilderImpl29;->build()Landroidx/core/view/WindowInsetsCompat;
-Landroidx/core/view/WindowInsetsCompat$Impl;
-HSPLandroidx/core/view/WindowInsetsCompat$Impl;-><init>(Landroidx/core/view/WindowInsetsCompat;)V
-Landroidx/core/view/WindowInsetsCompat$Impl20;
-HSPLandroidx/core/view/WindowInsetsCompat$Impl20;-><init>(Landroidx/core/view/WindowInsetsCompat;Landroid/view/WindowInsets;)V
-HSPLandroidx/core/view/WindowInsetsCompat$Impl20;->copyRootViewBounds(Landroid/view/View;)V
-HSPLandroidx/core/view/WindowInsetsCompat$Impl20;->getInsets(I)Landroidx/core/graphics/Insets;
-HSPLandroidx/core/view/WindowInsetsCompat$Impl20;->getSystemWindowInsets()Landroidx/core/graphics/Insets;
-HSPLandroidx/core/view/WindowInsetsCompat$Impl20;->setOverriddenInsets()V
-HSPLandroidx/core/view/WindowInsetsCompat$Impl20;->setRootWindowInsets(Landroidx/core/view/WindowInsetsCompat;)V
-Landroidx/core/view/WindowInsetsCompat$Impl21;
-HSPLandroidx/core/view/WindowInsetsCompat$Impl21;-><init>(Landroidx/core/view/WindowInsetsCompat;Landroid/view/WindowInsets;)V
-HSPLandroidx/core/view/WindowInsetsCompat$Impl21;->consumeStableInsets()Landroidx/core/view/WindowInsetsCompat;
-HSPLandroidx/core/view/WindowInsetsCompat$Impl21;->consumeSystemWindowInsets()Landroidx/core/view/WindowInsetsCompat;
-HSPLandroidx/core/view/WindowInsetsCompat$Impl21;->getStableInsets()Landroidx/core/graphics/Insets;
-Landroidx/core/view/WindowInsetsCompat$Impl28;
-HSPLandroidx/core/view/WindowInsetsCompat$Impl28;-><init>(Landroidx/core/view/WindowInsetsCompat;Landroid/view/WindowInsets;)V
-HSPLandroidx/core/view/WindowInsetsCompat$Impl28;->consumeDisplayCutout()Landroidx/core/view/WindowInsetsCompat;
-Landroidx/core/view/WindowInsetsCompat$Impl28$$ExternalSyntheticApiModelOutline0;
-HSPLandroidx/core/view/WindowInsetsCompat$Impl28$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/WindowInsets;)Landroid/view/DisplayCutout;
-HSPLandroidx/core/view/WindowInsetsCompat$Impl28$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/WindowInsets;)Landroid/view/WindowInsets;
-Landroidx/core/view/WindowInsetsCompat$Impl29;
-HSPLandroidx/core/view/WindowInsetsCompat$Impl29;-><init>(Landroidx/core/view/WindowInsetsCompat;Landroid/view/WindowInsets;)V
-Landroidx/core/view/WindowInsetsCompat$Impl29$$ExternalSyntheticApiModelOutline0;
-HSPLandroidx/core/view/WindowInsetsCompat$Impl29$$ExternalSyntheticApiModelOutline0;->m()Landroid/view/WindowInsets$Builder;
-HSPLandroidx/core/view/WindowInsetsCompat$Impl29$$ExternalSyntheticApiModelOutline0;->m()V
-HSPLandroidx/core/view/WindowInsetsCompat$Impl29$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/WindowInsets$Builder;)Landroid/view/WindowInsets;
-HSPLandroidx/core/view/WindowInsetsCompat$Impl29$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/WindowInsets;)Landroid/graphics/Insets;
-Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat;
-HSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;-><init>(Landroid/view/accessibility/AccessibilityNodeInfo;)V
-HSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->addAction(Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityActionCompat;)V
-HSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->getExtras()Landroid/os/Bundle;
-PLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->removeAction(Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityActionCompat;)V
-HSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setBoundsInParent(Landroid/graphics/Rect;)V
-HSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setClassName(Ljava/lang/CharSequence;)V
-HSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setHintText(Ljava/lang/CharSequence;)V
-HSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setScrollable(Z)V
-HSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->setText(Ljava/lang/CharSequence;)V
-Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat$$ExternalSyntheticApiModelOutline0;
-HSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$$ExternalSyntheticApiModelOutline0;->m()Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;
-HSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/accessibility/AccessibilityNodeInfo;Ljava/lang/CharSequence;)V
-Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat$$ExternalSyntheticApiModelOutline1;
-HSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$$ExternalSyntheticApiModelOutline1;->m$1()Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;
-HSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$$ExternalSyntheticApiModelOutline1;->m()Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;
-Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityActionCompat;
-HSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityActionCompat;-><init>(I)V
-HSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityActionCompat;-><init>(ILjava/lang/Class;)V
-HSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityActionCompat;-><init>(Ljava/lang/Object;ILjava/lang/String;Landroidx/core/view/accessibility/AccessibilityViewCommand;Ljava/lang/Class;)V
-HSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityActionCompat;->getId()I
-Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityActionCompat$$ExternalSyntheticApiModelOutline0;
-HSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityActionCompat$$ExternalSyntheticApiModelOutline0;->m$1()Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;
-HSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityActionCompat$$ExternalSyntheticApiModelOutline0;->m$2()Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;
-HSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityActionCompat$$ExternalSyntheticApiModelOutline0;->m$3()Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;
-HSPLandroidx/core/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityActionCompat$$ExternalSyntheticApiModelOutline0;->m()Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;
-Landroidx/core/view/accessibility/AccessibilityNodeProviderCompat;
-HSPLandroidx/core/view/accessibility/AccessibilityNodeProviderCompat;-><init>()V
-Landroidx/core/view/accessibility/AccessibilityNodeProviderCompat$AccessibilityNodeProviderApi16;
-HSPLandroidx/core/view/accessibility/AccessibilityNodeProviderCompat$AccessibilityNodeProviderApi16;-><init>(Landroidx/core/view/accessibility/AccessibilityNodeProviderCompat;)V
-HSPLandroidx/core/view/accessibility/AccessibilityNodeProviderCompat$AccessibilityNodeProviderApi16;->createAccessibilityNodeInfo(I)Landroid/view/accessibility/AccessibilityNodeInfo;
-HSPLandroidx/core/view/accessibility/AccessibilityNodeProviderCompat$AccessibilityNodeProviderApi16;->performAction(IILandroid/os/Bundle;)Z
-Landroidx/core/view/accessibility/AccessibilityNodeProviderCompat$AccessibilityNodeProviderApi19;
-HSPLandroidx/core/view/accessibility/AccessibilityNodeProviderCompat$AccessibilityNodeProviderApi19;-><init>(Landroidx/core/view/accessibility/AccessibilityNodeProviderCompat;)V
-Landroidx/core/view/accessibility/AccessibilityNodeProviderCompat$AccessibilityNodeProviderApi26;
-HSPLandroidx/core/view/accessibility/AccessibilityNodeProviderCompat$AccessibilityNodeProviderApi26;-><init>(Landroidx/core/view/accessibility/AccessibilityNodeProviderCompat;)V
-Landroidx/core/view/accessibility/AccessibilityViewCommand;
-Landroidx/core/view/accessibility/AccessibilityViewCommand$CommandArguments;
-Landroidx/core/view/accessibility/AccessibilityViewCommand$MoveAtGranularityArguments;
-Landroidx/core/view/accessibility/AccessibilityViewCommand$MoveHtmlArguments;
-Landroidx/core/view/accessibility/AccessibilityViewCommand$MoveWindowArguments;
-Landroidx/core/view/accessibility/AccessibilityViewCommand$ScrollToPositionArguments;
-Landroidx/core/view/accessibility/AccessibilityViewCommand$SetProgressArguments;
-Landroidx/core/view/accessibility/AccessibilityViewCommand$SetSelectionArguments;
-Landroidx/core/view/accessibility/AccessibilityViewCommand$SetTextArguments;
-Landroidx/core/widget/AutoSizeableTextView;
-Landroidx/core/widget/TextViewCompat;
-HSPLandroidx/core/widget/TextViewCompat;->wrapCustomSelectionActionModeCallback(Landroid/view/ActionMode$Callback;Landroid/widget/TextView;)Landroid/view/ActionMode$Callback;
-Landroidx/core/widget/TextViewOnReceiveContentListener;
-HSPLandroidx/core/widget/TextViewOnReceiveContentListener;-><init>()V
-Landroidx/emoji2/text/EmojiCompat;
-Landroidx/emoji2/text/SpannableBuilder;
-HSPLandroidx/emoji2/text/SpannableBuilder;-><init>(Ljava/lang/Class;Ljava/lang/CharSequence;)V
-HSPLandroidx/emoji2/text/SpannableBuilder;->getSpanEnd(Ljava/lang/Object;)I
-HSPLandroidx/emoji2/text/SpannableBuilder;->getSpanFlags(Ljava/lang/Object;)I
-HSPLandroidx/emoji2/text/SpannableBuilder;->getSpanStart(Ljava/lang/Object;)I
-HSPLandroidx/emoji2/text/SpannableBuilder;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;
-HSPLandroidx/emoji2/text/SpannableBuilder;->getWatcherFor(Ljava/lang/Object;)Landroidx/emoji2/text/SpannableBuilder$WatcherWrapper;
-HSPLandroidx/emoji2/text/SpannableBuilder;->isWatcher(Ljava/lang/Object;)Z
-HSPLandroidx/emoji2/text/SpannableBuilder;->nextSpanTransition(IILjava/lang/Class;)I
-HSPLandroidx/emoji2/text/SpannableBuilder;->removeSpan(Ljava/lang/Object;)V
-HSPLandroidx/emoji2/text/SpannableBuilder;->setSpan(Ljava/lang/Object;III)V
-Landroidx/emoji2/text/SpannableBuilder$WatcherWrapper;
-HSPLandroidx/emoji2/text/SpannableBuilder$WatcherWrapper;-><init>(Ljava/lang/Object;)V
-HSPLandroidx/emoji2/text/SpannableBuilder$WatcherWrapper;->onSpanAdded(Landroid/text/Spannable;Ljava/lang/Object;II)V
-Landroidx/emoji2/viewsintegration/EmojiEditTextHelper;
-HSPLandroidx/emoji2/viewsintegration/EmojiEditTextHelper;-><init>(Landroid/widget/EditText;)V
-Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal;
-HSPLandroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal;-><init>()V
-Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal19;
-HSPLandroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal19;-><init>(Landroid/widget/EditText;)V
-Landroidx/emoji2/viewsintegration/EmojiEditableFactory;
-HSPLandroidx/emoji2/viewsintegration/EmojiEditableFactory;-><init>()V
-HSPLandroidx/emoji2/viewsintegration/EmojiEditableFactory;->newEditable(Ljava/lang/CharSequence;)Landroid/text/Editable;
-Landroidx/emoji2/viewsintegration/EmojiInputFilter;
-HSPLandroidx/emoji2/viewsintegration/EmojiInputFilter;-><init>(Landroid/widget/TextView;)V
-Landroidx/emoji2/viewsintegration/EmojiKeyListener;
-HSPLandroidx/emoji2/viewsintegration/EmojiKeyListener;-><init>(Landroid/text/method/KeyListener;)V
-HSPLandroidx/emoji2/viewsintegration/EmojiKeyListener;->getInputType()I
-Landroidx/emoji2/viewsintegration/EmojiKeyListener$EmojiCompatHandleKeyDownHelper;
-HSPLandroidx/emoji2/viewsintegration/EmojiKeyListener$EmojiCompatHandleKeyDownHelper;-><init>()V
-Landroidx/emoji2/viewsintegration/EmojiTextViewHelper;
-HSPLandroidx/emoji2/viewsintegration/EmojiTextViewHelper;-><init>(Landroid/widget/TextView;)V
-Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal;
-HSPLandroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal;-><init>()V
-Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;
-HSPLandroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;-><init>(Landroid/widget/TextView;)V
-Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$SkippingHelper19;
-HSPLandroidx/emoji2/viewsintegration/EmojiTextViewHelper$SkippingHelper19;-><init>(Landroid/widget/TextView;)V
-HSPLandroidx/emoji2/viewsintegration/EmojiTextViewHelper$SkippingHelper19;->getFilters([Landroid/text/InputFilter;)[Landroid/text/InputFilter;
-HSPLandroidx/emoji2/viewsintegration/EmojiTextViewHelper$SkippingHelper19;->setEnabled(Z)V
-Landroidx/emoji2/viewsintegration/EmojiTextWatcher;
-HSPLandroidx/emoji2/viewsintegration/EmojiTextWatcher;-><init>(Landroid/widget/EditText;)V
-HSPLandroidx/emoji2/viewsintegration/EmojiTextWatcher;->afterTextChanged(Landroid/text/Editable;)V
-HSPLandroidx/emoji2/viewsintegration/EmojiTextWatcher;->beforeTextChanged(Ljava/lang/CharSequence;III)V
-HSPLandroidx/emoji2/viewsintegration/EmojiTextWatcher;->onTextChanged(Ljava/lang/CharSequence;III)V
-Landroidx/fragment/app/Fragment;
-Landroidx/fragment/app/FragmentActivity;
-HSPLandroidx/fragment/app/FragmentActivity;-><init>()V
-HSPLandroidx/fragment/app/FragmentActivity;->getSupportFragmentManager()Landroidx/fragment/app/FragmentManagerImpl;
-HSPLandroidx/fragment/app/FragmentActivity;->markState(Landroidx/fragment/app/FragmentManagerImpl;)Z
-HSPLandroidx/fragment/app/FragmentActivity;->onCreate(Landroid/os/Bundle;)V
-HSPLandroidx/fragment/app/FragmentActivity;->onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;
-HSPLandroidx/fragment/app/FragmentActivity;->onCreateView(Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;
-HSPLandroidx/fragment/app/FragmentActivity;->onDestroy()V
-HSPLandroidx/fragment/app/FragmentActivity;->onPause()V
-HSPLandroidx/fragment/app/FragmentActivity;->onPostResume()V
-HSPLandroidx/fragment/app/FragmentActivity;->onResume()V
-HSPLandroidx/fragment/app/FragmentActivity;->onStart()V
-HSPLandroidx/fragment/app/FragmentActivity;->onStateNotSaved()V
-HSPLandroidx/fragment/app/FragmentActivity;->onStop()V
-Landroidx/fragment/app/FragmentActivity$$ExternalSyntheticLambda0;
-HSPLandroidx/fragment/app/FragmentActivity$$ExternalSyntheticLambda0;-><init>(Landroidx/fragment/app/FragmentActivity;)V
-Landroidx/fragment/app/FragmentActivity$$ExternalSyntheticLambda1;
-HSPLandroidx/fragment/app/FragmentActivity$$ExternalSyntheticLambda1;-><init>(Landroidx/fragment/app/FragmentActivity;I)V
-Landroidx/fragment/app/FragmentActivity$$ExternalSyntheticLambda2;
-HSPLandroidx/fragment/app/FragmentActivity$$ExternalSyntheticLambda2;-><init>(Landroidx/fragment/app/FragmentActivity;)V
-HSPLandroidx/fragment/app/FragmentActivity$$ExternalSyntheticLambda2;->onContextAvailable()V
-Landroidx/fragment/app/FragmentActivity$HostCallbacks;
-HSPLandroidx/fragment/app/FragmentActivity$HostCallbacks;-><init>(Landroidx/fragment/app/FragmentActivity;)V
-HSPLandroidx/fragment/app/FragmentActivity$HostCallbacks;->addMenuProvider(Landroidx/fragment/app/FragmentManager$2;)V
-HSPLandroidx/fragment/app/FragmentActivity$HostCallbacks;->addOnConfigurationChangedListener(Landroidx/core/util/Consumer;)V
-HSPLandroidx/fragment/app/FragmentActivity$HostCallbacks;->addOnMultiWindowModeChangedListener(Landroidx/fragment/app/FragmentManager$$ExternalSyntheticLambda0;)V
-HSPLandroidx/fragment/app/FragmentActivity$HostCallbacks;->addOnPictureInPictureModeChangedListener(Landroidx/fragment/app/FragmentManager$$ExternalSyntheticLambda0;)V
-HSPLandroidx/fragment/app/FragmentActivity$HostCallbacks;->addOnTrimMemoryListener(Landroidx/fragment/app/FragmentManager$$ExternalSyntheticLambda0;)V
-HSPLandroidx/fragment/app/FragmentActivity$HostCallbacks;->getLifecycle()Landroidx/lifecycle/LifecycleRegistry;
-HSPLandroidx/fragment/app/FragmentActivity$HostCallbacks;->getSavedStateRegistry()Landroidx/savedstate/SavedStateRegistry;
-HSPLandroidx/fragment/app/FragmentActivity$HostCallbacks;->getViewModelStore()Landroidx/lifecycle/ViewModelStore;
-HSPLandroidx/fragment/app/FragmentActivity$HostCallbacks;->removeMenuProvider(Landroidx/fragment/app/FragmentManager$2;)V
-HSPLandroidx/fragment/app/FragmentActivity$HostCallbacks;->removeOnConfigurationChangedListener(Landroidx/fragment/app/FragmentManager$$ExternalSyntheticLambda0;)V
-HSPLandroidx/fragment/app/FragmentActivity$HostCallbacks;->removeOnMultiWindowModeChangedListener(Landroidx/fragment/app/FragmentManager$$ExternalSyntheticLambda0;)V
-HSPLandroidx/fragment/app/FragmentActivity$HostCallbacks;->removeOnPictureInPictureModeChangedListener(Landroidx/fragment/app/FragmentManager$$ExternalSyntheticLambda0;)V
-HSPLandroidx/fragment/app/FragmentActivity$HostCallbacks;->removeOnTrimMemoryListener(Landroidx/fragment/app/FragmentManager$$ExternalSyntheticLambda0;)V
-Landroidx/fragment/app/FragmentContainer;
-HSPLandroidx/fragment/app/FragmentContainer;-><init>()V
-Landroidx/fragment/app/FragmentContainerView;
-Landroidx/fragment/app/FragmentController;
-HSPLandroidx/fragment/app/FragmentController;-><init>(Landroidx/fragment/app/FragmentActivity$HostCallbacks;)V
-HSPLandroidx/fragment/app/FragmentController;->noteStateNotSaved()V
-Landroidx/fragment/app/FragmentLayoutInflaterFactory;
-HSPLandroidx/fragment/app/FragmentLayoutInflaterFactory;-><init>(Landroidx/fragment/app/FragmentManagerImpl;)V
-HSPLandroidx/fragment/app/FragmentLayoutInflaterFactory;->onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;
-Landroidx/fragment/app/FragmentLayoutInflaterFactory$1;
-Landroidx/fragment/app/FragmentLifecycleCallbacksDispatcher;
-HSPLandroidx/fragment/app/FragmentLifecycleCallbacksDispatcher;-><init>(Landroidx/fragment/app/FragmentManagerImpl;)V
-Landroidx/fragment/app/FragmentManager$$ExternalSyntheticLambda0;
-HSPLandroidx/fragment/app/FragmentManager$$ExternalSyntheticLambda0;-><init>(Landroidx/fragment/app/FragmentManagerImpl;I)V
-Landroidx/fragment/app/FragmentManager$$ExternalSyntheticLambda1;
-HSPLandroidx/fragment/app/FragmentManager$$ExternalSyntheticLambda1;-><init>(Landroidx/fragment/app/FragmentManagerImpl;)V
-Landroidx/fragment/app/FragmentManager$1;
-HSPLandroidx/fragment/app/FragmentManager$1;-><init>(Landroidx/fragment/app/FragmentManagerImpl;)V
-Landroidx/fragment/app/FragmentManager$2;
-HSPLandroidx/fragment/app/FragmentManager$2;-><init>(Landroidx/fragment/app/FragmentManagerImpl;)V
-Landroidx/fragment/app/FragmentManager$3;
-HSPLandroidx/fragment/app/FragmentManager$3;-><init>(Landroidx/fragment/app/FragmentManagerImpl;)V
-Landroidx/fragment/app/FragmentManager$5;
-HSPLandroidx/fragment/app/FragmentManager$5;-><init>(Landroidx/fragment/app/FragmentManagerImpl;)V
-Landroidx/fragment/app/FragmentManager$8;
-HSPLandroidx/fragment/app/FragmentManager$8;-><init>(Landroidx/fragment/app/FragmentManagerImpl;I)V
-Landroidx/fragment/app/FragmentManager$FragmentIntentSenderContract;
-HSPLandroidx/fragment/app/FragmentManager$FragmentIntentSenderContract;-><init>()V
-Landroidx/fragment/app/FragmentManagerImpl;
-HSPLandroidx/fragment/app/FragmentManagerImpl;-><init>()V
-HSPLandroidx/fragment/app/FragmentManagerImpl;->attachController(Landroidx/fragment/app/FragmentActivity$HostCallbacks;Landroidx/fragment/app/FragmentContainer;Landroidx/fragment/app/Fragment;)V
-HSPLandroidx/fragment/app/FragmentManagerImpl;->collectAllSpecialEffectsController()Ljava/util/HashSet;
-HSPLandroidx/fragment/app/FragmentManagerImpl;->dispatchDestroy()V
-HSPLandroidx/fragment/app/FragmentManagerImpl;->dispatchStateChange(I)V
-HSPLandroidx/fragment/app/FragmentManagerImpl;->doPendingDeferredStart()V
-HSPLandroidx/fragment/app/FragmentManagerImpl;->ensureExecReady(Z)V
-HSPLandroidx/fragment/app/FragmentManagerImpl;->execPendingActions(Z)Z
-HSPLandroidx/fragment/app/FragmentManagerImpl;->isStateSaved()Z
-HSPLandroidx/fragment/app/FragmentManagerImpl;->moveToState(IZ)V
-HSPLandroidx/fragment/app/FragmentManagerImpl;->noteStateNotSaved()V
-HSPLandroidx/fragment/app/FragmentManagerImpl;->startPendingDeferredFragments()V
-HSPLandroidx/fragment/app/FragmentManagerImpl;->updateOnBackPressedCallbackEnabled()V
-Landroidx/fragment/app/FragmentManagerViewModel;
-HSPLandroidx/fragment/app/FragmentManagerViewModel;-><init>(Z)V
-HSPLandroidx/fragment/app/FragmentManagerViewModel;->onCleared()V
-Landroidx/fragment/app/FragmentManagerViewModel$1;
-HSPLandroidx/fragment/app/FragmentManagerViewModel$1;-><init>()V
-HSPLandroidx/fragment/app/FragmentManagerViewModel$1;->create(Ljava/lang/Class;)Landroidx/lifecycle/ViewModel;
-Landroidx/fragment/app/FragmentOnAttachListener;
-Landroidx/fragment/app/FragmentStateManager;
-Landroidx/fragment/app/FragmentStore;
-HSPLandroidx/fragment/app/FragmentStore;-><init>()V
-HSPLandroidx/fragment/app/FragmentStore;->getActiveFragmentStateManagers()Ljava/util/ArrayList;
-HSPLandroidx/fragment/app/FragmentStore;->getFragments()Ljava/util/List;
-Landroidx/fragment/app/strictmode/FragmentStrictMode;
-Landroidx/fragment/app/strictmode/FragmentStrictMode$Flag;
-Landroidx/fragment/app/strictmode/FragmentStrictMode$Policy;
-Landroidx/fragment/app/strictmode/FragmentTagUsageViolation;
-Landroidx/fragment/app/strictmode/Violation;
-Landroidx/interpolator/view/animation/FastOutLinearInInterpolator;
-HSPLandroidx/interpolator/view/animation/FastOutLinearInInterpolator;-><init>()V
-Landroidx/interpolator/view/animation/FastOutSlowInInterpolator;
-HSPLandroidx/interpolator/view/animation/FastOutSlowInInterpolator;-><init>()V
-Landroidx/interpolator/view/animation/LinearOutSlowInInterpolator;
-HSPLandroidx/interpolator/view/animation/LinearOutSlowInInterpolator;-><init>()V
-Landroidx/lifecycle/DefaultLifecycleObserver;
-Landroidx/lifecycle/HasDefaultViewModelProviderFactory;
-Landroidx/lifecycle/Lifecycle;
-HSPLandroidx/lifecycle/Lifecycle;-><init>()V
-Landroidx/lifecycle/Lifecycle$Event;
-HSPLandroidx/lifecycle/Lifecycle$Event;-><init>(ILjava/lang/String;)V
-HSPLandroidx/lifecycle/Lifecycle$Event;->getTargetState()Landroidx/lifecycle/Lifecycle$State;
-Landroidx/lifecycle/Lifecycle$State;
-HSPLandroidx/lifecycle/Lifecycle$State;-><init>(ILjava/lang/String;)V
-Landroidx/lifecycle/LifecycleEventObserver;
-Landroidx/lifecycle/LifecycleObserver;
-Landroidx/lifecycle/LifecycleOwner;
-Landroidx/lifecycle/LifecycleRegistry;
-HSPLandroidx/lifecycle/LifecycleRegistry;-><init>(Landroidx/lifecycle/LifecycleOwner;)V
-HSPLandroidx/lifecycle/LifecycleRegistry;->addObserver(Landroidx/lifecycle/LifecycleObserver;)V
-HSPLandroidx/lifecycle/LifecycleRegistry;->calculateTargetState(Landroidx/lifecycle/LifecycleObserver;)Landroidx/lifecycle/Lifecycle$State;
-HSPLandroidx/lifecycle/LifecycleRegistry;->enforceMainThreadIfNeeded(Ljava/lang/String;)V
-HSPLandroidx/lifecycle/LifecycleRegistry;->handleLifecycleEvent(Landroidx/lifecycle/Lifecycle$Event;)V
-HSPLandroidx/lifecycle/LifecycleRegistry;->moveToState(Landroidx/lifecycle/Lifecycle$State;)V
-HSPLandroidx/lifecycle/LifecycleRegistry;->removeObserver(Landroidx/lifecycle/LifecycleObserver;)V
-HSPLandroidx/lifecycle/LifecycleRegistry;->sync()V
-Landroidx/lifecycle/LifecycleRegistry$ObserverWithState;
-HSPLandroidx/lifecycle/LifecycleRegistry$ObserverWithState;-><init>(Landroidx/lifecycle/LifecycleObserver;Landroidx/lifecycle/Lifecycle$State;)V
-HSPLandroidx/lifecycle/LifecycleRegistry$ObserverWithState;->dispatchEvent(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V
-Landroidx/lifecycle/Lifecycling;
-Landroidx/lifecycle/ReportFragment;
-HSPLandroidx/lifecycle/ReportFragment;-><init>()V
-HSPLandroidx/lifecycle/ReportFragment;->dispatch(Landroidx/lifecycle/Lifecycle$Event;)V
-HSPLandroidx/lifecycle/ReportFragment;->injectIfNeededIn(Landroid/app/Activity;)V
-HSPLandroidx/lifecycle/ReportFragment;->onActivityCreated(Landroid/os/Bundle;)V
-HSPLandroidx/lifecycle/ReportFragment;->onDestroy()V
-HSPLandroidx/lifecycle/ReportFragment;->onPause()V
-HSPLandroidx/lifecycle/ReportFragment;->onResume()V
-HSPLandroidx/lifecycle/ReportFragment;->onStart()V
-HSPLandroidx/lifecycle/ReportFragment;->onStop()V
-Landroidx/lifecycle/ReportFragment$Companion;
-HSPLandroidx/lifecycle/ReportFragment$Companion;->dispatch$lifecycle_runtime_release(Landroid/app/Activity;Landroidx/lifecycle/Lifecycle$Event;)V
-Landroidx/lifecycle/ReportFragment$LifecycleCallbacks;
-HSPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;-><init>()V
-HSPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;->onActivityDestroyed(Landroid/app/Activity;)V
-HSPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;->onActivityPaused(Landroid/app/Activity;)V
-HSPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;->onActivityPostCreated(Landroid/app/Activity;Landroid/os/Bundle;)V
-HSPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;->onActivityPostResumed(Landroid/app/Activity;)V
-HSPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;->onActivityPostStarted(Landroid/app/Activity;)V
-HSPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;->onActivityPreDestroyed(Landroid/app/Activity;)V
-HSPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;->onActivityPrePaused(Landroid/app/Activity;)V
-HSPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;->onActivityPreStopped(Landroid/app/Activity;)V
-HSPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;->onActivityResumed(Landroid/app/Activity;)V
-HSPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;->onActivityStarted(Landroid/app/Activity;)V
-HSPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks;->onActivityStopped(Landroid/app/Activity;)V
-Landroidx/lifecycle/ReportFragment$LifecycleCallbacks$Companion$$ExternalSyntheticApiModelOutline0;
-HSPLandroidx/lifecycle/ReportFragment$LifecycleCallbacks$Companion$$ExternalSyntheticApiModelOutline0;->m(Landroid/app/Activity;Landroidx/lifecycle/ReportFragment$LifecycleCallbacks;)V
-Landroidx/lifecycle/SavedStateHandleAttacher;
-HSPLandroidx/lifecycle/SavedStateHandleAttacher;-><init>(Landroidx/lifecycle/SavedStateHandlesProvider;)V
-HSPLandroidx/lifecycle/SavedStateHandleAttacher;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V
-Landroidx/lifecycle/SavedStateHandleSupport;
-HSPLandroidx/lifecycle/SavedStateHandleSupport;->enableSavedStateHandles(Landroidx/savedstate/SavedStateRegistryOwner;)V
-Landroidx/lifecycle/SavedStateHandleSupport$DEFAULT_ARGS_KEY$1;
-HSPLandroidx/lifecycle/SavedStateHandleSupport$DEFAULT_ARGS_KEY$1;-><init>()V
-Landroidx/lifecycle/SavedStateHandleSupport$savedStateHandlesVM$1$1;
-HSPLandroidx/lifecycle/SavedStateHandleSupport$savedStateHandlesVM$1$1;-><init>()V
-HSPLandroidx/lifecycle/SavedStateHandleSupport$savedStateHandlesVM$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
-Landroidx/lifecycle/SavedStateHandlesProvider;
-HSPLandroidx/lifecycle/SavedStateHandlesProvider;-><init>(Landroidx/savedstate/SavedStateRegistry;Landroidx/lifecycle/ViewModelStoreOwner;)V
-Landroidx/lifecycle/SavedStateHandlesProvider$viewModel$2;
-HSPLandroidx/lifecycle/SavedStateHandlesProvider$viewModel$2;-><init>(Landroidx/lifecycle/ViewModelStoreOwner;)V
-HSPLandroidx/lifecycle/SavedStateHandlesProvider$viewModel$2;->invoke()Ljava/lang/Object;
-Landroidx/lifecycle/SavedStateHandlesVM;
-HSPLandroidx/lifecycle/SavedStateHandlesVM;-><init>()V
-Landroidx/lifecycle/ViewModel;
-HSPLandroidx/lifecycle/ViewModel;-><init>()V
-HSPLandroidx/lifecycle/ViewModel;->onCleared()V
-Landroidx/lifecycle/ViewModelProvider;
-HSPLandroidx/lifecycle/ViewModelProvider;-><init>(Landroidx/lifecycle/ViewModelStore;Landroidx/lifecycle/ViewModelProvider$Factory;)V
-HSPLandroidx/lifecycle/ViewModelProvider;-><init>(Landroidx/lifecycle/ViewModelStore;Landroidx/lifecycle/ViewModelProvider$Factory;Landroidx/lifecycle/viewmodel/CreationExtras;)V
-HSPLandroidx/lifecycle/ViewModelProvider;->get(Ljava/lang/Class;)Landroidx/lifecycle/ViewModel;
-HSPLandroidx/lifecycle/ViewModelProvider;->get(Ljava/lang/Class;Ljava/lang/String;)Landroidx/lifecycle/ViewModel;
-Landroidx/lifecycle/ViewModelProvider$Factory;
-HSPLandroidx/lifecycle/ViewModelProvider$Factory;->create(Ljava/lang/Class;Landroidx/lifecycle/viewmodel/MutableCreationExtras;)Landroidx/lifecycle/ViewModel;
-Landroidx/lifecycle/ViewModelProvider$NewInstanceFactory$Companion$ViewModelKeyImpl;
-HSPLandroidx/lifecycle/ViewModelProvider$NewInstanceFactory$Companion$ViewModelKeyImpl;-><init>()V
-Landroidx/lifecycle/ViewModelStore;
-HSPLandroidx/lifecycle/ViewModelStore;-><init>()V
-HSPLandroidx/lifecycle/ViewModelStore;->clear()V
-Landroidx/lifecycle/ViewModelStoreOwner;
-Landroidx/lifecycle/ViewTreeLifecycleOwner;
-HSPLandroidx/lifecycle/ViewTreeLifecycleOwner;->set(Landroid/view/View;Landroidx/lifecycle/LifecycleOwner;)V
-Landroidx/lifecycle/viewmodel/CreationExtras;
-HSPLandroidx/lifecycle/viewmodel/CreationExtras;-><init>()V
-Landroidx/lifecycle/viewmodel/CreationExtras$Empty;
-HSPLandroidx/lifecycle/viewmodel/CreationExtras$Empty;-><init>()V
-Landroidx/lifecycle/viewmodel/InitializerViewModelFactory;
-HSPLandroidx/lifecycle/viewmodel/InitializerViewModelFactory;-><init>([Landroidx/lifecycle/viewmodel/ViewModelInitializer;)V
-HSPLandroidx/lifecycle/viewmodel/InitializerViewModelFactory;->create(Ljava/lang/Class;Landroidx/lifecycle/viewmodel/MutableCreationExtras;)Landroidx/lifecycle/ViewModel;
-Landroidx/lifecycle/viewmodel/MutableCreationExtras;
-HSPLandroidx/lifecycle/viewmodel/MutableCreationExtras;-><init>()V
-HSPLandroidx/lifecycle/viewmodel/MutableCreationExtras;-><init>(Landroidx/lifecycle/viewmodel/CreationExtras;)V
-Landroidx/lifecycle/viewmodel/ViewModelInitializer;
-HSPLandroidx/lifecycle/viewmodel/ViewModelInitializer;-><init>(Ljava/lang/Class;)V
-Landroidx/mediarouter/media/MediaRouter;
-HSPLandroidx/mediarouter/media/MediaRouter;-><init>(Landroid/content/Context;)V
-HSPLandroidx/mediarouter/media/MediaRouter;->checkCallingThread()V
-HSPLandroidx/mediarouter/media/MediaRouter;->getInstance(Landroid/content/Context;)Landroidx/mediarouter/media/MediaRouter;
-Landroidx/mediarouter/media/MediaRouter$GlobalMediaRouter;
-HSPLandroidx/mediarouter/media/MediaRouter$GlobalMediaRouter;-><init>(Landroid/content/Context;)V
-Landroidx/mediarouter/media/MediaRouter$GlobalMediaRouter$3;
-HSPLandroidx/mediarouter/media/MediaRouter$GlobalMediaRouter$3;-><init>(Landroidx/mediarouter/media/MediaRouter$GlobalMediaRouter;I)V
-HSPLandroidx/mediarouter/media/MediaRouter$GlobalMediaRouter$3;-><init>(Ljava/lang/Object;)V
-Landroidx/mediarouter/media/MediaRouter$GlobalMediaRouter$CallbackHandler;
-HSPLandroidx/mediarouter/media/MediaRouter$GlobalMediaRouter$CallbackHandler;-><init>(Landroidx/mediarouter/media/MediaRouter$GlobalMediaRouter;)V
-Landroidx/mediarouter/media/RemoteControlClientCompat$PlaybackInfo;
-HSPLandroidx/mediarouter/media/RemoteControlClientCompat$PlaybackInfo;-><init>()V
-Landroidx/mediarouter/media/SystemMediaRouteProvider$SyncCallback;
-Landroidx/recyclerview/widget/AdapterHelper;
-HSPLandroidx/recyclerview/widget/AdapterHelper;-><init>(Landroidx/recyclerview/widget/RecyclerView$4;)V
-HSPLandroidx/recyclerview/widget/AdapterHelper;->consumePostponedUpdates()V
-HSPLandroidx/recyclerview/widget/AdapterHelper;->consumeUpdatesInOnePass()V
-HSPLandroidx/recyclerview/widget/AdapterHelper;->preProcess()V
-HSPLandroidx/recyclerview/widget/AdapterHelper;->recycleUpdateOpsAndClearList(Ljava/util/ArrayList;)V
-Landroidx/recyclerview/widget/ChildHelper;
-HSPLandroidx/recyclerview/widget/ChildHelper;-><init>(Landroidx/recyclerview/widget/RecyclerView$4;)V
-HSPLandroidx/recyclerview/widget/ChildHelper;->getChildCount()I
-HSPLandroidx/recyclerview/widget/ChildHelper;->getUnfilteredChildCount()I
-Landroidx/recyclerview/widget/ChildHelper$Bucket;
-HSPLandroidx/recyclerview/widget/ChildHelper$Bucket;-><init>()V
-HSPLandroidx/recyclerview/widget/ChildHelper$Bucket;->reset()V
-Landroidx/recyclerview/widget/DefaultItemAnimator;
-HSPLandroidx/recyclerview/widget/DefaultItemAnimator;-><init>()V
-HSPLandroidx/recyclerview/widget/DefaultItemAnimator;->endAnimations()V
-HSPLandroidx/recyclerview/widget/DefaultItemAnimator;->isRunning()Z
-Landroidx/recyclerview/widget/GapWorker;
-HSPLandroidx/recyclerview/widget/GapWorker;-><init>()V
-Landroidx/recyclerview/widget/GapWorker$1;
-HSPLandroidx/recyclerview/widget/GapWorker$1;-><init>()V
-Landroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;
-HSPLandroidx/recyclerview/widget/GapWorker$LayoutPrefetchRegistryImpl;-><init>()V
-Landroidx/recyclerview/widget/GridLayoutManager;
-HSPLandroidx/recyclerview/widget/GridLayoutManager;-><init>(I)V
-HSPLandroidx/recyclerview/widget/GridLayoutManager;->generateLayoutParams(Landroid/content/Context;Landroid/util/AttributeSet;)Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
-HSPLandroidx/recyclerview/widget/GridLayoutManager;->setSpanCount(I)V
-Landroidx/recyclerview/widget/GridLayoutManager$DefaultSpanSizeLookup;
-HSPLandroidx/recyclerview/widget/GridLayoutManager$DefaultSpanSizeLookup;-><init>()V
-Landroidx/recyclerview/widget/GridLayoutManager$LayoutParams;
-HSPLandroidx/recyclerview/widget/GridLayoutManager$LayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-Landroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;
-HSPLandroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;-><init>()V
-HSPLandroidx/recyclerview/widget/GridLayoutManager$SpanSizeLookup;->invalidateSpanIndexCache()V
-Landroidx/recyclerview/widget/ItemTouchHelper;
-HSPLandroidx/recyclerview/widget/ItemTouchHelper;-><init>(Landroidx/recyclerview/widget/ItemTouchHelper$Callback;)V
-HSPLandroidx/recyclerview/widget/ItemTouchHelper;->attachToRecyclerView(Landroidx/recyclerview/widget/RecyclerView;)V
-Landroidx/recyclerview/widget/ItemTouchHelper$1;
-HSPLandroidx/recyclerview/widget/ItemTouchHelper$1;-><init>(Landroidx/recyclerview/widget/ItemTouchHelper;)V
-Landroidx/recyclerview/widget/ItemTouchHelper$2;
-HSPLandroidx/recyclerview/widget/ItemTouchHelper$2;-><init>(Landroidx/recyclerview/widget/ItemTouchHelper;)V
-Landroidx/recyclerview/widget/ItemTouchHelper$Callback;
-HSPLandroidx/recyclerview/widget/ItemTouchHelper$Callback;-><init>()V
-Landroidx/recyclerview/widget/ItemTouchHelper$Callback$1;
-HSPLandroidx/recyclerview/widget/ItemTouchHelper$Callback$1;-><init>(I)V
-Landroidx/recyclerview/widget/ItemTouchHelper$ItemTouchHelperGestureListener;
-HSPLandroidx/recyclerview/widget/ItemTouchHelper$ItemTouchHelperGestureListener;-><init>(Landroidx/recyclerview/widget/ItemTouchHelper;)V
-Landroidx/recyclerview/widget/ItemTouchHelper$SimpleCallback;
-HSPLandroidx/recyclerview/widget/ItemTouchHelper$SimpleCallback;-><init>()V
-Landroidx/recyclerview/widget/LinearLayoutManager;
-HSPLandroidx/recyclerview/widget/LinearLayoutManager;-><init>(I)V
-HSPLandroidx/recyclerview/widget/LinearLayoutManager;->assertNotInLayoutOrScroll(Ljava/lang/String;)V
-HSPLandroidx/recyclerview/widget/LinearLayoutManager;->calculateExtraLayoutSpace(Landroidx/recyclerview/widget/RecyclerView$State;[I)V
-HSPLandroidx/recyclerview/widget/LinearLayoutManager;->canScrollHorizontally()Z
-HSPLandroidx/recyclerview/widget/LinearLayoutManager;->computeHorizontalScrollOffset(Landroidx/recyclerview/widget/RecyclerView$State;)I
-HSPLandroidx/recyclerview/widget/LinearLayoutManager;->computeScrollOffset(Landroidx/recyclerview/widget/RecyclerView$State;)I
-HSPLandroidx/recyclerview/widget/LinearLayoutManager;->ensureLayoutState()V
-HSPLandroidx/recyclerview/widget/LinearLayoutManager;->fill(Landroidx/recyclerview/widget/RecyclerView$Recycler;Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;Landroidx/recyclerview/widget/RecyclerView$State;Z)I
-HSPLandroidx/recyclerview/widget/LinearLayoutManager;->isAutoMeasureEnabled()Z
-HSPLandroidx/recyclerview/widget/LinearLayoutManager;->isLayoutRTL()Z
-HSPLandroidx/recyclerview/widget/LinearLayoutManager;->onAnchorReady(Landroidx/recyclerview/widget/RecyclerView$Recycler;Landroidx/recyclerview/widget/RecyclerView$State;Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;I)V
-HSPLandroidx/recyclerview/widget/LinearLayoutManager;->onDetachedFromWindow(Landroidx/recyclerview/widget/RecyclerView;)V
-HSPLandroidx/recyclerview/widget/LinearLayoutManager;->onLayoutChildren(Landroidx/recyclerview/widget/RecyclerView$Recycler;Landroidx/recyclerview/widget/RecyclerView$State;)V
-HSPLandroidx/recyclerview/widget/LinearLayoutManager;->onLayoutCompleted(Landroidx/recyclerview/widget/RecyclerView$State;)V
-HSPLandroidx/recyclerview/widget/LinearLayoutManager;->resolveShouldLayoutReverse()V
-HSPLandroidx/recyclerview/widget/LinearLayoutManager;->setOrientation(I)V
-HSPLandroidx/recyclerview/widget/LinearLayoutManager;->shouldMeasureTwice()Z
-HSPLandroidx/recyclerview/widget/LinearLayoutManager;->supportsPredictiveItemAnimations()Z
-HSPLandroidx/recyclerview/widget/LinearLayoutManager;->updateLayoutStateToFillEnd(II)V
-HSPLandroidx/recyclerview/widget/LinearLayoutManager;->updateLayoutStateToFillStart(II)V
-Landroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;
-HSPLandroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;-><init>()V
-HSPLandroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->assignCoordinateFromPadding()V
-HSPLandroidx/recyclerview/widget/LinearLayoutManager$AnchorInfo;->reset()V
-Landroidx/recyclerview/widget/LinearLayoutManager$LayoutChunkResult;
-HSPLandroidx/recyclerview/widget/LinearLayoutManager$LayoutChunkResult;-><init>()V
-Landroidx/recyclerview/widget/LinearLayoutManager$LayoutState;
-HSPLandroidx/recyclerview/widget/LinearLayoutManager$LayoutState;-><init>()V
-Landroidx/recyclerview/widget/OpReorderer;
-HSPLandroidx/recyclerview/widget/OpReorderer;-><init>(Landroidx/recyclerview/widget/AdapterHelper;)V
-Landroidx/recyclerview/widget/OrientationHelper;
-HSPLandroidx/recyclerview/widget/OrientationHelper;-><init>(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;)V
-HSPLandroidx/recyclerview/widget/OrientationHelper;->createOrientationHelper(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;I)Landroidx/recyclerview/widget/OrientationHelper$1;
-Landroidx/recyclerview/widget/OrientationHelper$1;
-HSPLandroidx/recyclerview/widget/OrientationHelper$1;-><init>(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;I)V
-HSPLandroidx/recyclerview/widget/OrientationHelper$1;->getEnd()I
-HSPLandroidx/recyclerview/widget/OrientationHelper$1;->getEndAfterPadding()I
-HSPLandroidx/recyclerview/widget/OrientationHelper$1;->getMode()I
-HSPLandroidx/recyclerview/widget/OrientationHelper$1;->getStartAfterPadding()I
-HSPLandroidx/recyclerview/widget/OrientationHelper$1;->getTotalSpace()I
-Landroidx/recyclerview/widget/RecyclerView;
-HSPLandroidx/recyclerview/widget/RecyclerView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroidx/recyclerview/widget/RecyclerView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
-HSPLandroidx/recyclerview/widget/RecyclerView;->addItemDecoration(Landroidx/recyclerview/widget/RecyclerView$ItemDecoration;)V
-HSPLandroidx/recyclerview/widget/RecyclerView;->addOnChildAttachStateChangeListener(Landroidx/recyclerview/widget/RecyclerView$OnChildAttachStateChangeListener;)V
-HSPLandroidx/recyclerview/widget/RecyclerView;->addOnScrollListener(Landroidx/recyclerview/widget/RecyclerView$OnScrollListener;)V
-HSPLandroidx/recyclerview/widget/RecyclerView;->assertNotInLayoutOrScroll(Ljava/lang/String;)V
-HSPLandroidx/recyclerview/widget/RecyclerView;->clearOldPositions()V
-HSPLandroidx/recyclerview/widget/RecyclerView;->computeHorizontalScrollOffset()I
-HSPLandroidx/recyclerview/widget/RecyclerView;->defaultOnMeasure(II)V
-HSPLandroidx/recyclerview/widget/RecyclerView;->dispatchLayout()V
-HSPLandroidx/recyclerview/widget/RecyclerView;->dispatchLayoutStep1()V
-HSPLandroidx/recyclerview/widget/RecyclerView;->dispatchLayoutStep2()V
-HSPLandroidx/recyclerview/widget/RecyclerView;->fillRemainingScrollValues(Landroidx/recyclerview/widget/RecyclerView$State;)V
-HSPLandroidx/recyclerview/widget/RecyclerView;->findMinMaxChildLayoutPositions([I)V
-HSPLandroidx/recyclerview/widget/RecyclerView;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams;
-HSPLandroidx/recyclerview/widget/RecyclerView;->getScrollingChildHelper()Landroidx/core/view/NestedScrollingChildHelper;
-HSPLandroidx/recyclerview/widget/RecyclerView;->isAttachedToWindow()Z
-HSPLandroidx/recyclerview/widget/RecyclerView;->isComputingLayout()Z
-HSPLandroidx/recyclerview/widget/RecyclerView;->markItemDecorInsetsDirty()V
-HSPLandroidx/recyclerview/widget/RecyclerView;->onAttachedToWindow()V
-HSPLandroidx/recyclerview/widget/RecyclerView;->onDetachedFromWindow()V
-HSPLandroidx/recyclerview/widget/RecyclerView;->onEnterLayoutOrScroll()V
-HSPLandroidx/recyclerview/widget/RecyclerView;->onExitLayoutOrScroll(Z)V
-HSPLandroidx/recyclerview/widget/RecyclerView;->onLayout(ZIIII)V
-HSPLandroidx/recyclerview/widget/RecyclerView;->onMeasure(II)V
-HSPLandroidx/recyclerview/widget/RecyclerView;->onSizeChanged(IIII)V
-HSPLandroidx/recyclerview/widget/RecyclerView;->processAdapterUpdatesAndSetAnimationFlags()V
-HSPLandroidx/recyclerview/widget/RecyclerView;->processDataSetCompletelyChanged(Z)V
-HSPLandroidx/recyclerview/widget/RecyclerView;->removeItemDecoration(Landroidx/recyclerview/widget/RecyclerView$ItemDecoration;)V
-HSPLandroidx/recyclerview/widget/RecyclerView;->removeOnScrollListener(Landroidx/recyclerview/widget/RecyclerView$OnScrollListener;)V
-HSPLandroidx/recyclerview/widget/RecyclerView;->requestLayout()V
-HSPLandroidx/recyclerview/widget/RecyclerView;->setAdapter(Landroidx/recyclerview/widget/RecyclerView$Adapter;)V
-HSPLandroidx/recyclerview/widget/RecyclerView;->setClipToPadding(Z)V
-HSPLandroidx/recyclerview/widget/RecyclerView;->setLayoutManager(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;)V
-HSPLandroidx/recyclerview/widget/RecyclerView;->setNestedScrollingEnabled(Z)V
-HSPLandroidx/recyclerview/widget/RecyclerView;->setScrollState(I)V
-HSPLandroidx/recyclerview/widget/RecyclerView;->startInterceptRequestLayout()V
-HSPLandroidx/recyclerview/widget/RecyclerView;->stopInterceptRequestLayout(Z)V
-HSPLandroidx/recyclerview/widget/RecyclerView;->stopNestedScroll()V
-HSPLandroidx/recyclerview/widget/RecyclerView;->suppressLayout(Z)V
-Landroidx/recyclerview/widget/RecyclerView$1;
-HSPLandroidx/recyclerview/widget/RecyclerView$1;-><init>(ILandroidx/recyclerview/widget/RecyclerView;)V
-Landroidx/recyclerview/widget/RecyclerView$3;
-HSPLandroidx/recyclerview/widget/RecyclerView$3;-><init>()V
-Landroidx/recyclerview/widget/RecyclerView$4;
-HSPLandroidx/recyclerview/widget/RecyclerView$4;-><init>(Landroidx/recyclerview/widget/RecyclerView;)V
-HSPLandroidx/recyclerview/widget/RecyclerView$4;->getChildCount()I
-Landroidx/recyclerview/widget/RecyclerView$Adapter;
-HSPLandroidx/recyclerview/widget/RecyclerView$Adapter;-><init>()V
-HSPLandroidx/recyclerview/widget/RecyclerView$Adapter;->onAttachedToRecyclerView(Landroidx/recyclerview/widget/RecyclerView;)V
-HSPLandroidx/recyclerview/widget/RecyclerView$Adapter;->registerAdapterDataObserver(Landroidx/recyclerview/widget/RecyclerView$AdapterDataObserver;)V
-Landroidx/recyclerview/widget/RecyclerView$AdapterDataObservable;
-HSPLandroidx/recyclerview/widget/RecyclerView$AdapterDataObservable;-><init>()V
-Landroidx/recyclerview/widget/RecyclerView$AdapterDataObserver;
-HSPLandroidx/recyclerview/widget/RecyclerView$AdapterDataObserver;-><init>()V
-Landroidx/recyclerview/widget/RecyclerView$ItemDecoration;
-HSPLandroidx/recyclerview/widget/RecyclerView$ItemDecoration;-><init>()V
-Landroidx/recyclerview/widget/RecyclerView$LayoutManager;
-HSPLandroidx/recyclerview/widget/RecyclerView$LayoutManager;-><init>()V
-HSPLandroidx/recyclerview/widget/RecyclerView$LayoutManager;->chooseSize(III)I
-HSPLandroidx/recyclerview/widget/RecyclerView$LayoutManager;->detachAndScrapAttachedViews(Landroidx/recyclerview/widget/RecyclerView$Recycler;)V
-HSPLandroidx/recyclerview/widget/RecyclerView$LayoutManager;->getChildCount()I
-HSPLandroidx/recyclerview/widget/RecyclerView$LayoutManager;->getLayoutDirection()I
-HSPLandroidx/recyclerview/widget/RecyclerView$LayoutManager;->getPaddingLeft()I
-HSPLandroidx/recyclerview/widget/RecyclerView$LayoutManager;->getPaddingRight()I
-HSPLandroidx/recyclerview/widget/RecyclerView$LayoutManager;->removeAndRecycleScrapInt(Landroidx/recyclerview/widget/RecyclerView$Recycler;)V
-HSPLandroidx/recyclerview/widget/RecyclerView$LayoutManager;->requestLayout()V
-HSPLandroidx/recyclerview/widget/RecyclerView$LayoutManager;->setExactMeasureSpecsFrom(Landroidx/recyclerview/widget/RecyclerView;)V
-HSPLandroidx/recyclerview/widget/RecyclerView$LayoutManager;->setMeasureSpecs(II)V
-HSPLandroidx/recyclerview/widget/RecyclerView$LayoutManager;->setMeasuredDimensionFromChildren(II)V
-HSPLandroidx/recyclerview/widget/RecyclerView$LayoutManager;->setRecyclerView(Landroidx/recyclerview/widget/RecyclerView;)V
-Landroidx/recyclerview/widget/RecyclerView$LayoutManager$1;
-HSPLandroidx/recyclerview/widget/RecyclerView$LayoutManager$1;-><init>(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;I)V
-Landroidx/recyclerview/widget/RecyclerView$LayoutParams;
-HSPLandroidx/recyclerview/widget/RecyclerView$LayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-Landroidx/recyclerview/widget/RecyclerView$OnChildAttachStateChangeListener;
-Landroidx/recyclerview/widget/RecyclerView$OnItemTouchListener;
-Landroidx/recyclerview/widget/RecyclerView$OnScrollListener;
-HSPLandroidx/recyclerview/widget/RecyclerView$OnScrollListener;-><init>()V
-Landroidx/recyclerview/widget/RecyclerView$RecycledViewPool;
-HSPLandroidx/recyclerview/widget/RecyclerView$RecycledViewPool;-><init>()V
-HSPLandroidx/recyclerview/widget/RecyclerView$RecycledViewPool;->clear()V
-Landroidx/recyclerview/widget/RecyclerView$Recycler;
-HSPLandroidx/recyclerview/widget/RecyclerView$Recycler;-><init>(Landroidx/recyclerview/widget/RecyclerView;)V
-HSPLandroidx/recyclerview/widget/RecyclerView$Recycler;->getRecycledViewPool()Landroidx/recyclerview/widget/RecyclerView$RecycledViewPool;
-HSPLandroidx/recyclerview/widget/RecyclerView$Recycler;->maybeSendPoolingContainerAttach()V
-HSPLandroidx/recyclerview/widget/RecyclerView$Recycler;->poolingContainerDetach(Landroidx/recyclerview/widget/RecyclerView$Adapter;Z)V
-HSPLandroidx/recyclerview/widget/RecyclerView$Recycler;->recycleAndClearCachedViews()V
-HSPLandroidx/recyclerview/widget/RecyclerView$Recycler;->updateViewCacheSize()V
-Landroidx/recyclerview/widget/RecyclerView$RecyclerListener;
-Landroidx/recyclerview/widget/RecyclerView$RecyclerViewDataObserver;
-HSPLandroidx/recyclerview/widget/RecyclerView$RecyclerViewDataObserver;-><init>(Landroidx/recyclerview/widget/RecyclerView;)V
-Landroidx/recyclerview/widget/RecyclerView$SmoothScroller$ScrollVectorProvider;
-Landroidx/recyclerview/widget/RecyclerView$State;
-HSPLandroidx/recyclerview/widget/RecyclerView$State;-><init>()V
-HSPLandroidx/recyclerview/widget/RecyclerView$State;->assertLayoutStep(I)V
-HSPLandroidx/recyclerview/widget/RecyclerView$State;->getItemCount()I
-Landroidx/recyclerview/widget/RecyclerView$StretchEdgeEffectFactory;
-HSPLandroidx/recyclerview/widget/RecyclerView$StretchEdgeEffectFactory;-><init>()V
-Landroidx/recyclerview/widget/RecyclerView$ViewFlinger;
-HSPLandroidx/recyclerview/widget/RecyclerView$ViewFlinger;-><init>(Landroidx/recyclerview/widget/RecyclerView;)V
-Landroidx/recyclerview/widget/RecyclerViewAccessibilityDelegate;
-HSPLandroidx/recyclerview/widget/RecyclerViewAccessibilityDelegate;-><init>(Landroidx/recyclerview/widget/RecyclerView;)V
-HSPLandroidx/recyclerview/widget/RecyclerViewAccessibilityDelegate;->getItemDelegate()Landroidx/core/view/AccessibilityDelegateCompat;
-Landroidx/recyclerview/widget/RecyclerViewAccessibilityDelegate$ItemDelegate;
-HSPLandroidx/recyclerview/widget/RecyclerViewAccessibilityDelegate$ItemDelegate;-><init>(Landroidx/recyclerview/widget/RecyclerViewAccessibilityDelegate;)V
-Landroidx/recyclerview/widget/SimpleItemAnimator;
-HSPLandroidx/recyclerview/widget/SimpleItemAnimator;-><init>()V
-Landroidx/recyclerview/widget/ViewBoundsCheck;
-HSPLandroidx/recyclerview/widget/ViewBoundsCheck;-><init>(Landroidx/recyclerview/widget/RecyclerView$LayoutManager$1;)V
-Landroidx/recyclerview/widget/ViewBoundsCheck$BoundFlags;
-HSPLandroidx/recyclerview/widget/ViewBoundsCheck$BoundFlags;-><init>()V
-Landroidx/recyclerview/widget/ViewBoundsCheck$Callback;
-Landroidx/recyclerview/widget/ViewInfoStore;
-HSPLandroidx/recyclerview/widget/ViewInfoStore;-><init>()V
-Landroidx/recyclerview/widget/ViewInfoStore$InfoRecord;
-Landroidx/savedstate/Recreator;
-HSPLandroidx/savedstate/Recreator;-><init>(Landroidx/savedstate/SavedStateRegistryOwner;)V
-HSPLandroidx/savedstate/Recreator;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V
-Landroidx/savedstate/SavedStateRegistry;
-HSPLandroidx/savedstate/SavedStateRegistry;-><init>()V
-HSPLandroidx/savedstate/SavedStateRegistry;->consumeRestoredStateForKey(Ljava/lang/String;)Landroid/os/Bundle;
-HSPLandroidx/savedstate/SavedStateRegistry;->registerSavedStateProvider(Ljava/lang/String;Landroidx/savedstate/SavedStateRegistry$SavedStateProvider;)V
-Landroidx/savedstate/SavedStateRegistry$$ExternalSyntheticLambda0;
-HSPLandroidx/savedstate/SavedStateRegistry$$ExternalSyntheticLambda0;-><init>(Landroidx/savedstate/SavedStateRegistry;)V
-HSPLandroidx/savedstate/SavedStateRegistry$$ExternalSyntheticLambda0;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V
-Landroidx/savedstate/SavedStateRegistry$SavedStateProvider;
-Landroidx/savedstate/SavedStateRegistryController;
-HSPLandroidx/savedstate/SavedStateRegistryController;-><init>(Landroidx/savedstate/SavedStateRegistryOwner;)V
-HSPLandroidx/savedstate/SavedStateRegistryController;->performAttach()V
-HSPLandroidx/savedstate/SavedStateRegistryController;->performRestore(Landroid/os/Bundle;)V
-Landroidx/savedstate/SavedStateRegistryOwner;
-Landroidx/savedstate/ViewTreeSavedStateRegistryOwner;
-HSPLandroidx/savedstate/ViewTreeSavedStateRegistryOwner;->set(Landroid/view/View;Landroidx/savedstate/SavedStateRegistryOwner;)V
-Landroidx/vectordrawable/graphics/drawable/VectorDrawableCommon;
-Landroidx/vectordrawable/graphics/drawable/VectorDrawableCompat;
-Landroidx/viewpager/widget/ViewPager$OnPageChangeListener;
-Lcom/google/android/aidl/BaseStub;
-HSPLcom/google/android/aidl/BaseStub;-><init>(Ljava/lang/String;)V
-Lcom/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider;
-HSPLcom/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider;-><init>()V
-HSPLcom/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider;->getBookmarkAppWidgetUpdateAction(Landroid/content/Context;)Ljava/lang/String;
-HSPLcom/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider;->onReceive$org$chromium$chrome$browser$bookmarkswidget$BookmarkWidgetProvider(Landroid/content/Context;Landroid/content/Intent;)V
-HSPLcom/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-HSPLcom/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider;->performUpdate(Landroid/content/Context;Landroid/appwidget/AppWidgetManager;[I)V
-Lcom/google/android/datatransport/runtime/TransportImpl$$ExternalSyntheticLambda0;
-HSPLcom/google/android/datatransport/runtime/TransportImpl$$ExternalSyntheticLambda0;-><init>()V
-Lcom/google/android/gms/auth/GoogleAuthException;
-Lcom/google/android/gms/cast/Cast$Listener;
-HSPLcom/google/android/gms/cast/Cast$Listener;-><init>()V
-Lcom/google/android/gms/cast/framework/SessionManagerListener;
-Lcom/google/android/gms/cast/framework/media/RemoteMediaClient$Callback;
-HSPLcom/google/android/gms/cast/framework/media/RemoteMediaClient$Callback;-><init>()V
-Lcom/google/android/gms/common/GoogleApiAvailability;
-HSPLcom/google/android/gms/common/GoogleApiAvailability;-><init>()V
-HSPLcom/google/android/gms/common/GoogleApiAvailability;->isGooglePlayServicesAvailable(Landroid/content/Context;I)I
-Lcom/google/android/gms/common/GoogleApiAvailability$$ExternalSyntheticApiModelOutline0;
-HSPLcom/google/android/gms/common/GoogleApiAvailability$$ExternalSyntheticApiModelOutline0;->m()V
-Lcom/google/android/gms/common/GoogleApiAvailabilityLight;
-HSPLcom/google/android/gms/common/GoogleApiAvailabilityLight;-><init>()V
-HSPLcom/google/android/gms/common/GoogleApiAvailabilityLight;->isGooglePlayServicesAvailable(Landroid/content/Context;I)I
-Lcom/google/android/gms/common/GoogleCertificates;
-Lcom/google/android/gms/common/GoogleCertificates$1;
-HSPLcom/google/android/gms/common/GoogleCertificates$1;-><init>(I[B)V
-Lcom/google/android/gms/common/GoogleCertificates$CertData;
-HSPLcom/google/android/gms/common/GoogleCertificates$CertData;-><init>([B)V
-HSPLcom/google/android/gms/common/GoogleCertificates$CertData;->equals(Ljava/lang/Object;)Z
-HSPLcom/google/android/gms/common/GoogleCertificates$CertData;->extractBytes(Ljava/lang/String;)[B
-Lcom/google/android/gms/common/GoogleCertificates$FullCertData;
-HSPLcom/google/android/gms/common/GoogleCertificates$FullCertData;-><init>([B)V
-HSPLcom/google/android/gms/common/GoogleCertificates$FullCertData;->getBytes()[B
-Lcom/google/android/gms/common/GoogleCertificates$LazyCertData;
-HSPLcom/google/android/gms/common/GoogleCertificates$LazyCertData;-><init>([B)V
-HSPLcom/google/android/gms/common/GoogleCertificates$LazyCertData;->getBytes()[B
-Lcom/google/android/gms/common/GoogleCertificates$VALID_PUBLIC_SIGNATURES;
-Lcom/google/android/gms/common/GooglePlayServicesUtilLight;
-Lcom/google/android/gms/common/GoogleSignatureVerifier;
-HSPLcom/google/android/gms/common/GoogleSignatureVerifier;-><init>(Landroid/content/Context;)V
-HSPLcom/google/android/gms/common/GoogleSignatureVerifier;->isGooglePublicSignedPackage(Landroid/content/pm/PackageInfo;)Z
-HSPLcom/google/android/gms/common/GoogleSignatureVerifier;->verifySignature(Landroid/content/pm/PackageInfo;[Lcom/google/android/gms/common/GoogleCertificates$CertData;)Lcom/google/android/gms/common/GoogleCertificates$CertData;
-Lcom/google/android/gms/common/api/internal/RegistrationMethods$Builder$$ExternalSyntheticLambda0;
-HSPLcom/google/android/gms/common/api/internal/RegistrationMethods$Builder$$ExternalSyntheticLambda0;-><init>()V
-HSPLcom/google/android/gms/common/api/internal/RegistrationMethods$Builder$$ExternalSyntheticLambda0;->run()V
-Lcom/google/android/gms/common/internal/ICertData;
-Lcom/google/android/gms/common/internal/ICertData$Stub;
-HSPLcom/google/android/gms/common/internal/ICertData$Stub;-><init>()V
-Lcom/google/android/gms/common/internal/MetadataValueReader;
-Lcom/google/android/gms/common/util/DeviceProperties;
-HSPLcom/google/android/gms/common/util/DeviceProperties;->isWearableWithoutPlayStore(Landroid/content/Context;)Z
-Lcom/google/android/gms/common/util/ProcessUtils$$ExternalSyntheticApiModelOutline0;
-HSPLcom/google/android/gms/common/util/ProcessUtils$$ExternalSyntheticApiModelOutline0;->m()Ljava/lang/String;
-Lcom/google/android/gms/common/wrappers/PackageManagerWrapper;
-HSPLcom/google/android/gms/common/wrappers/PackageManagerWrapper;-><init>(Landroid/content/Context;)V
-HSPLcom/google/android/gms/common/wrappers/PackageManagerWrapper;->getApplicationInfo(ILjava/lang/String;)Landroid/content/pm/ApplicationInfo;
-Lcom/google/android/gms/common/wrappers/Wrappers;
-HSPLcom/google/android/gms/common/wrappers/Wrappers;-><init>()V
-HSPLcom/google/android/gms/common/wrappers/Wrappers;->packageManager(Landroid/content/Context;)Lcom/google/android/gms/common/wrappers/PackageManagerWrapper;
-Lcom/google/android/gms/dynamic/IObjectWrapper;
-Lcom/google/android/gms/dynamic/IObjectWrapper$Stub;
-HSPLcom/google/android/gms/dynamic/IObjectWrapper$Stub;-><init>()V
-Lcom/google/android/gms/dynamic/ObjectWrapper;
-HSPLcom/google/android/gms/dynamic/ObjectWrapper;-><init>(Ljava/lang/Object;)V
-HSPLcom/google/android/gms/dynamic/ObjectWrapper;->unwrap(Lcom/google/android/gms/dynamic/IObjectWrapper;)Ljava/lang/Object;
-Lcom/google/android/material/animation/AnimationUtils;
-Lcom/google/android/material/appbar/AppBarLayout;
-HSPLcom/google/android/material/appbar/AppBarLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLcom/google/android/material/appbar/AppBarLayout;->checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z
-HSPLcom/google/android/material/appbar/AppBarLayout;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams;
-HSPLcom/google/android/material/appbar/AppBarLayout;->setOrientation(I)V
-Lcom/google/android/material/appbar/AppBarLayout$$ExternalSyntheticApiModelOutline0;
-HSPLcom/google/android/material/appbar/AppBarLayout$$ExternalSyntheticApiModelOutline0;->m(Lcom/google/android/material/appbar/AppBarLayout;Z)V
-Lcom/google/android/material/appbar/AppBarLayout$$ExternalSyntheticLambda1;
-HSPLcom/google/android/material/appbar/AppBarLayout$$ExternalSyntheticLambda1;-><init>(Lcom/google/android/material/appbar/AppBarLayout;Lcom/google/android/material/shape/MaterialShapeDrawable;I)V
-Lcom/google/android/material/appbar/AppBarLayout$1;
-HSPLcom/google/android/material/appbar/AppBarLayout$1;-><init>(Lcom/google/android/material/appbar/AppBarLayout;)V
-Lcom/google/android/material/appbar/AppBarLayout$BaseOnOffsetChangedListener;
-Lcom/google/android/material/appbar/AppBarLayout$Behavior;
-HSPLcom/google/android/material/appbar/AppBarLayout$Behavior;-><init>()V
-Lcom/google/android/material/appbar/AppBarLayout$Behavior$DragCallback;
-HSPLcom/google/android/material/appbar/AppBarLayout$Behavior$DragCallback;-><init>()V
-Lcom/google/android/material/appbar/AppBarLayout$LayoutParams;
-HSPLcom/google/android/material/appbar/AppBarLayout$LayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-Lcom/google/android/material/appbar/AppBarLayout$OnOffsetChangedListener;
-Lcom/google/android/material/appbar/AppBarLayout$ScrollingViewBehavior;
-HSPLcom/google/android/material/appbar/AppBarLayout$ScrollingViewBehavior;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-Lcom/google/android/material/appbar/HeaderBehavior;
-HSPLcom/google/android/material/appbar/HeaderBehavior;-><init>()V
-Lcom/google/android/material/appbar/ViewOffsetBehavior;
-HSPLcom/google/android/material/appbar/ViewOffsetBehavior;-><init>()V
-HSPLcom/google/android/material/appbar/ViewOffsetBehavior;-><init>(I)V
-Lcom/google/android/material/appbar/ViewUtilsLollipop;
-Lcom/google/android/material/color/DynamicColors;
-HSPLcom/google/android/material/color/DynamicColors;->isDynamicColorAvailable()Z
-Lcom/google/android/material/color/DynamicColors$1;
-HSPLcom/google/android/material/color/DynamicColors$1;-><init>()V
-Lcom/google/android/material/color/DynamicColors$2;
-HSPLcom/google/android/material/color/DynamicColors$2;-><init>()V
-Lcom/google/android/material/color/DynamicColors$DeviceSupportCondition;
-Lcom/google/android/material/color/MaterialColors;
-HSPLcom/google/android/material/color/MaterialColors;->getColor(ILandroid/content/Context;Ljava/lang/String;)I
-HSPLcom/google/android/material/color/MaterialColors;->getColor(Landroid/content/Context;II)I
-HSPLcom/google/android/material/color/MaterialColors;->getColor(Landroid/view/View;I)I
-HSPLcom/google/android/material/color/MaterialColors;->layer(FII)I
-Lcom/google/android/material/elevation/ElevationOverlayProvider;
-HSPLcom/google/android/material/elevation/ElevationOverlayProvider;-><init>(Landroid/content/Context;)V
-HSPLcom/google/android/material/elevation/ElevationOverlayProvider;-><init>(ZIIIF)V
-HSPLcom/google/android/material/elevation/ElevationOverlayProvider;->compositeOverlay(IF)I
-HSPLcom/google/android/material/elevation/ElevationOverlayProvider;->compositeOverlayIfNeeded(IF)I
-Lcom/google/android/material/internal/ThemeEnforcement;
-HSPLcom/google/android/material/internal/ThemeEnforcement;->checkCompatibleTheme(Landroid/content/Context;Landroid/util/AttributeSet;II)V
-HSPLcom/google/android/material/internal/ThemeEnforcement;->checkTextAppearance(Landroid/content/Context;Landroid/util/AttributeSet;[III[I)V
-HSPLcom/google/android/material/internal/ThemeEnforcement;->checkTheme(Landroid/content/Context;[ILjava/lang/String;)V
-HSPLcom/google/android/material/internal/ThemeEnforcement;->obtainStyledAttributes(Landroid/content/Context;Landroid/util/AttributeSet;[III[I)Landroid/content/res/TypedArray;
-Lcom/google/android/material/motion/MotionUtils;
-HSPLcom/google/android/material/motion/MotionUtils;->resolveThemeDuration(Landroid/content/Context;II)I
-HSPLcom/google/android/material/motion/MotionUtils;->resolveThemeInterpolator(Landroid/content/Context;ILandroid/view/animation/Interpolator;)Landroid/animation/TimeInterpolator;
-Lcom/google/android/material/resources/MaterialAttributes;
-HSPLcom/google/android/material/resources/MaterialAttributes;->resolve(Landroid/content/Context;I)Landroid/util/TypedValue;
-HSPLcom/google/android/material/resources/MaterialAttributes;->resolveTypedValueOrThrow(ILandroid/content/Context;Ljava/lang/String;)Landroid/util/TypedValue;
-Lcom/google/android/material/resources/MaterialResources;
-HSPLcom/google/android/material/resources/MaterialResources;->getColorStateList(Landroid/content/Context;Landroid/content/res/TypedArray;I)Landroid/content/res/ColorStateList;
-Lcom/google/android/material/shadow/ShadowRenderer;
-HSPLcom/google/android/material/shadow/ShadowRenderer;-><init>()V
-HSPLcom/google/android/material/shadow/ShadowRenderer;->setShadowColor(I)V
-Lcom/google/android/material/shape/AbsoluteCornerSize;
-HSPLcom/google/android/material/shape/AbsoluteCornerSize;-><init>(F)V
-Lcom/google/android/material/shape/CornerSize;
-Lcom/google/android/material/shape/CornerTreatment;
-HSPLcom/google/android/material/shape/CornerTreatment;-><init>()V
-Lcom/google/android/material/shape/EdgeTreatment;
-HSPLcom/google/android/material/shape/EdgeTreatment;-><init>()V
-Lcom/google/android/material/shape/MaterialShapeDrawable;
-HSPLcom/google/android/material/shape/MaterialShapeDrawable;-><init>()V
-HSPLcom/google/android/material/shape/MaterialShapeDrawable;-><init>(Lcom/google/android/material/shape/MaterialShapeDrawable$MaterialShapeDrawableState;)V
-HSPLcom/google/android/material/shape/MaterialShapeDrawable;-><init>(Lcom/google/android/material/shape/ShapeAppearanceModel;)V
-HSPLcom/google/android/material/shape/MaterialShapeDrawable;->calculateTintFilter(Landroid/content/res/ColorStateList;Landroid/graphics/PorterDuff$Mode;Landroid/graphics/Paint;Z)Landroid/graphics/PorterDuffColorFilter;
-HSPLcom/google/android/material/shape/MaterialShapeDrawable;->getOpacity()I
-HSPLcom/google/android/material/shape/MaterialShapeDrawable;->getPadding(Landroid/graphics/Rect;)Z
-HSPLcom/google/android/material/shape/MaterialShapeDrawable;->initializeElevationOverlay(Landroid/content/Context;)V
-HSPLcom/google/android/material/shape/MaterialShapeDrawable;->invalidateSelf()V
-HSPLcom/google/android/material/shape/MaterialShapeDrawable;->isStateful()Z
-HSPLcom/google/android/material/shape/MaterialShapeDrawable;->onStateChange([I)Z
-HSPLcom/google/android/material/shape/MaterialShapeDrawable;->setFillColor(Landroid/content/res/ColorStateList;)V
-HSPLcom/google/android/material/shape/MaterialShapeDrawable;->updateColorsForState([I)Z
-HSPLcom/google/android/material/shape/MaterialShapeDrawable;->updateTintFilter()Z
-HSPLcom/google/android/material/shape/MaterialShapeDrawable;->updateZ()V
-Lcom/google/android/material/shape/MaterialShapeDrawable$1;
-HSPLcom/google/android/material/shape/MaterialShapeDrawable$1;-><init>(Lcom/google/android/material/shape/MaterialShapeDrawable;)V
-Lcom/google/android/material/shape/MaterialShapeDrawable$MaterialShapeDrawableState;
-HSPLcom/google/android/material/shape/MaterialShapeDrawable$MaterialShapeDrawableState;-><init>(Lcom/google/android/material/shape/ShapeAppearanceModel;)V
-Lcom/google/android/material/shape/RoundedCornerTreatment;
-HSPLcom/google/android/material/shape/RoundedCornerTreatment;-><init>()V
-Lcom/google/android/material/shape/ShapeAppearanceModel;
-HSPLcom/google/android/material/shape/ShapeAppearanceModel;-><init>()V
-Lcom/google/android/material/shape/ShapeAppearancePathProvider;
-HSPLcom/google/android/material/shape/ShapeAppearancePathProvider;-><init>()V
-Lcom/google/android/material/shape/ShapeAppearancePathProvider$Lazy;
-Lcom/google/android/material/shape/ShapePath;
-HSPLcom/google/android/material/shape/ShapePath;-><init>()V
-HSPLcom/google/android/material/shape/ShapePath;->reset(FFF)V
-Lcom/google/android/material/shape/ShapePath$ShadowCompatOperation;
-Lcom/google/android/material/tabs/TabLayout$BaseOnTabSelectedListener;
-Lcom/google/android/material/tabs/TabLayout$OnTabSelectedListener;
-Lcom/google/android/material/theme/overlay/MaterialThemeOverlay;
-HSPLcom/google/android/material/theme/overlay/MaterialThemeOverlay;->wrap(Landroid/content/Context;Landroid/util/AttributeSet;II)Landroid/content/Context;
-Lcom/google/common/collect/Hashing;
-HSPLcom/google/common/collect/Hashing;->smear(I)I
-Lcom/google/common/collect/ImmutableCollection;
-Lcom/google/common/collect/ImmutableCollection$Builder;
-HSPLcom/google/common/collect/ImmutableCollection$Builder;->expandedCapacity(II)I
-Lcom/google/common/collect/ImmutableMap;
-HSPLcom/google/common/collect/ImmutableMap;-><init>()V
-Lcom/google/common/collect/ImmutableMap$Builder;
-HSPLcom/google/common/collect/ImmutableMap$Builder;-><init>(I)V
-HSPLcom/google/common/collect/ImmutableMap$Builder;->buildOrThrow()Lcom/google/common/collect/RegularImmutableMap;
-HSPLcom/google/common/collect/ImmutableMap$Builder;->put(Ljava/lang/Object;Ljava/lang/Object;)V
-Lcom/google/common/collect/ImmutableSet;
-HSPLcom/google/common/collect/ImmutableSet;->chooseTableSize(I)I
-Lcom/google/common/collect/RegularImmutableMap;
-HSPLcom/google/common/collect/RegularImmutableMap;-><init>(ILjava/lang/Object;[Ljava/lang/Object;)V
-HSPLcom/google/common/collect/RegularImmutableMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
-Lcom/google/protobuf/AbstractMessageLite;
-HSPLcom/google/protobuf/AbstractMessageLite;-><init>()V
-Lcom/google/protobuf/AbstractMessageLite$Builder;
-HSPLcom/google/protobuf/AbstractMessageLite$Builder;-><init>()V
-Lcom/google/protobuf/Android;
-Lcom/google/protobuf/ByteString;
-HSPLcom/google/protobuf/ByteString;-><init>()V
-Lcom/google/protobuf/ByteString$ArraysByteArrayCopier;
-HSPLcom/google/protobuf/ByteString$ArraysByteArrayCopier;-><init>(I)V
-HSPLcom/google/protobuf/ByteString$ArraysByteArrayCopier;-><init>(Ljava/lang/Object;)V
-Lcom/google/protobuf/ByteString$LeafByteString;
-HSPLcom/google/protobuf/ByteString$LeafByteString;-><init>()V
-Lcom/google/protobuf/ByteString$LiteralByteString;
-HSPLcom/google/protobuf/ByteString$LiteralByteString;-><init>([B)V
-Lcom/google/protobuf/CodedInputStream;
-HSPLcom/google/protobuf/CodedInputStream;-><init>()V
-HSPLcom/google/protobuf/CodedInputStream;->newInstance([BIIZ)Lcom/google/protobuf/CodedInputStream$ArrayDecoder;
-Lcom/google/protobuf/CodedInputStream$ArrayDecoder;
-HSPLcom/google/protobuf/CodedInputStream$ArrayDecoder;-><init>([BIIZ)V
-HSPLcom/google/protobuf/CodedInputStream$ArrayDecoder;->pushLimit(I)I
-Lcom/google/protobuf/ExtensionSchemaLite;
-HSPLcom/google/protobuf/ExtensionSchemaLite;-><init>()V
-Lcom/google/protobuf/ExtensionSchemas;
-Lcom/google/protobuf/GeneratedMessageInfoFactory;
-HSPLcom/google/protobuf/GeneratedMessageInfoFactory;-><init>()V
-HSPLcom/google/protobuf/GeneratedMessageInfoFactory;->isSupported(Ljava/lang/Class;)Z
-HSPLcom/google/protobuf/GeneratedMessageInfoFactory;->messageInfoFor(Ljava/lang/Class;)Lcom/google/protobuf/MessageInfo;
-Lcom/google/protobuf/GeneratedMessageLite;
-HSPLcom/google/protobuf/GeneratedMessageLite;-><init>()V
-HSPLcom/google/protobuf/GeneratedMessageLite;->clearMemoizedHashCode()V
-HSPLcom/google/protobuf/GeneratedMessageLite;->clearMemoizedSerializedSize()V
-HSPLcom/google/protobuf/GeneratedMessageLite;->dynamicMethod(Lcom/google/protobuf/GeneratedMessageLite$MethodToInvoke;)Ljava/lang/Object;
-HSPLcom/google/protobuf/GeneratedMessageLite;->isInitialized(Lcom/google/protobuf/GeneratedMessageLite;Z)Z
-HSPLcom/google/protobuf/GeneratedMessageLite;->isMutable()Z
-HSPLcom/google/protobuf/GeneratedMessageLite;->markImmutable()V
-HSPLcom/google/protobuf/GeneratedMessageLite;->newMutableInstance()Lcom/google/protobuf/GeneratedMessageLite;
-HSPLcom/google/protobuf/GeneratedMessageLite;->registerDefaultInstance(Ljava/lang/Class;Lcom/google/protobuf/GeneratedMessageLite;)V
-Lcom/google/protobuf/GeneratedMessageLite$Builder;
-HSPLcom/google/protobuf/GeneratedMessageLite$Builder;-><init>(Lcom/google/protobuf/GeneratedMessageLite;)V
-HSPLcom/google/protobuf/GeneratedMessageLite$Builder;->build()Lcom/google/protobuf/GeneratedMessageLite;
-HSPLcom/google/protobuf/GeneratedMessageLite$Builder;->buildPartial()Lcom/google/protobuf/GeneratedMessageLite;
-Lcom/google/protobuf/GeneratedMessageLite$MethodToInvoke;
-HSPLcom/google/protobuf/GeneratedMessageLite$MethodToInvoke;-><init>(ILjava/lang/String;)V
-Lcom/google/protobuf/Internal;
-Lcom/google/protobuf/InvalidProtocolBufferException;
-Lcom/google/protobuf/InvalidProtocolBufferException$InvalidWireTypeException;
-Lcom/google/protobuf/ListFieldSchema;
-HSPLcom/google/protobuf/ListFieldSchema;-><init>()V
-Lcom/google/protobuf/ListFieldSchema$ListFieldSchemaFull;
-HSPLcom/google/protobuf/ListFieldSchema$ListFieldSchemaFull;-><init>()V
-Lcom/google/protobuf/ListFieldSchema$ListFieldSchemaLite;
-HSPLcom/google/protobuf/ListFieldSchema$ListFieldSchemaLite;-><init>()V
-Lcom/google/protobuf/ManifestSchemaFactory;
-HSPLcom/google/protobuf/ManifestSchemaFactory;-><init>()V
-Lcom/google/protobuf/ManifestSchemaFactory$1;
-HSPLcom/google/protobuf/ManifestSchemaFactory$1;-><init>()V
-Lcom/google/protobuf/ManifestSchemaFactory$CompositeMessageInfoFactory;
-HSPLcom/google/protobuf/ManifestSchemaFactory$CompositeMessageInfoFactory;-><init>([Lcom/google/protobuf/MessageInfoFactory;)V
-HSPLcom/google/protobuf/ManifestSchemaFactory$CompositeMessageInfoFactory;->messageInfoFor(Ljava/lang/Class;)Lcom/google/protobuf/MessageInfo;
-Lcom/google/protobuf/MapEntryLite;
-HSPLcom/google/protobuf/MapEntryLite;-><init>(Lcom/google/protobuf/WireFormat$FieldType;Ljava/lang/Object;Lcom/google/protobuf/WireFormat$FieldType$3;Lcom/google/protobuf/GeneratedMessageLite;)V
-Lcom/google/protobuf/MapEntryLite$Metadata;
-HSPLcom/google/protobuf/MapEntryLite$Metadata;-><init>(Lcom/google/protobuf/WireFormat$FieldType;Ljava/lang/Object;Lcom/google/protobuf/WireFormat$FieldType$3;Lcom/google/protobuf/GeneratedMessageLite;)V
-Lcom/google/protobuf/MapFieldLite;
-HSPLcom/google/protobuf/MapFieldLite;-><init>()V
-Lcom/google/protobuf/MapFieldSchemaLite;
-HSPLcom/google/protobuf/MapFieldSchemaLite;-><init>()V
-HSPLcom/google/protobuf/MapFieldSchemaLite;->toImmutable(Ljava/lang/Object;)V
-Lcom/google/protobuf/MapFieldSchemas;
-Lcom/google/protobuf/MessageInfo;
-Lcom/google/protobuf/MessageInfoFactory;
-Lcom/google/protobuf/MessageLite;
-Lcom/google/protobuf/MessageSchema;
-HSPLcom/google/protobuf/MessageSchema;-><init>([I[Ljava/lang/Object;IILcom/google/protobuf/MessageLite;Z[IIILcom/google/protobuf/NewInstanceSchemaLite;Lcom/google/protobuf/ListFieldSchema;Lcom/google/protobuf/UnknownFieldSetLiteSchema;Lcom/google/protobuf/ExtensionSchemaLite;Lcom/google/protobuf/MapFieldSchemaLite;)V
-HSPLcom/google/protobuf/MessageSchema;->isMutable(Ljava/lang/Object;)Z
-HSPLcom/google/protobuf/MessageSchema;->makeImmutable(Ljava/lang/Object;)V
-HSPLcom/google/protobuf/MessageSchema;->newSchema(Lcom/google/protobuf/MessageInfo;Lcom/google/protobuf/NewInstanceSchemaLite;Lcom/google/protobuf/ListFieldSchema;Lcom/google/protobuf/UnknownFieldSetLiteSchema;Lcom/google/protobuf/ExtensionSchemaLite;Lcom/google/protobuf/MapFieldSchemaLite;)Lcom/google/protobuf/MessageSchema;
-HSPLcom/google/protobuf/MessageSchema;->newSchemaForRawMessageInfo(Lcom/google/protobuf/RawMessageInfo;Lcom/google/protobuf/NewInstanceSchemaLite;Lcom/google/protobuf/ListFieldSchema;Lcom/google/protobuf/UnknownFieldSetLiteSchema;Lcom/google/protobuf/ExtensionSchemaLite;Lcom/google/protobuf/MapFieldSchemaLite;)Lcom/google/protobuf/MessageSchema;
-HSPLcom/google/protobuf/MessageSchema;->reflectField(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field;
-HSPLcom/google/protobuf/MessageSchema;->typeAndOffsetAt(I)I
-Lcom/google/protobuf/NewInstanceSchemaLite;
-HSPLcom/google/protobuf/NewInstanceSchemaLite;-><init>()V
-Lcom/google/protobuf/NewInstanceSchemas;
-Lcom/google/protobuf/Protobuf;
-HSPLcom/google/protobuf/Protobuf;-><init>()V
-HSPLcom/google/protobuf/Protobuf;->schemaFor(Ljava/lang/Class;)Lcom/google/protobuf/Schema;
-Lcom/google/protobuf/RawMessageInfo;
-HSPLcom/google/protobuf/RawMessageInfo;-><init>(Lcom/google/protobuf/MessageLite;Ljava/lang/String;[Ljava/lang/Object;)V
-HSPLcom/google/protobuf/RawMessageInfo;->getDefaultInstance()Lcom/google/protobuf/MessageLite;
-HSPLcom/google/protobuf/RawMessageInfo;->getObjects()[Ljava/lang/Object;
-HSPLcom/google/protobuf/RawMessageInfo;->getStringInfo()Ljava/lang/String;
-HSPLcom/google/protobuf/RawMessageInfo;->getSyntax$enumunboxing$()I
-Lcom/google/protobuf/Schema;
-Lcom/google/protobuf/SchemaUtil;
-HSPLcom/google/protobuf/SchemaUtil;->getUnknownFieldSetSchema(Z)Lcom/google/protobuf/UnknownFieldSetLiteSchema;
-Lcom/google/protobuf/UninitializedMessageException;
-Lcom/google/protobuf/UnknownFieldSetLite;
-HSPLcom/google/protobuf/UnknownFieldSetLite;-><init>(I[I[Ljava/lang/Object;Z)V
-Lcom/google/protobuf/UnknownFieldSetLiteSchema;
-HSPLcom/google/protobuf/UnknownFieldSetLiteSchema;-><init>()V
-HSPLcom/google/protobuf/UnknownFieldSetLiteSchema;->makeImmutable(Ljava/lang/Object;)V
-Lcom/google/protobuf/UnsafeUtil;
-HSPLcom/google/protobuf/UnsafeUtil;->arrayBaseOffset(Ljava/lang/Class;)I
-HSPLcom/google/protobuf/UnsafeUtil;->arrayIndexScale(Ljava/lang/Class;)V
-HSPLcom/google/protobuf/UnsafeUtil;->bufferAddressField()Ljava/lang/reflect/Field;
-HSPLcom/google/protobuf/UnsafeUtil;->determineAndroidSupportByAddressSize(Ljava/lang/Class;)Z
-HSPLcom/google/protobuf/UnsafeUtil;->getUnsafe()Lsun/misc/Unsafe;
-Lcom/google/protobuf/UnsafeUtil$1;
-HSPLcom/google/protobuf/UnsafeUtil$1;-><init>()V
-HSPLcom/google/protobuf/UnsafeUtil$1;->run()Ljava/lang/Object;
-HSPLcom/google/protobuf/UnsafeUtil$1;->run()Lsun/misc/Unsafe;
-Lcom/google/protobuf/UnsafeUtil$Android64MemoryAccessor;
-HSPLcom/google/protobuf/UnsafeUtil$Android64MemoryAccessor;-><init>(Lsun/misc/Unsafe;)V
-HSPLcom/google/protobuf/UnsafeUtil$Android64MemoryAccessor;->supportsUnsafeByteBufferOperations()Z
-Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
-HSPLcom/google/protobuf/UnsafeUtil$MemoryAccessor;-><init>(Lsun/misc/Unsafe;)V
-HSPLcom/google/protobuf/UnsafeUtil$MemoryAccessor;->arrayBaseOffset(Ljava/lang/Class;)I
-HSPLcom/google/protobuf/UnsafeUtil$MemoryAccessor;->arrayIndexScale(Ljava/lang/Class;)I
-HSPLcom/google/protobuf/UnsafeUtil$MemoryAccessor;->objectFieldOffset(Ljava/lang/reflect/Field;)J
-HSPLcom/google/protobuf/UnsafeUtil$MemoryAccessor;->supportsUnsafeArrayOperations()Z
-HSPLcom/google/protobuf/UnsafeUtil$MemoryAccessor;->supportsUnsafeByteBufferOperations()Z
-Lcom/google/protobuf/WireFormat$FieldType;
-HSPLcom/google/protobuf/WireFormat$FieldType;-><init>(Ljava/lang/String;ILcom/google/protobuf/WireFormat$JavaType;I)V
-Lcom/google/protobuf/WireFormat$FieldType$1;
-HSPLcom/google/protobuf/WireFormat$FieldType$1;-><init>()V
-Lcom/google/protobuf/WireFormat$FieldType$2;
-HSPLcom/google/protobuf/WireFormat$FieldType$2;-><init>(Lcom/google/protobuf/WireFormat$JavaType;)V
-Lcom/google/protobuf/WireFormat$FieldType$3;
-HSPLcom/google/protobuf/WireFormat$FieldType$3;-><init>(Lcom/google/protobuf/WireFormat$JavaType;)V
-Lcom/google/protobuf/WireFormat$FieldType$4;
-HSPLcom/google/protobuf/WireFormat$FieldType$4;-><init>(Lcom/google/protobuf/WireFormat$JavaType;)V
-Lcom/google/protobuf/WireFormat$JavaType;
-HSPLcom/google/protobuf/WireFormat$JavaType;-><init>(Ljava/io/Serializable;ILjava/lang/String;)V
-Ldagger/Lazy;
-Ldagger/internal/DoubleCheck;
-HSPLdagger/internal/DoubleCheck;-><init>(Ljavax/inject/Provider;)V
-HSPLdagger/internal/DoubleCheck;->get()Ljava/lang/Object;
-HSPLdagger/internal/DoubleCheck;->lazy(Ljavax/inject/Provider;)Ldagger/Lazy;
-HSPLdagger/internal/DoubleCheck;->provider(Ljavax/inject/Provider;)Ljavax/inject/Provider;
-Ldagger/internal/Preconditions;
-HSPLdagger/internal/Preconditions;->checkNotNullFromProvides(Ljava/lang/Object;)V
-Ldagger/internal/SingleCheck;
-HSPLdagger/internal/SingleCheck;-><init>(Ljavax/inject/Provider;)V
-HSPLdagger/internal/SingleCheck;->get()Ljava/lang/Object;
-HSPLdagger/internal/SingleCheck;->provider(Ljavax/inject/Provider;)Ljavax/inject/Provider;
-Lgen/base_module/R$styleable;
-Ljavax/inject/Provider;
-Lkotlin/Pair;
-HSPLkotlin/Pair;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
-Lkotlin/SynchronizedLazyImpl;
-HSPLkotlin/SynchronizedLazyImpl;-><init>(Landroidx/lifecycle/SavedStateHandlesProvider$viewModel$2;)V
-HSPLkotlin/SynchronizedLazyImpl;->getValue()Ljava/lang/Object;
-Lkotlin/UNINITIALIZED_VALUE;
-HSPLkotlin/UNINITIALIZED_VALUE;-><init>()V
-Lkotlin/collections/AbstractMutableList;
-HSPLkotlin/collections/AbstractMutableList;-><init>()V
-HSPLkotlin/collections/AbstractMutableList;->remove(I)Ljava/lang/Object;
-HSPLkotlin/collections/AbstractMutableList;->size()I
-Lkotlin/collections/ArrayDeque;
-HSPLkotlin/collections/ArrayDeque;-><init>()V
-HSPLkotlin/collections/ArrayDeque;->addLast(Ljava/lang/Object;)V
-HSPLkotlin/collections/ArrayDeque;->ensureCapacity(I)V
-HSPLkotlin/collections/ArrayDeque;->indexOf(Ljava/lang/Object;)I
-HSPLkotlin/collections/ArrayDeque;->isEmpty()Z
-HSPLkotlin/collections/ArrayDeque;->positiveMod(I)I
-HSPLkotlin/collections/ArrayDeque;->remove(Ljava/lang/Object;)Z
-Lkotlin/collections/ArraysKt__ArraysKt;
-Lkotlin/collections/ArraysKt___ArraysKt;
-HSPLkotlin/collections/ArraysKt___ArraysKt;->copyInto$default([Ljava/lang/Object;[Ljava/lang/Object;III)V
-HSPLkotlin/collections/ArraysKt___ArraysKt;->copyInto(III[I[I)V
-HSPLkotlin/collections/ArraysKt___ArraysKt;->copyInto(III[Ljava/lang/Object;[Ljava/lang/Object;)V
-Lkotlin/collections/CollectionsKt__CollectionsKt;
-HSPLkotlin/collections/CollectionsKt__CollectionsKt;->getLastIndex(Ljava/util/List;)I
-Lkotlin/collections/EmptyMap;
-HSPLkotlin/collections/EmptyMap;-><init>()V
-Lkotlin/collections/MapsKt__MapsJVMKt;
-HSPLkotlin/collections/MapsKt__MapsJVMKt;->mapCapacity(I)I
-Lkotlin/collections/MapsKt___MapsJvmKt;
-HSPLkotlin/collections/MapsKt___MapsJvmKt;->toMap(Ljava/util/ArrayList;)Ljava/util/Map;
-HSPLkotlin/collections/MapsKt___MapsJvmKt;->toMap(Ljava/util/ArrayList;Ljava/util/LinkedHashMap;)V
-Lkotlin/jvm/functions/Function0;
-Lkotlin/jvm/functions/Function1;
-Lkotlin/jvm/functions/Function10;
-Lkotlin/jvm/functions/Function11;
-Lkotlin/jvm/functions/Function12;
-Lkotlin/jvm/functions/Function13;
-Lkotlin/jvm/functions/Function14;
-Lkotlin/jvm/functions/Function15;
-Lkotlin/jvm/functions/Function16;
-Lkotlin/jvm/functions/Function17;
-Lkotlin/jvm/functions/Function18;
-Lkotlin/jvm/functions/Function19;
-Lkotlin/jvm/functions/Function2;
-Lkotlin/jvm/functions/Function20;
-Lkotlin/jvm/functions/Function21;
-Lkotlin/jvm/functions/Function22;
-Lkotlin/jvm/functions/Function3;
-Lkotlin/jvm/functions/Function4;
-Lkotlin/jvm/functions/Function5;
-Lkotlin/jvm/functions/Function6;
-Lkotlin/jvm/functions/Function7;
-Lkotlin/jvm/functions/Function8;
-Lkotlin/jvm/functions/Function9;
-Lkotlin/jvm/internal/ClassBasedDeclarationContainer;
-Lkotlin/jvm/internal/ClassReference;
-Lkotlin/jvm/internal/FunctionBase;
-Lkotlin/jvm/internal/Intrinsics;
-HSPLkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
-HSPLkotlin/jvm/internal/Intrinsics;->checkNotNull(Ljava/lang/Object;)V
-HSPLkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
-HSPLkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
-Lkotlin/jvm/internal/Lambda;
-HSPLkotlin/jvm/internal/Lambda;-><init>(I)V
-Lkotlin/jvm/internal/Reflection;
-Lkotlin/jvm/internal/ReflectionFactory;
-HSPLkotlin/jvm/internal/ReflectionFactory;-><init>()V
-Lkotlin/reflect/KClass;
-Lkotlin/text/StringsKt__IndentKt;
-Lkotlin/text/StringsKt__RegexExtensionsKt;
-Lkotlin/text/StringsKt__StringBuilderKt;
-Lkotlin/text/StringsKt__StringNumberConversionsKt;
-Lkotlin/text/StringsKt__StringsKt;
-HSPLkotlin/text/StringsKt__StringsKt;->substringAfterLast$default(Ljava/lang/String;)Ljava/lang/String;
-Lorg/chromium/base/ApiCompatibilityUtils;
-HSPLorg/chromium/base/ApiCompatibilityUtils;->checkPermission(IILandroid/content/Context;Ljava/lang/String;)I
-HSPLorg/chromium/base/ApiCompatibilityUtils;->getTargetableDisplayIds(Landroid/app/Activity;)Ljava/util/ArrayList;
-HSPLorg/chromium/base/ApiCompatibilityUtils;->isDemoUser()Z
-HSPLorg/chromium/base/ApiCompatibilityUtils;->setStatusBarIconColor(Landroid/view/View;Z)V
-HSPLorg/chromium/base/ApiCompatibilityUtils;->setTextAppearance(Landroid/widget/TextView;I)V
-Lorg/chromium/base/ApiCompatibilityUtils$ApisNMR1$$ExternalSyntheticApiModelOutline0;
-HSPLorg/chromium/base/ApiCompatibilityUtils$ApisNMR1$$ExternalSyntheticApiModelOutline0;->m(Landroid/os/UserManager;)Z
-Lorg/chromium/base/ApiCompatibilityUtils$ApisO$$ExternalSyntheticApiModelOutline0;
-HSPLorg/chromium/base/ApiCompatibilityUtils$ApisO$$ExternalSyntheticApiModelOutline0;->m()Landroid/view/textclassifier/TextClassifier;
-HSPLorg/chromium/base/ApiCompatibilityUtils$ApisO$$ExternalSyntheticApiModelOutline0;->m(Landroid/widget/TextView;Landroid/view/textclassifier/TextClassifier;)V
-Lorg/chromium/base/ApiCompatibilityUtils$ApisQ$$ExternalSyntheticApiModelOutline0;
-HSPLorg/chromium/base/ApiCompatibilityUtils$ApisQ$$ExternalSyntheticApiModelOutline0;->m(Landroid/app/ActivityManager;Landroid/content/Context;ILandroid/content/Intent;)Z
-Lorg/chromium/base/ApkAssets;
-HSPLorg/chromium/base/ApkAssets;->open(Ljava/lang/String;Ljava/lang/String;)[J
-Lorg/chromium/base/ApplicationStatus;
-HSPLorg/chromium/base/ApplicationStatus;->-$$Nest$smonStateChange(Landroid/app/Activity;I)V
-HSPLorg/chromium/base/ApplicationStatus;->getRunningActivities()Ljava/util/ArrayList;
-HSPLorg/chromium/base/ApplicationStatus;->getStateForActivity(Landroid/app/Activity;)I
-HSPLorg/chromium/base/ApplicationStatus;->getStateForApplication()I
-HSPLorg/chromium/base/ApplicationStatus;->hasVisibleActivities()Z
-HSPLorg/chromium/base/ApplicationStatus;->isTaskVisible(I)Z
-HSPLorg/chromium/base/ApplicationStatus;->registerApplicationStateListener(Lorg/chromium/base/ApplicationStatus$ApplicationStateListener;)V
-HSPLorg/chromium/base/ApplicationStatus;->registerStateListenerForActivity(Lorg/chromium/base/ApplicationStatus$ActivityStateListener;Landroid/app/Activity;)V
-HSPLorg/chromium/base/ApplicationStatus;->registerStateListenerForAllActivities(Lorg/chromium/base/ApplicationStatus$ActivityStateListener;)V
-HSPLorg/chromium/base/ApplicationStatus;->registerThreadSafeNativeApplicationStateListener()V
-HSPLorg/chromium/base/ApplicationStatus;->registerWindowFocusChangedListener(Lorg/chromium/base/ApplicationStatus$WindowFocusChangedListener;)V
-HSPLorg/chromium/base/ApplicationStatus;->unregisterActivityStateListener(Lorg/chromium/base/ApplicationStatus$ActivityStateListener;)V
-Lorg/chromium/base/ApplicationStatus$1;
-HSPLorg/chromium/base/ApplicationStatus$1;-><init>()V
-HSPLorg/chromium/base/ApplicationStatus$1;->onWindowFocusChanged(Landroid/app/Activity;Z)V
-Lorg/chromium/base/ApplicationStatus$2;
-HSPLorg/chromium/base/ApplicationStatus$2;-><init>()V
-HSPLorg/chromium/base/ApplicationStatus$2;->onActivityCreated(Landroid/app/Activity;Landroid/os/Bundle;)V
-HSPLorg/chromium/base/ApplicationStatus$2;->onActivityDestroyed(Landroid/app/Activity;)V
-HSPLorg/chromium/base/ApplicationStatus$2;->onActivityPaused(Landroid/app/Activity;)V
-HSPLorg/chromium/base/ApplicationStatus$2;->onActivityResumed(Landroid/app/Activity;)V
-HSPLorg/chromium/base/ApplicationStatus$2;->onActivityStarted(Landroid/app/Activity;)V
-HSPLorg/chromium/base/ApplicationStatus$2;->onActivityStopped(Landroid/app/Activity;)V
-Lorg/chromium/base/ApplicationStatus$3;
-HSPLorg/chromium/base/ApplicationStatus$3;-><init>()V
-HSPLorg/chromium/base/ApplicationStatus$3;->run()V
-Lorg/chromium/base/ApplicationStatus$3$1;
-HSPLorg/chromium/base/ApplicationStatus$3$1;-><init>()V
-HSPLorg/chromium/base/ApplicationStatus$3$1;->onApplicationStateChange(I)V
-Lorg/chromium/base/ApplicationStatus$ActivityInfo;
-HSPLorg/chromium/base/ApplicationStatus$ActivityInfo;-><init>()V
-Lorg/chromium/base/ApplicationStatus$ActivityStateListener;
-Lorg/chromium/base/ApplicationStatus$ApplicationStateListener;
-Lorg/chromium/base/ApplicationStatus$TaskVisibilityListener;
-Lorg/chromium/base/ApplicationStatus$WindowCallbackProxy;
-HSPLorg/chromium/base/ApplicationStatus$WindowCallbackProxy;-><init>(Landroid/app/Activity;Landroid/view/Window$Callback;)V
-HSPLorg/chromium/base/ApplicationStatus$WindowCallbackProxy;->invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
-Lorg/chromium/base/ApplicationStatus$WindowFocusChangedListener;
-Lorg/chromium/base/BuildInfo;
-HSPLorg/chromium/base/BuildInfo;-><init>()V
-HSPLorg/chromium/base/BuildInfo;->getAll()[Ljava/lang/String;
-HSPLorg/chromium/base/BuildInfo;->isDebugAndroid()Z
-HSPLorg/chromium/base/BuildInfo;->packageVersionCode(Landroid/content/pm/PackageInfo;)J
-Lorg/chromium/base/BuildInfo$Holder;
-Lorg/chromium/base/BundleUtils;
-HSPLorg/chromium/base/BundleUtils;->isIsolatedSplitInstalled(Ljava/lang/String;)Z
-HSPLorg/chromium/base/BundleUtils;->newInstance(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/Object;
-Lorg/chromium/base/BundleUtils$$ExternalSyntheticApiModelOutline0;
-HSPLorg/chromium/base/BundleUtils$$ExternalSyntheticApiModelOutline0;->m(Landroid/content/pm/ApplicationInfo;)[Ljava/lang/String;
-Lorg/chromium/base/BundleUtils$SplitCompatClassLoader;
-HSPLorg/chromium/base/BundleUtils$SplitCompatClassLoader;-><init>()V
-HSPLorg/chromium/base/BundleUtils$SplitCompatClassLoader;->checkSplitsClassLoaders(Ljava/lang/String;)Ljava/lang/Class;
-HSPLorg/chromium/base/BundleUtils$SplitCompatClassLoader;->findClass(Ljava/lang/String;)Ljava/lang/Class;
-Lorg/chromium/base/ByteArrayGenerator;
-HSPLorg/chromium/base/ByteArrayGenerator;-><init>()V
-Lorg/chromium/base/Callback;
-HSPLorg/chromium/base/Callback;->bind(Ljava/lang/Object;)Lorg/chromium/base/Callback$$ExternalSyntheticLambda0;
-Lorg/chromium/base/Callback$$ExternalSyntheticLambda0;
-HSPLorg/chromium/base/Callback$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/base/Callback;Ljava/lang/Object;)V
-HSPLorg/chromium/base/Callback$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/base/Callback$Helper;
-HSPLorg/chromium/base/Callback$Helper;->onBooleanResultFromNative(Lorg/chromium/base/Callback;Z)V
-HSPLorg/chromium/base/Callback$Helper;->onIntResultFromNative(Lorg/chromium/base/Callback;I)V
-HSPLorg/chromium/base/Callback$Helper;->onObjectResultFromNative(Lorg/chromium/base/Callback;Ljava/lang/Object;)V
-Lorg/chromium/base/CallbackController;
-HSPLorg/chromium/base/CallbackController;-><init>()V
-HSPLorg/chromium/base/CallbackController;->destroy()V
-HSPLorg/chromium/base/CallbackController;->makeCancelable(Ljava/lang/Runnable;)Lorg/chromium/base/CallbackController$CancelableRunnable;
-HSPLorg/chromium/base/CallbackController;->makeCancelable(Lorg/chromium/base/Callback;)Lorg/chromium/base/CallbackController$CancelableCallback;
-Lorg/chromium/base/CallbackController$Cancelable;
-Lorg/chromium/base/CallbackController$CancelableCallback;
-HSPLorg/chromium/base/CallbackController$CancelableCallback;-><init>(Lorg/chromium/base/CallbackController;Lorg/chromium/base/Callback;)V
-HSPLorg/chromium/base/CallbackController$CancelableCallback;->cancel()V
-HSPLorg/chromium/base/CallbackController$CancelableCallback;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/base/CallbackController$CancelableRunnable;
-HSPLorg/chromium/base/CallbackController$CancelableRunnable;-><init>(Lorg/chromium/base/CallbackController;Ljava/lang/Runnable;)V
-HSPLorg/chromium/base/CallbackController$CancelableRunnable;->cancel()V
-HSPLorg/chromium/base/CallbackController$CancelableRunnable;->run()V
-Lorg/chromium/base/CollectionUtil;
-HSPLorg/chromium/base/CollectionUtil;->newHashSet([Ljava/lang/Object;)Ljava/util/HashSet;
-HSPLorg/chromium/base/CollectionUtil;->strengthen(Ljava/util/Collection;)Ljava/util/ArrayList;
-Lorg/chromium/base/CommandLine;
-HSPLorg/chromium/base/CommandLine;-><init>()V
-HSPLorg/chromium/base/CommandLine;->getInstance()Lorg/chromium/base/CommandLine;
-HSPLorg/chromium/base/CommandLine;->init([Ljava/lang/String;)V
-Lorg/chromium/base/CommandLine$JavaCommandLine;
-HSPLorg/chromium/base/CommandLine$JavaCommandLine;-><init>([Ljava/lang/String;)V
-HSPLorg/chromium/base/CommandLine$JavaCommandLine;->appendSwitch(Ljava/lang/String;)V
-HSPLorg/chromium/base/CommandLine$JavaCommandLine;->appendSwitchWithValue(Ljava/lang/String;Ljava/lang/String;)V
-HSPLorg/chromium/base/CommandLine$JavaCommandLine;->getCommandLineArguments()[Ljava/lang/String;
-HSPLorg/chromium/base/CommandLine$JavaCommandLine;->getSwitchValue(Ljava/lang/String;)Ljava/lang/String;
-HSPLorg/chromium/base/CommandLine$JavaCommandLine;->hasSwitch(Ljava/lang/String;)Z
-Lorg/chromium/base/CommandLine$NativeCommandLine;
-HSPLorg/chromium/base/CommandLine$NativeCommandLine;-><init>([Ljava/lang/String;)V
-HSPLorg/chromium/base/CommandLine$NativeCommandLine;->appendSwitch(Ljava/lang/String;)V
-HSPLorg/chromium/base/CommandLine$NativeCommandLine;->appendSwitchWithValue(Ljava/lang/String;Ljava/lang/String;)V
-HSPLorg/chromium/base/CommandLine$NativeCommandLine;->getSwitchValue(Ljava/lang/String;)Ljava/lang/String;
-HSPLorg/chromium/base/CommandLine$NativeCommandLine;->hasSwitch(Ljava/lang/String;)Z
-Lorg/chromium/base/ContentUriUtils;
-PLorg/chromium/base/ContentUriUtils;->isContentUri(Ljava/lang/String;)Z
-Lorg/chromium/base/ContextUtils;
-HSPLorg/chromium/base/ContextUtils;->activityFromContext(Landroid/content/Context;)Landroid/app/Activity;
-HSPLorg/chromium/base/ContextUtils;->getProcessName()Ljava/lang/String;
-HSPLorg/chromium/base/ContextUtils;->registerBroadcastReceiver(Landroid/content/Context;Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;I)Landroid/content/Intent;
-HSPLorg/chromium/base/ContextUtils;->registerExportedBroadcastReceiver(Landroid/content/Context;Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;)V
-HSPLorg/chromium/base/ContextUtils;->registerNonExportedBroadcastReceiver(Landroid/content/Context;Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)V
-HSPLorg/chromium/base/ContextUtils;->registerProtectedBroadcastReceiver(Landroid/content/Context;Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
-Lorg/chromium/base/ContextUtils$$ExternalSyntheticApiModelOutline0;
-HSPLorg/chromium/base/ContextUtils$$ExternalSyntheticApiModelOutline0;->m()Z
-Lorg/chromium/base/ContextUtils$Holder;
-Lorg/chromium/base/DiscardableReferencePool;
-HSPLorg/chromium/base/DiscardableReferencePool;-><init>()V
-HSPLorg/chromium/base/DiscardableReferencePool;->put(Ljava/lang/Object;)Lorg/chromium/base/DiscardableReferencePool$DiscardableReference;
-Lorg/chromium/base/DiscardableReferencePool$DiscardableReference;
-HSPLorg/chromium/base/DiscardableReferencePool$DiscardableReference;-><init>(Ljava/lang/Object;)V
-Lorg/chromium/base/EarlyTraceEvent;
-HSPLorg/chromium/base/EarlyTraceEvent;->begin(Ljava/lang/String;Z)V
-HSPLorg/chromium/base/EarlyTraceEvent;->enabled()Z
-HSPLorg/chromium/base/EarlyTraceEvent;->end(Ljava/lang/String;Z)V
-HSPLorg/chromium/base/EarlyTraceEvent;->getBackgroundStartupTracingFlag()Z
-HSPLorg/chromium/base/EarlyTraceEvent;->setBackgroundStartupTracingFlag(Z)V
-Lorg/chromium/base/FeatureList;
-HSPLorg/chromium/base/FeatureList;->isInitialized()Z
-HSPLorg/chromium/base/FeatureList;->isNativeInitialized()Z
-Lorg/chromium/base/FileUtils;
-HSPLorg/chromium/base/FileUtils;->recursivelyDeleteFile(Ljava/io/File;Ljava/util/function/Function;)V
-Lorg/chromium/base/FileUtils$$ExternalSyntheticLambda0;
-HSPLorg/chromium/base/FileUtils$$ExternalSyntheticLambda0;-><init>()V
-Lorg/chromium/base/Flag;
-HSPLorg/chromium/base/Flag;-><init>(Ljava/lang/String;)V
-Lorg/chromium/base/IntentUtils;
-HSPLorg/chromium/base/IntentUtils;->isMainIntentFromLauncher(Landroid/content/Intent;)Z
-HSPLorg/chromium/base/IntentUtils;->isTrustedIntentFromSelf(Landroid/content/Intent;)Z
-HSPLorg/chromium/base/IntentUtils;->safeGetBooleanExtra(Landroid/content/Intent;Ljava/lang/String;Z)Z
-HSPLorg/chromium/base/IntentUtils;->safeGetBundleExtra(Landroid/content/Intent;Ljava/lang/String;)Landroid/os/Bundle;
-HSPLorg/chromium/base/IntentUtils;->safeGetInt(Ljava/lang/String;ILandroid/os/Bundle;)I
-HSPLorg/chromium/base/IntentUtils;->safeGetIntExtra(ILandroid/content/Intent;Ljava/lang/String;)I
-HSPLorg/chromium/base/IntentUtils;->safeGetParcelableExtra(Landroid/content/Intent;Ljava/lang/String;)Landroid/os/Parcelable;
-HSPLorg/chromium/base/IntentUtils;->safeGetStringArrayListExtra(Landroid/content/Intent;Ljava/lang/String;)Ljava/util/ArrayList;
-HSPLorg/chromium/base/IntentUtils;->safeGetStringExtra(Landroid/content/Intent;Ljava/lang/String;)Ljava/lang/String;
-Lorg/chromium/base/JNIUtils;
-HSPLorg/chromium/base/JNIUtils;->getSplitClassLoader(Ljava/lang/String;)Ljava/lang/ClassLoader;
-HSPLorg/chromium/base/JNIUtils;->isSelectiveJniRegistrationEnabled()Z
-Lorg/chromium/base/JavaExceptionReporter;
-HSPLorg/chromium/base/JavaExceptionReporter;-><init>(Ljava/lang/Thread$UncaughtExceptionHandler;Z)V
-HSPLorg/chromium/base/JavaExceptionReporter;->installHandler(Z)V
-Lorg/chromium/base/JavaHandlerThread;
-HSPLorg/chromium/base/JavaHandlerThread;-><init>(ILjava/lang/String;)V
-HSPLorg/chromium/base/JavaHandlerThread;->startAndInitialize(JJ)V
-Lorg/chromium/base/JavaHandlerThread$1;
-HSPLorg/chromium/base/JavaHandlerThread$1;-><init>(JJ)V
-HSPLorg/chromium/base/JavaHandlerThread$1;->run()V
-Lorg/chromium/base/LocaleUtils;
-HSPLorg/chromium/base/LocaleUtils;->getDefaultCountryCode()Ljava/lang/String;
-HSPLorg/chromium/base/LocaleUtils;->getDefaultLocaleListString()Ljava/lang/String;
-HSPLorg/chromium/base/LocaleUtils;->getDefaultLocaleString()Ljava/lang/String;
-HSPLorg/chromium/base/LocaleUtils;->getUpdatedLanguageForChromium(Ljava/lang/String;)Ljava/lang/String;
-HSPLorg/chromium/base/LocaleUtils;->toBaseLanguage(Ljava/lang/String;)Ljava/lang/String;
-HSPLorg/chromium/base/LocaleUtils;->toLanguageTag(Ljava/util/Locale;)Ljava/lang/String;
-Lorg/chromium/base/Log;
-HSPLorg/chromium/base/Log;->formatLog(Ljava/lang/String;Ljava/lang/Throwable;[Ljava/lang/Object;)Ljava/lang/String;
-HSPLorg/chromium/base/Log;->getThrowableToLog([Ljava/lang/Object;)Ljava/lang/Throwable;
-HSPLorg/chromium/base/Log;->i(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
-HSPLorg/chromium/base/Log;->i(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
-HSPLorg/chromium/base/Log;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
-HSPLorg/chromium/base/Log;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
-HSPLorg/chromium/base/Log;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
-HSPLorg/chromium/base/Log;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
-Lorg/chromium/base/MathUtils;
-HSPLorg/chromium/base/MathUtils;->areFloatsEqual(FF)Z
-HSPLorg/chromium/base/MathUtils;->clamp(FFF)F
-HSPLorg/chromium/base/MathUtils;->clamp(III)I
-Lorg/chromium/base/MemoryPressureListener;
-HSPLorg/chromium/base/MemoryPressureListener;->addCallback(Lorg/chromium/base/memory/MemoryPressureCallback;)V
-HSPLorg/chromium/base/MemoryPressureListener;->addNativeCallback()V
-Lorg/chromium/base/MemoryPressureListener$$ExternalSyntheticLambda0;
-HSPLorg/chromium/base/MemoryPressureListener$$ExternalSyntheticLambda0;-><init>()V
-Lorg/chromium/base/ObserverList;
-HSPLorg/chromium/base/ObserverList;-><init>()V
-HSPLorg/chromium/base/ObserverList;->addObserver(Ljava/lang/Object;)Z
-HSPLorg/chromium/base/ObserverList;->clear()V
-HSPLorg/chromium/base/ObserverList;->hasObserver(Ljava/lang/Object;)Z
-HSPLorg/chromium/base/ObserverList;->isEmpty()Z
-HSPLorg/chromium/base/ObserverList;->iterator()Ljava/util/Iterator;
-HSPLorg/chromium/base/ObserverList;->removeObserver(Ljava/lang/Object;)Z
-HSPLorg/chromium/base/ObserverList;->rewindableIterator()Lorg/chromium/base/ObserverList$ObserverListIterator;
-Lorg/chromium/base/ObserverList$ObserverListIterator;
-HSPLorg/chromium/base/ObserverList$ObserverListIterator;-><init>(Lorg/chromium/base/ObserverList;)V
-HSPLorg/chromium/base/ObserverList$ObserverListIterator;->compactListIfNeeded()V
-HSPLorg/chromium/base/ObserverList$ObserverListIterator;->hasNext()Z
-HSPLorg/chromium/base/ObserverList$ObserverListIterator;->next()Ljava/lang/Object;
-HSPLorg/chromium/base/ObserverList$ObserverListIterator;->rewind()V
-Lorg/chromium/base/PackageManagerUtils;
-HSPLorg/chromium/base/PackageManagerUtils;->canResolveActivity(Landroid/content/Intent;I)Z
-HSPLorg/chromium/base/PackageManagerUtils;->queryIntentActivities(Landroid/content/Intent;I)Ljava/util/List;
-HSPLorg/chromium/base/PackageManagerUtils;->resolveActivity(Landroid/content/Intent;I)Landroid/content/pm/ResolveInfo;
-HSPLorg/chromium/base/PackageManagerUtils;->resolveDefaultWebBrowserActivity()Landroid/content/pm/ResolveInfo;
-Lorg/chromium/base/PackageUtils;
-HSPLorg/chromium/base/PackageUtils;->getPackageInfo(ILjava/lang/String;)Landroid/content/pm/PackageInfo;
-HSPLorg/chromium/base/PackageUtils;->getPackageVersion(Ljava/lang/String;)I
-HSPLorg/chromium/base/PackageUtils;->isPackageInstalled(Ljava/lang/String;)Z
-Lorg/chromium/base/PathUtils;
-HSPLorg/chromium/base/PathUtils;->chmod(ILjava/lang/String;)V
-HSPLorg/chromium/base/PathUtils;->getAllPrivateDownloadsDirectories()[Ljava/lang/String;
-HSPLorg/chromium/base/PathUtils;->getCacheDirectory()Ljava/lang/String;
-HSPLorg/chromium/base/PathUtils;->getDataDirectory()Ljava/lang/String;
-HSPLorg/chromium/base/PathUtils;->getDirectoryPath(I)Ljava/lang/String;
-HSPLorg/chromium/base/PathUtils;->getDownloadsDirectory()Ljava/lang/String;
-HSPLorg/chromium/base/PathUtils;->getNativeLibraryDirectory()Ljava/lang/String;
-HSPLorg/chromium/base/PathUtils;->getThumbnailCacheDirectory()Ljava/lang/String;
-HSPLorg/chromium/base/PathUtils;->setPrivateDataDirectorySuffix()V
-HSPLorg/chromium/base/PathUtils;->toAbsolutePathStrings(Ljava/util/List;)[Ljava/lang/String;
-Lorg/chromium/base/PathUtils$$ExternalSyntheticLambda0;
-HSPLorg/chromium/base/PathUtils$$ExternalSyntheticLambda0;-><init>()V
-HSPLorg/chromium/base/PathUtils$$ExternalSyntheticLambda0;->call()Ljava/lang/Object;
-Lorg/chromium/base/PowerMonitor;
-HSPLorg/chromium/base/PowerMonitor;-><init>()V
-HSPLorg/chromium/base/PowerMonitor;->create()V
-HSPLorg/chromium/base/PowerMonitor;->getCurrentThermalStatus()I
-HSPLorg/chromium/base/PowerMonitor;->isBatteryPower()Z
-Lorg/chromium/base/PowerMonitor$1;
-HSPLorg/chromium/base/PowerMonitor$1;-><init>()V
-Lorg/chromium/base/PowerMonitorForQ$$ExternalSyntheticApiModelOutline0;
-HSPLorg/chromium/base/PowerMonitorForQ$$ExternalSyntheticApiModelOutline0;->m(Landroid/os/PowerManager;Lorg/chromium/base/PowerMonitorForQ$1;)V
-Lorg/chromium/base/PowerMonitorForQ$1;
-HSPLorg/chromium/base/PowerMonitorForQ$1;-><init>()V
-HSPLorg/chromium/base/PowerMonitorForQ$1;->onThermalStatusChanged(I)V
-Lorg/chromium/base/Promise;
-HSPLorg/chromium/base/Promise;-><init>()V
-HSPLorg/chromium/base/Promise;->exceptInner(Lorg/chromium/base/Callback;)V
-HSPLorg/chromium/base/Promise;->fulfill(Ljava/lang/Object;)V
-HSPLorg/chromium/base/Promise;->fulfilled(Ljava/lang/Object;)Lorg/chromium/base/Promise;
-HSPLorg/chromium/base/Promise;->isFulfilled()Z
-HSPLorg/chromium/base/Promise;->then(Ljava/util/function/Function;)Lorg/chromium/base/Promise;
-HSPLorg/chromium/base/Promise;->then(Lorg/chromium/base/Callback;)V
-HSPLorg/chromium/base/Promise;->then(Lorg/chromium/base/Callback;Lorg/chromium/base/Callback;)V
-HSPLorg/chromium/base/Promise;->thenInner(Lorg/chromium/base/Callback;)V
-Lorg/chromium/base/Promise$$ExternalSyntheticLambda0;
-HSPLorg/chromium/base/Promise$$ExternalSyntheticLambda0;-><init>()V
-Lorg/chromium/base/Promise$$ExternalSyntheticLambda1;
-HSPLorg/chromium/base/Promise$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/base/Promise;Ljava/util/function/Function;)V
-HSPLorg/chromium/base/Promise$$ExternalSyntheticLambda1;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/base/Promise$$ExternalSyntheticLambda2;
-HSPLorg/chromium/base/Promise$$ExternalSyntheticLambda2;-><init>(Lorg/chromium/base/Promise;I)V
-Lorg/chromium/base/StreamUtil;
-HSPLorg/chromium/base/StreamUtil;->closeQuietly(Ljava/io/Closeable;)V
-Lorg/chromium/base/StrictModeContext;
-HSPLorg/chromium/base/StrictModeContext;-><init>(Landroid/os/StrictMode$ThreadPolicy;Landroid/os/StrictMode$VmPolicy;)V
-HSPLorg/chromium/base/StrictModeContext;->allowDiskReads()Lorg/chromium/base/StrictModeContext;
-HSPLorg/chromium/base/StrictModeContext;->allowDiskWrites()Lorg/chromium/base/StrictModeContext;
-HSPLorg/chromium/base/StrictModeContext;->close()V
-Lorg/chromium/base/SysUtils;
-HSPLorg/chromium/base/SysUtils;->amountOfPhysicalMemoryKB()I
-HSPLorg/chromium/base/SysUtils;->detectAmountOfPhysicalMemoryKB()I
-HSPLorg/chromium/base/SysUtils;->isLowEndDevice()Z
-Lorg/chromium/base/ThreadUtils;
-HSPLorg/chromium/base/ThreadUtils;->checkUiThread()V
-HSPLorg/chromium/base/ThreadUtils;->getUiThreadHandler()Landroid/os/Handler;
-HSPLorg/chromium/base/ThreadUtils;->getUiThreadLooper()Landroid/os/Looper;
-HSPLorg/chromium/base/ThreadUtils;->postOnUiThread(Ljava/lang/Runnable;)V
-HSPLorg/chromium/base/ThreadUtils;->runOnUiThread(Ljava/lang/Runnable;)V
-HSPLorg/chromium/base/ThreadUtils;->runningOnUiThread()Z
-Lorg/chromium/base/ThreadUtils$ThreadChecker;
-HSPLorg/chromium/base/ThreadUtils$ThreadChecker;-><init>()V
-Lorg/chromium/base/TimezoneUtils;
-HSPLorg/chromium/base/TimezoneUtils;->getDefaultTimeZoneId()Ljava/lang/String;
-Lorg/chromium/base/TraceEvent;
-HSPLorg/chromium/base/TraceEvent;->begin(Ljava/lang/String;Ljava/lang/String;)V
-HSPLorg/chromium/base/TraceEvent;->end(JLjava/lang/String;)V
-HSPLorg/chromium/base/TraceEvent;->end(Ljava/lang/String;)V
-HSPLorg/chromium/base/TraceEvent;->finishAsync(JLjava/lang/String;)V
-HSPLorg/chromium/base/TraceEvent;->instant(Ljava/lang/String;)V
-HSPLorg/chromium/base/TraceEvent;->scoped(Ljava/lang/String;Ljava/lang/String;)Lorg/chromium/base/TraceEvent;
-HSPLorg/chromium/base/TraceEvent;->setEnabled(Z)V
-HSPLorg/chromium/base/TraceEvent;->startAsync(JLjava/lang/String;)V
-Lorg/chromium/base/TraceEvent$ATrace;
-HSPLorg/chromium/base/TraceEvent$ATrace;-><init>(J)V
-HSPLorg/chromium/base/TraceEvent$ATrace;->onNativeTracingReady()V
-HSPLorg/chromium/base/TraceEvent$ATrace;->pollConfig()V
-HSPLorg/chromium/base/TraceEvent$ATrace;->queueIdle()Z
-Lorg/chromium/base/TraceEvent$ATrace$$ExternalSyntheticLambda0;
-HSPLorg/chromium/base/TraceEvent$ATrace$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/base/TraceEvent$ATrace;I)V
-HSPLorg/chromium/base/TraceEvent$ATrace$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/base/TraceEvent$ViewHierarchyDumper;
-HSPLorg/chromium/base/TraceEvent$ViewHierarchyDumper;->updateEnabledState()V
-Lorg/chromium/base/TraceEvent$ViewHierarchyDumper$$ExternalSyntheticLambda0;
-HSPLorg/chromium/base/TraceEvent$ViewHierarchyDumper$$ExternalSyntheticLambda0;-><init>()V
-HSPLorg/chromium/base/TraceEvent$ViewHierarchyDumper$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/base/UnownedUserData;
-HSPLorg/chromium/base/UnownedUserData;->onDetachedFromHost()V
-Lorg/chromium/base/UnownedUserDataHost;
-HSPLorg/chromium/base/UnownedUserDataHost;-><init>()V
-HSPLorg/chromium/base/UnownedUserDataHost;->get(Lorg/chromium/base/UnownedUserDataKey;)Lorg/chromium/base/UnownedUserData;
-Lorg/chromium/base/UnownedUserDataHost$$ExternalSyntheticLambda0;
-HSPLorg/chromium/base/UnownedUserDataHost$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/base/UnownedUserDataHost;Lorg/chromium/base/UnownedUserData;)V
-HSPLorg/chromium/base/UnownedUserDataHost$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/base/UnownedUserDataKey;
-HSPLorg/chromium/base/UnownedUserDataKey;-><init>(Ljava/lang/Class;)V
-HSPLorg/chromium/base/UnownedUserDataKey;->attachToHost(Lorg/chromium/base/UnownedUserDataHost;Lorg/chromium/base/UnownedUserData;)V
-HSPLorg/chromium/base/UnownedUserDataKey;->detachFromAllHosts(Lorg/chromium/base/UnownedUserData;)V
-HSPLorg/chromium/base/UnownedUserDataKey;->detachFromHost(Lorg/chromium/base/UnownedUserDataHost;)V
-HSPLorg/chromium/base/UnownedUserDataKey;->removeHostAttachment(Lorg/chromium/base/UnownedUserDataHost;)V
-HSPLorg/chromium/base/UnownedUserDataKey;->retrieveDataFromHost(Lorg/chromium/base/UnownedUserDataHost;)Lorg/chromium/base/UnownedUserData;
-Lorg/chromium/base/UserData;
-HSPLorg/chromium/base/UserData;->destroy()V
-Lorg/chromium/base/UserDataHost;
-HSPLorg/chromium/base/UserDataHost;-><init>()V
-HSPLorg/chromium/base/UserDataHost;->checkThreadAndState()V
-HSPLorg/chromium/base/UserDataHost;->getUserData(Ljava/lang/Class;)Lorg/chromium/base/UserData;
-HSPLorg/chromium/base/UserDataHost;->setUserData(Ljava/lang/Class;Lorg/chromium/base/UserData;)Lorg/chromium/base/UserData;
-Lorg/chromium/base/compat/ApiHelperForO$$ExternalSyntheticApiModelOutline0;
-HSPLorg/chromium/base/compat/ApiHelperForO$$ExternalSyntheticApiModelOutline0;->m()Ljava/lang/Class;
-HSPLorg/chromium/base/compat/ApiHelperForO$$ExternalSyntheticApiModelOutline0;->m(Landroid/content/ClipDescription;)J
-HSPLorg/chromium/base/compat/ApiHelperForO$$ExternalSyntheticApiModelOutline0;->m(Landroid/content/Context;Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;I)Landroid/content/Intent;
-HSPLorg/chromium/base/compat/ApiHelperForO$$ExternalSyntheticApiModelOutline0;->m(Landroid/content/res/Configuration;)Z
-HSPLorg/chromium/base/compat/ApiHelperForO$$ExternalSyntheticApiModelOutline0;->m(Landroid/net/ConnectivityManager;Landroid/net/ConnectivityManager$NetworkCallback;Landroid/os/Handler;)V
-HSPLorg/chromium/base/compat/ApiHelperForO$$ExternalSyntheticApiModelOutline0;->m(Landroid/net/ConnectivityManager;Landroid/net/NetworkRequest;Lorg/chromium/net/NetworkChangeNotifierAutoDetect$MyNetworkCallback;Landroid/os/Handler;)V
-HSPLorg/chromium/base/compat/ApiHelperForO$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/Display;)Z
-HSPLorg/chromium/base/compat/ApiHelperForO$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/View;)V
-HSPLorg/chromium/base/compat/ApiHelperForO$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/autofill/AutofillManager;)V
-HSPLorg/chromium/base/compat/ApiHelperForO$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/autofill/AutofillManager;Landroid/view/View;)V
-HSPLorg/chromium/base/compat/ApiHelperForO$$ExternalSyntheticApiModelOutline0;->m(Ljava/lang/Object;)Landroid/view/autofill/AutofillManager;
-Lorg/chromium/base/compat/ApiHelperForOMR1$$ExternalSyntheticApiModelOutline0;
-HSPLorg/chromium/base/compat/ApiHelperForOMR1$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/Window;)Z
-Lorg/chromium/base/compat/ApiHelperForP$$ExternalSyntheticApiModelOutline0;
-HSPLorg/chromium/base/compat/ApiHelperForP$$ExternalSyntheticApiModelOutline0;->m(Landroid/content/pm/PackageInfo;)J
-HSPLorg/chromium/base/compat/ApiHelperForP$$ExternalSyntheticApiModelOutline0;->m(Landroid/net/LinkProperties;)Ljava/lang/String;
-HSPLorg/chromium/base/compat/ApiHelperForP$$ExternalSyntheticApiModelOutline0;->m(Landroid/net/LinkProperties;)Z
-Lorg/chromium/base/compat/ApiHelperForQ$$ExternalSyntheticApiModelOutline0;
-HSPLorg/chromium/base/compat/ApiHelperForQ$$ExternalSyntheticApiModelOutline0;->m(ILandroid/content/Context;Landroid/content/Intent;Landroid/content/ServiceConnection;Ljava/lang/String;Ljava/util/concurrent/Executor;)Z
-HSPLorg/chromium/base/compat/ApiHelperForQ$$ExternalSyntheticApiModelOutline0;->m(Landroid/content/Context;Lorg/chromium/base/process_launcher/ChildServiceConnectionImpl;II)V
-HSPLorg/chromium/base/compat/ApiHelperForQ$$ExternalSyntheticApiModelOutline0;->m(Landroid/net/Uri;)Landroid/net/Uri;
-HSPLorg/chromium/base/compat/ApiHelperForQ$$ExternalSyntheticApiModelOutline0;->m(Landroid/os/PowerManager;)I
-Lorg/chromium/base/jank_tracker/FrameMetrics;
-HSPLorg/chromium/base/jank_tracker/FrameMetrics;-><init>([Ljava/lang/Long;[Ljava/lang/Long;[Ljava/lang/Integer;)V
-Lorg/chromium/base/jank_tracker/FrameMetricsListener;
-HSPLorg/chromium/base/jank_tracker/FrameMetricsListener;-><init>(Lorg/chromium/base/jank_tracker/FrameMetricsStore;)V
-HSPLorg/chromium/base/jank_tracker/FrameMetricsListener;->onFrameMetricsAvailable(Landroid/view/Window;Landroid/view/FrameMetrics;I)V
-Lorg/chromium/base/jank_tracker/FrameMetricsStore;
-HSPLorg/chromium/base/jank_tracker/FrameMetricsStore;-><init>()V
-HSPLorg/chromium/base/jank_tracker/FrameMetricsStore;->removeUnusedFrames()V
-Lorg/chromium/base/jank_tracker/JankActivityTracker;
-HSPLorg/chromium/base/jank_tracker/JankActivityTracker;-><init>(Landroid/app/Activity;Lorg/chromium/base/jank_tracker/FrameMetricsListener;Lorg/chromium/base/jank_tracker/JankReportingScheduler;)V
-HSPLorg/chromium/base/jank_tracker/JankActivityTracker;->assertValidState()V
-HSPLorg/chromium/base/jank_tracker/JankActivityTracker;->onActivityStateChange(Landroid/app/Activity;I)V
-HSPLorg/chromium/base/jank_tracker/JankActivityTracker;->startReportingTimer()V
-HSPLorg/chromium/base/jank_tracker/JankActivityTracker;->stopReportingTimer()V
-Lorg/chromium/base/jank_tracker/JankMetricCalculator;
-HSPLorg/chromium/base/jank_tracker/JankMetricCalculator;->areFramesConsecutive(II[J[J)Z
-HSPLorg/chromium/base/jank_tracker/JankMetricCalculator;->longArrayToPrimitiveArray([Ljava/lang/Long;)[J
-Lorg/chromium/base/jank_tracker/JankMetricUMARecorder;
-HSPLorg/chromium/base/jank_tracker/JankMetricUMARecorder;->scenarioToString(I)Ljava/lang/String;
-Lorg/chromium/base/jank_tracker/JankReportingRunnable;
-HSPLorg/chromium/base/jank_tracker/JankReportingRunnable;-><init>(Lorg/chromium/base/jank_tracker/FrameMetricsStore;IZ)V
-HSPLorg/chromium/base/jank_tracker/JankReportingRunnable;->run()V
-Lorg/chromium/base/jank_tracker/JankReportingScheduler;
-HSPLorg/chromium/base/jank_tracker/JankReportingScheduler;-><init>(Lorg/chromium/base/jank_tracker/FrameMetricsStore;)V
-HSPLorg/chromium/base/jank_tracker/JankReportingScheduler;->finishTrackingScenario(I)V
-HSPLorg/chromium/base/jank_tracker/JankReportingScheduler;->getOrCreateHandler()Landroid/os/Handler;
-HSPLorg/chromium/base/jank_tracker/JankReportingScheduler;->startTrackingScenario(I)V
-Lorg/chromium/base/jank_tracker/JankReportingScheduler$1;
-HSPLorg/chromium/base/jank_tracker/JankReportingScheduler$1;-><init>(Lorg/chromium/base/jank_tracker/JankReportingScheduler;)V
-HSPLorg/chromium/base/jank_tracker/JankReportingScheduler$1;->run()V
-Lorg/chromium/base/jank_tracker/JankTracker;
-Lorg/chromium/base/jank_tracker/JankTrackerImpl;
-HSPLorg/chromium/base/jank_tracker/JankTrackerImpl;-><init>(Landroid/app/Activity;)V
-Lorg/chromium/base/library_loader/LibraryLoader;
-HSPLorg/chromium/base/library_loader/LibraryLoader;-><init>()V
-HSPLorg/chromium/base/library_loader/LibraryLoader;->ensureInitialized()V
-HSPLorg/chromium/base/library_loader/LibraryLoader;->ensureMainDexInitialized()V
-HSPLorg/chromium/base/library_loader/LibraryLoader;->initializeAlreadyLocked()V
-HSPLorg/chromium/base/library_loader/LibraryLoader;->isInitialized()Z
-HSPLorg/chromium/base/library_loader/LibraryLoader;->loadMainDexAlreadyLocked(Landroid/content/pm/ApplicationInfo;Z)V
-HSPLorg/chromium/base/library_loader/LibraryLoader;->loadNonMainDex()V
-HSPLorg/chromium/base/library_loader/LibraryLoader;->setLibraryProcessType(I)V
-Lorg/chromium/base/library_loader/LibraryLoader$MultiProcessMediator;
-HSPLorg/chromium/base/library_loader/LibraryLoader$MultiProcessMediator;-><init>(Lorg/chromium/base/library_loader/LibraryLoader;)V
-HSPLorg/chromium/base/library_loader/LibraryLoader$MultiProcessMediator;->creationAsString()Ljava/lang/String;
-HSPLorg/chromium/base/library_loader/LibraryLoader$MultiProcessMediator;->ensureInitializedInMainProcess()V
-HSPLorg/chromium/base/library_loader/LibraryLoader$MultiProcessMediator;->putLoadAddressToBundle(Landroid/os/Bundle;)V
-HSPLorg/chromium/base/library_loader/LibraryLoader$MultiProcessMediator;->putSharedRelrosToBundle(Landroid/os/Bundle;)V
-Lorg/chromium/base/library_loader/LibraryPrefetcher;
-HSPLorg/chromium/base/library_loader/LibraryPrefetcher;->asyncPrefetchLibrariesToMemory()V
-Lorg/chromium/base/library_loader/LibraryPrefetcher$$ExternalSyntheticLambda1;
-HSPLorg/chromium/base/library_loader/LibraryPrefetcher$$ExternalSyntheticLambda1;-><init>(Z)V
-HSPLorg/chromium/base/library_loader/LibraryPrefetcher$$ExternalSyntheticLambda1;->run()V
-Lorg/chromium/base/library_loader/ProcessInitException;
-Lorg/chromium/base/lifetime/DestroyChecker;
-HSPLorg/chromium/base/lifetime/DestroyChecker;-><init>()V
-Lorg/chromium/base/memory/MemoryPressureCallback;
-Lorg/chromium/base/memory/MemoryPressureMonitor;
-HSPLorg/chromium/base/memory/MemoryPressureMonitor;-><init>()V
-Lorg/chromium/base/memory/MemoryPressureMonitor$$ExternalSyntheticLambda0;
-HSPLorg/chromium/base/memory/MemoryPressureMonitor$$ExternalSyntheticLambda0;-><init>()V
-HSPLorg/chromium/base/memory/MemoryPressureMonitor$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;
-Lorg/chromium/base/memory/MemoryPressureMonitor$$ExternalSyntheticLambda1;
-HSPLorg/chromium/base/memory/MemoryPressureMonitor$$ExternalSyntheticLambda1;-><init>()V
-Lorg/chromium/base/memory/MemoryPressureMonitor$$ExternalSyntheticLambda2;
-HSPLorg/chromium/base/memory/MemoryPressureMonitor$$ExternalSyntheticLambda2;-><init>(Lorg/chromium/base/memory/MemoryPressureMonitor;)V
-Lorg/chromium/base/memory/MemoryPressureMonitor$1;
-HSPLorg/chromium/base/memory/MemoryPressureMonitor$1;-><init>(Lorg/chromium/base/memory/MemoryPressureMonitor;)V
-Lorg/chromium/base/memory/MemoryPressureUma;
-HSPLorg/chromium/base/memory/MemoryPressureUma;-><init>(Ljava/lang/String;)V
-Lorg/chromium/base/memory/MemoryPurgeManager;
-HSPLorg/chromium/base/memory/MemoryPurgeManager;-><init>()V
-HSPLorg/chromium/base/memory/MemoryPurgeManager;->onApplicationStateChange(I)V
-Lorg/chromium/base/metrics/CachingUmaRecorder;
-HSPLorg/chromium/base/metrics/CachingUmaRecorder;-><init>()V
-HSPLorg/chromium/base/metrics/CachingUmaRecorder;->cacheOrRecordHistogramSample(ILjava/lang/String;IIII)V
-HSPLorg/chromium/base/metrics/CachingUmaRecorder;->flushHistogramsAlreadyLocked(Ljava/util/Map;I)V
-HSPLorg/chromium/base/metrics/CachingUmaRecorder;->recordBooleanHistogram(Ljava/lang/String;Z)V
-HSPLorg/chromium/base/metrics/CachingUmaRecorder;->recordExponentialHistogram(IIIILjava/lang/String;)V
-HSPLorg/chromium/base/metrics/CachingUmaRecorder;->recordHistogramSampleAlreadyLocked(ILjava/lang/String;IIII)V
-HSPLorg/chromium/base/metrics/CachingUmaRecorder;->recordLinearHistogram(IIIILjava/lang/String;)V
-HSPLorg/chromium/base/metrics/CachingUmaRecorder;->recordSparseHistogram(ILjava/lang/String;)V
-HSPLorg/chromium/base/metrics/CachingUmaRecorder;->recordUserAction(JLjava/lang/String;)V
-Lorg/chromium/base/metrics/CachingUmaRecorder$Histogram;
-HSPLorg/chromium/base/metrics/CachingUmaRecorder$Histogram;-><init>(IIIILjava/lang/String;)V
-HSPLorg/chromium/base/metrics/CachingUmaRecorder$Histogram;->addSample(I)Z
-Lorg/chromium/base/metrics/NativeUmaRecorder;
-HSPLorg/chromium/base/metrics/NativeUmaRecorder;-><init>()V
-HSPLorg/chromium/base/metrics/NativeUmaRecorder;->getNativeHint(Ljava/lang/String;)J
-HSPLorg/chromium/base/metrics/NativeUmaRecorder;->maybeUpdateNativeHint(Ljava/lang/String;JJ)V
-HSPLorg/chromium/base/metrics/NativeUmaRecorder;->recordBooleanHistogram(Ljava/lang/String;Z)V
-HSPLorg/chromium/base/metrics/NativeUmaRecorder;->recordExponentialHistogram(IIIILjava/lang/String;)V
-HSPLorg/chromium/base/metrics/NativeUmaRecorder;->recordLinearHistogram(IIIILjava/lang/String;)V
-HSPLorg/chromium/base/metrics/NativeUmaRecorder;->recordSparseHistogram(ILjava/lang/String;)V
-HSPLorg/chromium/base/metrics/NativeUmaRecorder;->recordUserAction(JLjava/lang/String;)V
-Lorg/chromium/base/metrics/RecordHistogram;
-HSPLorg/chromium/base/metrics/RecordHistogram;->clampToInt(J)I
-HSPLorg/chromium/base/metrics/RecordHistogram;->recordBooleanHistogram(Ljava/lang/String;Z)V
-HSPLorg/chromium/base/metrics/RecordHistogram;->recordCount100Histogram(ILjava/lang/String;)V
-HSPLorg/chromium/base/metrics/RecordHistogram;->recordCount1MHistogram(ILjava/lang/String;)V
-HSPLorg/chromium/base/metrics/RecordHistogram;->recordCustomCountHistogram(IIIILjava/lang/String;)V
-HSPLorg/chromium/base/metrics/RecordHistogram;->recordCustomTimesHistogramMilliseconds(Ljava/lang/String;JJJI)V
-HSPLorg/chromium/base/metrics/RecordHistogram;->recordExactLinearHistogram(IILjava/lang/String;)V
-PLorg/chromium/base/metrics/RecordHistogram;->recordLinearCountHistogram(IIIILjava/lang/String;)V
-HSPLorg/chromium/base/metrics/RecordHistogram;->deprecatedRecordMediumTimesHistogram(JLjava/lang/String;)V
-HSPLorg/chromium/base/metrics/RecordHistogram;->recordPercentageHistogram(ILjava/lang/String;)V
-HSPLorg/chromium/base/metrics/RecordHistogram;->recordSparseHistogram(ILjava/lang/String;)V
-HSPLorg/chromium/base/metrics/RecordHistogram;->recordTimesHistogram(JLjava/lang/String;)V
-Lorg/chromium/base/metrics/RecordUserAction;
-HSPLorg/chromium/base/metrics/RecordUserAction;->record(Ljava/lang/String;)V
-Lorg/chromium/base/metrics/TimingMetric;
-HSPLorg/chromium/base/metrics/TimingMetric;-><init>(ILjava/lang/String;)V
-HSPLorg/chromium/base/metrics/TimingMetric;->close()V
-HSPLorg/chromium/base/metrics/TimingMetric;->mediumUptime(Ljava/lang/String;)Lorg/chromium/base/metrics/TimingMetric;
-Lorg/chromium/base/metrics/UmaRecorder;
-Lorg/chromium/base/metrics/UmaRecorderHolder;
-Lorg/chromium/base/process_launcher/BindService;
-HSPLorg/chromium/base/process_launcher/BindService;->bindServiceByReflection(Landroid/content/Context;Landroid/content/Intent;Landroid/content/ServiceConnection;ILandroid/os/Handler;)Z
-HSPLorg/chromium/base/process_launcher/BindService;->doBindService(Landroid/content/Context;Landroid/content/Intent;Landroid/content/ServiceConnection;ILandroid/os/Handler;Ljava/util/concurrent/Executor;Ljava/lang/String;)Z
-HSPLorg/chromium/base/process_launcher/BindService;->supportVariableConnections()Z
-Lorg/chromium/base/process_launcher/ChildConnectionAllocator;
-HSPLorg/chromium/base/process_launcher/ChildConnectionAllocator;-><init>(Landroid/os/Handler;Lorg/chromium/content/browser/ChildProcessLauncherHelperImpl$$ExternalSyntheticLambda0;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
-HSPLorg/chromium/base/process_launcher/ChildConnectionAllocator;->checkServiceExists(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V
-HSPLorg/chromium/base/process_launcher/ChildConnectionAllocator;->create(Landroid/content/Context;Landroid/os/Handler;Lorg/chromium/content/browser/ChildProcessLauncherHelperImpl$$ExternalSyntheticLambda0;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Lorg/chromium/base/process_launcher/ChildConnectionAllocator$FixedSizeAllocatorImpl;
-Lorg/chromium/base/process_launcher/ChildConnectionAllocator$1;
-HSPLorg/chromium/base/process_launcher/ChildConnectionAllocator$1;-><init>(Lorg/chromium/base/process_launcher/ChildConnectionAllocator;Lorg/chromium/base/process_launcher/ChildProcessConnection$ServiceCallback;)V
-HSPLorg/chromium/base/process_launcher/ChildConnectionAllocator$1;->onChildProcessDied(Lorg/chromium/base/process_launcher/ChildProcessConnection;)V
-HSPLorg/chromium/base/process_launcher/ChildConnectionAllocator$1;->onChildStarted()V
-Lorg/chromium/base/process_launcher/ChildConnectionAllocator$1$1;
-HSPLorg/chromium/base/process_launcher/ChildConnectionAllocator$1$1;-><init>(Lorg/chromium/base/process_launcher/ChildConnectionAllocator$1;)V
-HSPLorg/chromium/base/process_launcher/ChildConnectionAllocator$1$1;->run()V
-Lorg/chromium/base/process_launcher/ChildConnectionAllocator$1$2;
-HSPLorg/chromium/base/process_launcher/ChildConnectionAllocator$1$2;-><init>(Lorg/chromium/base/process_launcher/ChildConnectionAllocator$1;Lorg/chromium/base/process_launcher/ChildProcessConnection;I)V
-HSPLorg/chromium/base/process_launcher/ChildConnectionAllocator$1$2;->run()V
-Lorg/chromium/base/process_launcher/ChildConnectionAllocator$ConnectionFactoryImpl;
-HSPLorg/chromium/base/process_launcher/ChildConnectionAllocator$ConnectionFactoryImpl;-><init>()V
-Lorg/chromium/base/process_launcher/ChildConnectionAllocator$FixedSizeAllocatorImpl;
-HSPLorg/chromium/base/process_launcher/ChildConnectionAllocator$FixedSizeAllocatorImpl;-><init>(Landroid/os/Handler;Lorg/chromium/content/browser/ChildProcessLauncherHelperImpl$$ExternalSyntheticLambda0;Ljava/lang/String;Ljava/lang/String;ZI)V
-HSPLorg/chromium/base/process_launcher/ChildConnectionAllocator$FixedSizeAllocatorImpl;->doAllocate(Landroid/content/Context;Landroid/os/Bundle;Lorg/chromium/base/process_launcher/ChildConnectionAllocator$1;)Lorg/chromium/base/process_launcher/ChildProcessConnection;
-Lorg/chromium/base/process_launcher/ChildConnectionAllocator$VariableSizeAllocatorImpl;
-HSPLorg/chromium/base/process_launcher/ChildConnectionAllocator$VariableSizeAllocatorImpl;-><init>(Landroid/os/Handler;Lorg/chromium/content/browser/ChildProcessLauncherHelperImpl$$ExternalSyntheticLambda0;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-HSPLorg/chromium/base/process_launcher/ChildConnectionAllocator$VariableSizeAllocatorImpl;->allocate(Landroid/content/Context;Landroid/os/Bundle;)Lorg/chromium/base/process_launcher/ChildProcessConnection;
-HSPLorg/chromium/base/process_launcher/ChildConnectionAllocator$VariableSizeAllocatorImpl;->doAllocate(Landroid/content/Context;Landroid/os/Bundle;Lorg/chromium/base/process_launcher/ChildConnectionAllocator$1;)Lorg/chromium/base/process_launcher/ChildProcessConnection;
-HSPLorg/chromium/base/process_launcher/ChildConnectionAllocator$VariableSizeAllocatorImpl;->doFree(Lorg/chromium/base/process_launcher/ChildProcessConnection;)V
-Lorg/chromium/base/process_launcher/ChildProcessConnection;
-HSPLorg/chromium/base/process_launcher/ChildProcessConnection;-><init>(Landroid/content/Context;Landroid/content/ComponentName;Landroid/content/ComponentName;ZZLandroid/os/Bundle;Ljava/lang/String;)V
-HSPLorg/chromium/base/process_launcher/ChildProcessConnection;->addStrongBinding()V
-HSPLorg/chromium/base/process_launcher/ChildProcessConnection;->addVisibleBinding()V
-HSPLorg/chromium/base/process_launcher/ChildProcessConnection;->bind(Z)Z
-HSPLorg/chromium/base/process_launcher/ChildProcessConnection;->createBindings(Landroid/content/ComponentName;)V
-HSPLorg/chromium/base/process_launcher/ChildProcessConnection;->doConnectionSetup()V
-HSPLorg/chromium/base/process_launcher/ChildProcessConnection;->isConnected()Z
-HSPLorg/chromium/base/process_launcher/ChildProcessConnection;->onServiceConnectedOnLauncherThread(Landroid/os/IBinder;)V
-HSPLorg/chromium/base/process_launcher/ChildProcessConnection;->start(ZLorg/chromium/base/process_launcher/ChildConnectionAllocator$1;)V
-HSPLorg/chromium/base/process_launcher/ChildProcessConnection;->unbind()V
-HSPLorg/chromium/base/process_launcher/ChildProcessConnection;->updateBindingState()V
-HSPLorg/chromium/base/process_launcher/ChildProcessConnection;->updateGroupImportance(II)V
-Lorg/chromium/base/process_launcher/ChildProcessConnection$$ExternalSyntheticLambda0;
-HSPLorg/chromium/base/process_launcher/ChildProcessConnection$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/base/process_launcher/ChildProcessConnection;)V
-Lorg/chromium/base/process_launcher/ChildProcessConnection$$ExternalSyntheticLambda2;
-HSPLorg/chromium/base/process_launcher/ChildProcessConnection$$ExternalSyntheticLambda2;-><init>(Lorg/chromium/base/memory/MemoryPressureCallback;I)V
-HSPLorg/chromium/base/process_launcher/ChildProcessConnection$$ExternalSyntheticLambda2;->run()V
-Lorg/chromium/base/process_launcher/ChildProcessConnection$$ExternalSyntheticLambda3;
-HSPLorg/chromium/base/process_launcher/ChildProcessConnection$$ExternalSyntheticLambda3;-><init>(ILjava/lang/Object;)V
-PLorg/chromium/base/process_launcher/ChildProcessConnection$$ExternalSyntheticLambda3;->run()V
-Lorg/chromium/base/process_launcher/ChildProcessConnection$$ExternalSyntheticLambda4;
-HSPLorg/chromium/base/process_launcher/ChildProcessConnection$$ExternalSyntheticLambda4;-><init>(Lorg/chromium/base/process_launcher/ChildProcessConnection;)V
-HSPLorg/chromium/base/process_launcher/ChildProcessConnection$$ExternalSyntheticLambda4;->execute(Ljava/lang/Runnable;)V
-Lorg/chromium/base/process_launcher/ChildProcessConnection$1;
-HSPLorg/chromium/base/process_launcher/ChildProcessConnection$1;-><init>(Landroid/os/Bundle;Ljava/util/List;)V
-HSPLorg/chromium/base/process_launcher/ChildProcessConnection$1;-><init>(Lorg/chromium/base/process_launcher/ChildProcessConnection;Landroid/content/Context;)V
-HSPLorg/chromium/base/process_launcher/ChildProcessConnection$1;->createConnection(Landroid/content/Intent;ILorg/chromium/base/process_launcher/ChildProcessConnection$2;Ljava/lang/String;)Lorg/chromium/base/process_launcher/ChildServiceConnectionImpl;
-Lorg/chromium/base/process_launcher/ChildProcessConnection$2;
-HSPLorg/chromium/base/process_launcher/ChildProcessConnection$2;-><init>(Lorg/chromium/base/process_launcher/ChildProcessConnection;)V
-Lorg/chromium/base/process_launcher/ChildProcessConnection$3;
-HSPLorg/chromium/base/process_launcher/ChildProcessConnection$3;-><init>(Lorg/chromium/base/process_launcher/ChildProcessConnection;)V
-HSPLorg/chromium/base/process_launcher/ChildProcessConnection$3;->asBinder()Landroid/os/IBinder;
-HSPLorg/chromium/base/process_launcher/ChildProcessConnection$3;->finishSetupConnection(IIJLandroid/os/Bundle;)V
-HSPLorg/chromium/base/process_launcher/ChildProcessConnection$3;->onTransact$org$chromium$base$process_launcher$IParentProcess$Stub(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLorg/chromium/base/process_launcher/ChildProcessConnection$3;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-PLorg/chromium/base/process_launcher/ChildProcessConnection$3;->reportCleanExit()V
-Lorg/chromium/base/process_launcher/ChildProcessConnection$3$$ExternalSyntheticLambda0;
-HSPLorg/chromium/base/process_launcher/ChildProcessConnection$3$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/base/process_launcher/ChildProcessConnection$3;IIJLandroid/os/Bundle;)V
-HSPLorg/chromium/base/process_launcher/ChildProcessConnection$3$$ExternalSyntheticLambda0;->run()V
-PLorg/chromium/base/process_launcher/ChildProcessConnection$3$1;-><init>(Lorg/chromium/base/process_launcher/ChildProcessConnection$3;)V
-PLorg/chromium/base/process_launcher/ChildProcessConnection$3$1;->run()V
-Lorg/chromium/base/process_launcher/ChildProcessConnection$ServiceCallback;
-Lorg/chromium/base/process_launcher/ChildProcessLauncher;
-HSPLorg/chromium/base/process_launcher/ChildProcessLauncher;-><init>(Landroid/os/Handler;Lorg/chromium/content/browser/ChildProcessLauncherHelperImpl$1;[Ljava/lang/String;[Lorg/chromium/base/process_launcher/FileDescriptorInfo;Lorg/chromium/base/process_launcher/ChildConnectionAllocator;Ljava/util/List;)V
-HSPLorg/chromium/base/process_launcher/ChildProcessLauncher;->allocateAndSetupConnection(Lorg/chromium/base/process_launcher/ChildProcessConnection$ServiceCallback;ZZ)Z
-HSPLorg/chromium/base/process_launcher/ChildProcessLauncher;->setupConnection()V
-HSPLorg/chromium/base/process_launcher/ChildProcessLauncher;->start(ZZ)V
-Lorg/chromium/base/process_launcher/ChildProcessLauncher$1;
-HSPLorg/chromium/base/process_launcher/ChildProcessLauncher$1;-><init>(Lorg/chromium/base/process_launcher/ChildProcessLauncher;ZZ)V
-HSPLorg/chromium/base/process_launcher/ChildProcessLauncher$1;->onChildProcessDied(Lorg/chromium/base/process_launcher/ChildProcessConnection;)V
-HSPLorg/chromium/base/process_launcher/ChildProcessLauncher$1;->onChildStarted()V
-Lorg/chromium/base/process_launcher/ChildProcessLauncher$2;
-HSPLorg/chromium/base/process_launcher/ChildProcessLauncher$2;-><init>(Lorg/chromium/base/process_launcher/ChildProcessLauncher;)V
-HSPLorg/chromium/base/process_launcher/ChildProcessLauncher$2;->onConnected()V
-Lorg/chromium/base/process_launcher/ChildProcessLauncher$Delegate;
-HSPLorg/chromium/base/process_launcher/ChildProcessLauncher$Delegate;-><init>()V
-Lorg/chromium/base/process_launcher/ChildServiceConnectionImpl;
-HSPLorg/chromium/base/process_launcher/ChildServiceConnectionImpl;-><init>(Landroid/content/Context;Landroid/content/Intent;ILandroid/os/Handler;Ljava/util/concurrent/Executor;Lorg/chromium/base/process_launcher/ChildProcessConnection$2;Ljava/lang/String;)V
-HSPLorg/chromium/base/process_launcher/ChildServiceConnectionImpl;->bindServiceConnection()Z
-HSPLorg/chromium/base/process_launcher/ChildServiceConnectionImpl;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
-HSPLorg/chromium/base/process_launcher/ChildServiceConnectionImpl;->unbindServiceConnection()V
-Lorg/chromium/base/process_launcher/FileDescriptorInfo;
-HSPLorg/chromium/base/process_launcher/FileDescriptorInfo;-><init>(ILandroid/os/ParcelFileDescriptor;JJ)V
-HSPLorg/chromium/base/process_launcher/FileDescriptorInfo;->writeToParcel(Landroid/os/Parcel;I)V
-Lorg/chromium/base/process_launcher/FileDescriptorInfo$1;
-HSPLorg/chromium/base/process_launcher/FileDescriptorInfo$1;-><init>()V
-Lorg/chromium/base/process_launcher/IChildProcessService;
-Lorg/chromium/base/process_launcher/IChildProcessService$Stub;
-Lorg/chromium/base/process_launcher/IChildProcessService$Stub$Proxy;
-HSPLorg/chromium/base/process_launcher/IChildProcessService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLorg/chromium/base/process_launcher/IChildProcessService$Stub$Proxy;->getAppInfo()Landroid/content/pm/ApplicationInfo;
-HSPLorg/chromium/base/process_launcher/IChildProcessService$Stub$Proxy;->setupConnection(Landroid/os/Bundle;Lorg/chromium/base/process_launcher/IParentProcess;Ljava/util/List;)V
-Lorg/chromium/base/process_launcher/IParentProcess;
-Lorg/chromium/base/supplier/ObservableSupplier;
-Lorg/chromium/base/supplier/ObservableSupplierImpl;
-HSPLorg/chromium/base/supplier/ObservableSupplierImpl;-><init>()V
-HSPLorg/chromium/base/supplier/ObservableSupplierImpl;->addObserver(Lorg/chromium/base/Callback;)Ljava/lang/Object;
-HSPLorg/chromium/base/supplier/ObservableSupplierImpl;->get()Ljava/lang/Object;
-HSPLorg/chromium/base/supplier/ObservableSupplierImpl;->removeObserver(Lorg/chromium/base/Callback;)V
-HSPLorg/chromium/base/supplier/ObservableSupplierImpl;->set(Ljava/lang/Object;)V
-Lorg/chromium/base/supplier/ObservableSupplierImpl$$ExternalSyntheticLambda0;
-HSPLorg/chromium/base/supplier/ObservableSupplierImpl$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/base/supplier/ObservableSupplierImpl;Ljava/lang/Object;Lorg/chromium/base/Callback;)V
-HSPLorg/chromium/base/supplier/ObservableSupplierImpl$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/base/supplier/OneShotCallback;
-HSPLorg/chromium/base/supplier/OneShotCallback;-><init>(Lorg/chromium/base/supplier/ObservableSupplier;Lorg/chromium/base/Callback;)V
-Lorg/chromium/base/supplier/OneShotCallback$CallbackWrapper;
-HSPLorg/chromium/base/supplier/OneShotCallback$CallbackWrapper;-><init>(Lorg/chromium/base/supplier/OneShotCallback;)V
-HSPLorg/chromium/base/supplier/OneShotCallback$CallbackWrapper;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/base/supplier/OneshotSupplier;
-Lorg/chromium/base/supplier/OneshotSupplierImpl;
-HSPLorg/chromium/base/supplier/OneshotSupplierImpl;-><init>()V
-HSPLorg/chromium/base/supplier/OneshotSupplierImpl;->get()Ljava/lang/Object;
-HSPLorg/chromium/base/supplier/OneshotSupplierImpl;->onAvailable(Lorg/chromium/base/Callback;)Ljava/lang/Object;
-HSPLorg/chromium/base/supplier/OneshotSupplierImpl;->set(Ljava/lang/Object;)V
-Lorg/chromium/base/supplier/Supplier;
-HSPLorg/chromium/base/supplier/Supplier;->hasValue()Z
-Lorg/chromium/base/supplier/UnownedUserDataSupplier;
-HSPLorg/chromium/base/supplier/UnownedUserDataSupplier;-><init>(Lorg/chromium/base/UnownedUserDataKey;)V
-HSPLorg/chromium/base/supplier/UnownedUserDataSupplier;->attach(Lorg/chromium/base/UnownedUserDataHost;)V
-HSPLorg/chromium/base/supplier/UnownedUserDataSupplier;->destroy()V
-Lorg/chromium/base/task/AsyncTask;
-HSPLorg/chromium/base/task/AsyncTask;-><init>()V
-PLorg/chromium/base/task/AsyncTask;->cancel(Z)Z
-HSPLorg/chromium/base/task/AsyncTask;->executeOnExecutor(Ljava/util/concurrent/Executor;)V
-HSPLorg/chromium/base/task/AsyncTask;->executeOnTaskRunner(Lorg/chromium/base/task/TaskRunner;)V
-HSPLorg/chromium/base/task/AsyncTask;->executionPreamble()V
-HSPLorg/chromium/base/task/AsyncTask;->get()Ljava/lang/Object;
-HSPLorg/chromium/base/task/AsyncTask;->isCancelled()Z
-PLorg/chromium/base/task/AsyncTask;->onCancelled()V
-PLorg/chromium/base/task/AsyncTask;->onCancelled(Ljava/lang/Object;)V
-HSPLorg/chromium/base/task/AsyncTask;->onPreExecute()V
-HSPLorg/chromium/base/task/AsyncTask;->postResult(Ljava/lang/Object;)V
-Lorg/chromium/base/task/AsyncTask$$ExternalSyntheticLambda0;
-HSPLorg/chromium/base/task/AsyncTask$$ExternalSyntheticLambda0;-><init>()V
-HSPLorg/chromium/base/task/AsyncTask$$ExternalSyntheticLambda0;->execute(Ljava/lang/Runnable;)V
-Lorg/chromium/base/task/AsyncTask$$ExternalSyntheticLambda1;
-HSPLorg/chromium/base/task/AsyncTask$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/base/task/AsyncTask;Ljava/lang/Object;)V
-HSPLorg/chromium/base/task/AsyncTask$$ExternalSyntheticLambda1;->run()V
-Lorg/chromium/base/task/AsyncTask$1;
-HSPLorg/chromium/base/task/AsyncTask$1;-><init>(Lorg/chromium/base/task/AsyncTask;)V
-HSPLorg/chromium/base/task/AsyncTask$1;->call()Ljava/lang/Object;
-Lorg/chromium/base/task/AsyncTask$NamedFutureTask;
-HSPLorg/chromium/base/task/AsyncTask$NamedFutureTask;-><init>(Lorg/chromium/base/task/AsyncTask;Lorg/chromium/base/task/AsyncTask$1;)V
-HSPLorg/chromium/base/task/AsyncTask$NamedFutureTask;->done()V
-HSPLorg/chromium/base/task/AsyncTask$NamedFutureTask;->run()V
-Lorg/chromium/base/task/AsyncTask$StealRunnableHandler;
-HSPLorg/chromium/base/task/AsyncTask$StealRunnableHandler;-><init>()V
-Lorg/chromium/base/task/BackgroundOnlyAsyncTask;
-HSPLorg/chromium/base/task/BackgroundOnlyAsyncTask;-><init>()V
-Lorg/chromium/base/task/ChainedTasks;
-HSPLorg/chromium/base/task/ChainedTasks;-><init>()V
-HSPLorg/chromium/base/task/ChainedTasks;->add(Lorg/chromium/base/task/TaskTraits;Ljava/lang/Runnable;)V
-HSPLorg/chromium/base/task/ChainedTasks;->start(Z)V
-Lorg/chromium/base/task/ChainedTasks$1;
-HSPLorg/chromium/base/task/ChainedTasks$1;-><init>(Lorg/chromium/base/task/ChainedTasks;)V
-HSPLorg/chromium/base/task/ChainedTasks$1;->run()V
-Lorg/chromium/base/task/ChoreographerTaskRunner;
-HSPLorg/chromium/base/task/ChoreographerTaskRunner;-><init>(Landroid/view/Choreographer;)V
-HSPLorg/chromium/base/task/ChoreographerTaskRunner;->postDelayedTask(Ljava/lang/Runnable;J)V
-Lorg/chromium/base/task/ChoreographerTaskRunner$1;
-HSPLorg/chromium/base/task/ChoreographerTaskRunner$1;-><init>(Ljava/lang/Runnable;I)V
-HSPLorg/chromium/base/task/ChoreographerTaskRunner$1;->doFrame(J)V
-Lorg/chromium/base/task/ChromeThreadPoolExecutor;
-HSPLorg/chromium/base/task/ChromeThreadPoolExecutor;-><init>()V
-HSPLorg/chromium/base/task/ChromeThreadPoolExecutor;->execute(Ljava/lang/Runnable;)V
-Lorg/chromium/base/task/ChromeThreadPoolExecutor$1;
-HSPLorg/chromium/base/task/ChromeThreadPoolExecutor$1;-><init>()V
-HSPLorg/chromium/base/task/ChromeThreadPoolExecutor$1;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;
-Lorg/chromium/base/task/ChromeThreadPoolExecutor$1$$ExternalSyntheticLambda0;
-HSPLorg/chromium/base/task/ChromeThreadPoolExecutor$1$$ExternalSyntheticLambda0;-><init>(Ljava/lang/Runnable;)V
-HSPLorg/chromium/base/task/ChromeThreadPoolExecutor$1$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/base/task/DefaultTaskExecutor;
-HSPLorg/chromium/base/task/DefaultTaskExecutor;-><init>()V
-HSPLorg/chromium/base/task/DefaultTaskExecutor;->createChoreographerTaskRunner()Lorg/chromium/base/task/ChoreographerTaskRunner;
-HSPLorg/chromium/base/task/DefaultTaskExecutor;->createSequencedTaskRunner(Lorg/chromium/base/task/TaskTraits;)Lorg/chromium/base/task/SequencedTaskRunner;
-HSPLorg/chromium/base/task/DefaultTaskExecutor;->createTaskRunner(Lorg/chromium/base/task/TaskTraits;)Lorg/chromium/base/task/TaskRunner;
-HSPLorg/chromium/base/task/DefaultTaskExecutor;->postDelayedTask(Lorg/chromium/base/task/TaskTraits;Ljava/lang/Runnable;J)V
-Lorg/chromium/base/task/DefaultTaskExecutor$$ExternalSyntheticLambda0;
-HSPLorg/chromium/base/task/DefaultTaskExecutor$$ExternalSyntheticLambda0;-><init>()V
-HSPLorg/chromium/base/task/DefaultTaskExecutor$$ExternalSyntheticLambda0;->call()Ljava/lang/Object;
-Lorg/chromium/base/task/PostTask;
-HSPLorg/chromium/base/task/PostTask;->createSequencedTaskRunner(Lorg/chromium/base/task/TaskTraits;)Lorg/chromium/base/task/SequencedTaskRunner;
-HSPLorg/chromium/base/task/PostTask;->onNativeSchedulerReady()V
-HSPLorg/chromium/base/task/PostTask;->postDelayedTask(Lorg/chromium/base/task/TaskTraits;Ljava/lang/Runnable;J)V
-HSPLorg/chromium/base/task/PostTask;->postTask(Lorg/chromium/base/task/TaskTraits;Ljava/lang/Runnable;)V
-HSPLorg/chromium/base/task/PostTask;->runOrPostTask(Lorg/chromium/base/task/TaskTraits;Ljava/lang/Runnable;)V
-Lorg/chromium/base/task/SequencedTaskRunner;
-Lorg/chromium/base/task/SequencedTaskRunnerImpl;
-HSPLorg/chromium/base/task/SequencedTaskRunnerImpl;-><init>(Lorg/chromium/base/task/TaskTraits;)V
-HSPLorg/chromium/base/task/SequencedTaskRunnerImpl;->initNativeTaskRunner()V
-HSPLorg/chromium/base/task/SequencedTaskRunnerImpl;->runPreNativeTask()V
-HSPLorg/chromium/base/task/SequencedTaskRunnerImpl;->schedulePreNativeTask()V
-Lorg/chromium/base/task/SerialExecutor;
-HSPLorg/chromium/base/task/SerialExecutor;-><init>()V
-HSPLorg/chromium/base/task/SerialExecutor;->execute(Ljava/lang/Runnable;)V
-HSPLorg/chromium/base/task/SerialExecutor;->scheduleNext()V
-Lorg/chromium/base/task/SerialExecutor$1;
-HSPLorg/chromium/base/task/SerialExecutor$1;-><init>(Lorg/chromium/base/task/SerialExecutor;Ljava/lang/Runnable;)V
-HSPLorg/chromium/base/task/SerialExecutor$1;->run()V
-Lorg/chromium/base/task/SingleThreadTaskRunner;
-Lorg/chromium/base/task/SingleThreadTaskRunnerImpl;
-HSPLorg/chromium/base/task/SingleThreadTaskRunnerImpl;-><init>(Landroid/os/Handler;Lorg/chromium/base/task/TaskTraits;)V
-HSPLorg/chromium/base/task/SingleThreadTaskRunnerImpl;->belongsToCurrentThread()Z
-HSPLorg/chromium/base/task/SingleThreadTaskRunnerImpl;->schedulePreNativeTask()V
-Lorg/chromium/base/task/TaskExecutor;
-Lorg/chromium/base/task/TaskRunner;
-Lorg/chromium/base/task/TaskRunnerImpl;
-HSPLorg/chromium/base/task/TaskRunnerImpl;-><init>(Lorg/chromium/base/task/TaskTraits;Ljava/lang/String;I)V
-HSPLorg/chromium/base/task/TaskRunnerImpl;->destroyGarbageCollectedTaskRunners()V
-HSPLorg/chromium/base/task/TaskRunnerImpl;->initNativeTaskRunner()V
-HSPLorg/chromium/base/task/TaskRunnerImpl;->oneTimeInitialization()V
-HSPLorg/chromium/base/task/TaskRunnerImpl;->postDelayedTask(Ljava/lang/Runnable;J)V
-HSPLorg/chromium/base/task/TaskRunnerImpl;->postTask(Ljava/lang/Runnable;)V
-HSPLorg/chromium/base/task/TaskRunnerImpl;->runPreNativeTask()V
-HSPLorg/chromium/base/task/TaskRunnerImpl;->schedulePreNativeTask()V
-Lorg/chromium/base/task/TaskRunnerImpl$$ExternalSyntheticLambda0;
-HSPLorg/chromium/base/task/TaskRunnerImpl$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/base/task/TaskRunnerImpl;)V
-HSPLorg/chromium/base/task/TaskRunnerImpl$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/base/task/TaskRunnerImpl$TaskRunnerCleaner;
-HSPLorg/chromium/base/task/TaskRunnerImpl$TaskRunnerCleaner;-><init>(Lorg/chromium/base/task/TaskRunnerImpl;)V
-Lorg/chromium/base/task/TaskTraits;
-HSPLorg/chromium/base/task/TaskTraits;-><init>()V
-HSPLorg/chromium/base/task/TaskTraits;-><init>(Lorg/chromium/base/task/TaskTraits;)V
-HSPLorg/chromium/base/task/TaskTraits;->hashCode()I
-HSPLorg/chromium/base/task/TaskTraits;->taskPriority(I)Lorg/chromium/base/task/TaskTraits;
-Lorg/chromium/blink/mojom/AndroidFontLookup;
-Lorg/chromium/blink/mojom/AndroidFontLookup_Internal;
-Lorg/chromium/blink/mojom/AndroidFontLookup_Internal$1;
-HSPLorg/chromium/blink/mojom/AndroidFontLookup_Internal$1;-><init>()V
-HSPLorg/chromium/blink/mojom/AndroidFontLookup_Internal$1;->buildStub(Lorg/chromium/mojo/system/Core;Lorg/chromium/mojo/bindings/Interface;)Lorg/chromium/mojo/bindings/Interface$Stub;
-HSPLorg/chromium/blink/mojom/AndroidFontLookup_Internal$1;->getName()Ljava/lang/String;
-Lorg/chromium/blink/mojom/AndroidFontLookup_Internal$AndroidFontLookupFetchAllFontFilesParams;
-Lorg/chromium/blink/mojom/AndroidFontLookup_Internal$AndroidFontLookupFetchAllFontFilesResponseParams;
-HSPLorg/chromium/blink/mojom/AndroidFontLookup_Internal$AndroidFontLookupFetchAllFontFilesResponseParams;-><init>(I)V
-HSPLorg/chromium/blink/mojom/AndroidFontLookup_Internal$AndroidFontLookupFetchAllFontFilesResponseParams;->encode(Lorg/chromium/mojo/bindings/Encoder;)V
-Lorg/chromium/blink/mojom/AndroidFontLookup_Internal$AndroidFontLookupFetchAllFontFilesResponseParams$$ExternalSyntheticOutline0;
-HSPLorg/chromium/blink/mojom/AndroidFontLookup_Internal$AndroidFontLookupFetchAllFontFilesResponseParams$$ExternalSyntheticOutline0;->m(IIILorg/chromium/mojo/bindings/Encoder;Ljava/lang/String;ZII)I
-HSPLorg/chromium/blink/mojom/AndroidFontLookup_Internal$AndroidFontLookupFetchAllFontFilesResponseParams$$ExternalSyntheticOutline0;->m(Lorg/chromium/mojo/bindings/Message;)Lorg/chromium/mojo/bindings/Decoder;
-Lorg/chromium/blink/mojom/AndroidFontLookup_Internal$AndroidFontLookupFetchAllFontFilesResponseParamsProxyToResponder;
-HSPLorg/chromium/blink/mojom/AndroidFontLookup_Internal$AndroidFontLookupFetchAllFontFilesResponseParamsProxyToResponder;-><init>(Lorg/chromium/mojo/system/Core;Lorg/chromium/mojo/bindings/MessageReceiver;JI)V
-HSPLorg/chromium/blink/mojom/AndroidFontLookup_Internal$AndroidFontLookupFetchAllFontFilesResponseParamsProxyToResponder;->call(Ljava/lang/Object;)V
-Lorg/chromium/blink/mojom/AndroidFontLookup_Internal$Stub;
-HSPLorg/chromium/blink/mojom/AndroidFontLookup_Internal$Stub;-><init>(Lorg/chromium/mojo/system/Core;Lorg/chromium/blink/mojom/AndroidFontLookup;)V
-HSPLorg/chromium/blink/mojom/AndroidFontLookup_Internal$Stub;->acceptWithResponder(Lorg/chromium/mojo/bindings/Message;Lorg/chromium/mojo/bindings/MessageReceiver;)Z
-Lorg/chromium/build/NativeLibraries;
-Lorg/chromium/chrome/browser/ActivityTabProvider;
-HSPLorg/chromium/chrome/browser/ActivityTabProvider;-><init>()V
-HSPLorg/chromium/chrome/browser/ActivityTabProvider;->triggerActivityTabChangeEvent(Lorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/ActivityTabProvider$1;
-HSPLorg/chromium/chrome/browser/ActivityTabProvider$1;-><init>(Lorg/chromium/chrome/browser/ActivityTabProvider;)V
-HSPLorg/chromium/chrome/browser/ActivityTabProvider$1;->onStartedShowing(IZ)V
-Lorg/chromium/chrome/browser/ActivityTabProvider$2;
-HSPLorg/chromium/chrome/browser/ActivityTabProvider$2;-><init>(Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;)V
-HSPLorg/chromium/chrome/browser/ActivityTabProvider$2;->didSelectTab(IILorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/ActivityTabProvider$3;
-HSPLorg/chromium/chrome/browser/ActivityTabProvider$3;-><init>(Lorg/chromium/chrome/browser/ActivityTabProvider;)V
-Lorg/chromium/chrome/browser/ActivityTabProvider$ActivityTabTabObserver;
-HSPLorg/chromium/chrome/browser/ActivityTabProvider$ActivityTabTabObserver;-><init>(Lorg/chromium/chrome/browser/ActivityTabProvider;Z)V
-HSPLorg/chromium/chrome/browser/ActivityTabProvider$ActivityTabTabObserver;->destroy()V
-HSPLorg/chromium/chrome/browser/ActivityTabProvider$ActivityTabTabObserver;->onObservingDifferentTab(Lorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/ActivityTabProvider$ActivityTabTabObserver$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/ActivityTabProvider$ActivityTabTabObserver$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/ActivityTabProvider$ActivityTabTabObserver;)V
-HSPLorg/chromium/chrome/browser/ActivityTabProvider$ActivityTabTabObserver$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/ActivityUtils;
-HSPLorg/chromium/chrome/browser/ActivityUtils;->getThemeId()I
-Lorg/chromium/chrome/browser/AppHooks;
-HSPLorg/chromium/chrome/browser/AppHooks;-><init>()V
-HSPLorg/chromium/chrome/browser/AppHooks;->get()Lorg/chromium/chrome/browser/AppHooks;
-Lorg/chromium/chrome/browser/AppHooksImpl;
-HSPLorg/chromium/chrome/browser/AppHooksImpl;-><init>()V
-Lorg/chromium/chrome/browser/AppHooksModule;
-HSPLorg/chromium/chrome/browser/AppHooksModule;-><init>()V
-Lorg/chromium/chrome/browser/AppIndexingUtil;
-HSPLorg/chromium/chrome/browser/AppIndexingUtil;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;)V
-HSPLorg/chromium/chrome/browser/AppIndexingUtil;->extractDocumentMetadata(Lorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/AppIndexingUtil$1;
-HSPLorg/chromium/chrome/browser/AppIndexingUtil$1;-><init>(Lorg/chromium/chrome/browser/AppIndexingUtil;Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;)V
-HSPLorg/chromium/chrome/browser/AppIndexingUtil$1;->didFirstVisuallyNonEmptyPaint(Lorg/chromium/chrome/browser/tab/TabImpl;)V
-HSPLorg/chromium/chrome/browser/AppIndexingUtil$1;->onPageLoadFinished(Lorg/chromium/chrome/browser/tab/Tab;Lorg/chromium/url/GURL;)V
-Lorg/chromium/chrome/browser/ApplicationLifetime;
-Lorg/chromium/chrome/browser/ApplicationLifetime$Observer;
-Lorg/chromium/chrome/browser/backup/BackupSigninProcessor;
-HSPLorg/chromium/chrome/browser/backup/BackupSigninProcessor;->setBackupFlowSigninComplete()V
-HSPLorg/chromium/chrome/browser/backup/BackupSigninProcessor;->start(Landroid/app/Activity;)V
-Lorg/chromium/chrome/browser/ChromeActionModeHandler;
-HSPLorg/chromium/chrome/browser/ChromeActionModeHandler;-><init>(Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda0;Lorg/chromium/base/supplier/ObservableSupplier;)V
-Lorg/chromium/chrome/browser/ChromeActionModeHandler$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/ChromeActionModeHandler$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/ChromeActionModeHandler;Lorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda0;Lorg/chromium/base/supplier/ObservableSupplier;)V
-HSPLorg/chromium/chrome/browser/ChromeActionModeHandler$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/ChromeActionModeHandler$1;
-HSPLorg/chromium/chrome/browser/ChromeActionModeHandler$1;-><init>(Lorg/chromium/chrome/browser/ChromeActionModeHandler;Lorg/chromium/chrome/browser/ActivityTabProvider;)V
-HSPLorg/chromium/chrome/browser/ChromeActionModeHandler$1;->onObservingDifferentTab(Lorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/ChromeActionModeHandler$ActionModeCallback;
-HSPLorg/chromium/chrome/browser/ChromeActionModeHandler$ActionModeCallback;-><init>(Lorg/chromium/chrome/browser/tab/Tab;Lorg/chromium/content_public/browser/WebContents;Lorg/chromium/base/Callback;Lorg/chromium/base/supplier/Supplier;)V
-Lorg/chromium/chrome/browser/ChromeActivitySessionTracker;
-HSPLorg/chromium/chrome/browser/ChromeActivitySessionTracker;-><init>()V
-HSPLorg/chromium/chrome/browser/ChromeActivitySessionTracker;->getInstance()Lorg/chromium/chrome/browser/ChromeActivitySessionTracker;
-HSPLorg/chromium/chrome/browser/ChromeActivitySessionTracker;->updateAcceptLanguages()V
-Lorg/chromium/chrome/browser/ChromeActivitySessionTracker$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/ChromeActivitySessionTracker$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/ChromeActivitySessionTracker;)V
-HSPLorg/chromium/chrome/browser/ChromeActivitySessionTracker$$ExternalSyntheticLambda0;->onApplicationStateChange(I)V
-Lorg/chromium/chrome/browser/ChromeApplicationImpl;
-HSPLorg/chromium/chrome/browser/ChromeApplicationImpl;-><init>()V
-HSPLorg/chromium/chrome/browser/ChromeApplicationImpl;->getComponent()Lorg/chromium/chrome/browser/dependency_injection/DaggerChromeAppComponent$ChromeAppComponentImpl;
-HSPLorg/chromium/chrome/browser/ChromeApplicationImpl;->onCreate()V
-Lorg/chromium/chrome/browser/backup/ChromeBackupAgentImpl;
-Lorg/chromium/chrome/browser/backup/ChromeBackupWatcher;
-HSPLorg/chromium/chrome/browser/backup/ChromeBackupWatcher;-><init>()V
-HSPLorg/chromium/chrome/browser/backup/ChromeBackupWatcher;->createChromeBackupWatcher()Lorg/chromium/chrome/browser/backup/ChromeBackupWatcher;
-HSPLorg/chromium/chrome/browser/backup/ChromeBackupWatcher;->onBackupPrefsChanged()V
-Lorg/chromium/chrome/browser/backup/ChromeBackupWatcher$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/backup/ChromeBackupWatcher$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/backup/ChromeBackupWatcher;)V
-HSPLorg/chromium/chrome/browser/backup/ChromeBackupWatcher$$ExternalSyntheticLambda0;->onPreferenceChanged(Ljava/lang/String;)V
-Lorg/chromium/chrome/browser/backup/ChromeBackupWatcher$1;
-HSPLorg/chromium/chrome/browser/backup/ChromeBackupWatcher$1;-><init>(Lorg/chromium/chrome/browser/backup/ChromeBackupWatcher;)V
-Lorg/chromium/chrome/browser/ChromeBaseAppCompatActivity;
-HSPLorg/chromium/chrome/browser/ChromeBaseAppCompatActivity;-><init>()V
-HSPLorg/chromium/chrome/browser/ChromeBaseAppCompatActivity;->applyOverrides(Landroid/content/Context;Landroid/content/res/Configuration;)Z
-HSPLorg/chromium/chrome/browser/ChromeBaseAppCompatActivity;->attachBaseContext(Landroid/content/Context;)V
-HSPLorg/chromium/chrome/browser/ChromeBaseAppCompatActivity;->createNightModeStateProvider()Lorg/chromium/chrome/browser/night_mode/NightModeStateProvider;
-HSPLorg/chromium/chrome/browser/ChromeBaseAppCompatActivity;->getClassLoader()Ljava/lang/ClassLoader;
-HSPLorg/chromium/chrome/browser/ChromeBaseAppCompatActivity;->getModalDialogManager()Lorg/chromium/ui/modaldialog/ModalDialogManager;
-HSPLorg/chromium/chrome/browser/ChromeBaseAppCompatActivity;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
-HSPLorg/chromium/chrome/browser/ChromeBaseAppCompatActivity;->initializeNightModeStateProvider()V
-HSPLorg/chromium/chrome/browser/ChromeBaseAppCompatActivity;->onCreate(Landroid/os/Bundle;)V
-HSPLorg/chromium/chrome/browser/ChromeBaseAppCompatActivity;->onDestroy()V
-HSPLorg/chromium/chrome/browser/ChromeBaseAppCompatActivity;->setDefaultTaskDescription()V
-HSPLorg/chromium/chrome/browser/ChromeBaseAppCompatActivity;->setTheme(I)V
-Lorg/chromium/chrome/browser/ChromeBaseAppCompatActivity$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/ChromeBaseAppCompatActivity$$ExternalSyntheticLambda0;-><init>()V
-HSPLorg/chromium/chrome/browser/ChromeBaseAppCompatActivity$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/ChromeInactivityTracker;
-HSPLorg/chromium/chrome/browser/ChromeInactivityTracker;-><init>()V
-HSPLorg/chromium/chrome/browser/ChromeInactivityTracker;->onDestroy()V
-HSPLorg/chromium/chrome/browser/ChromeInactivityTracker;->onPauseWithNative()V
-HSPLorg/chromium/chrome/browser/ChromeInactivityTracker;->onResumeWithNative()V
-HSPLorg/chromium/chrome/browser/ChromeInactivityTracker;->onStartWithNative()V
-HSPLorg/chromium/chrome/browser/ChromeInactivityTracker;->onStopWithNative()V
-HSPLorg/chromium/chrome/browser/ChromeInactivityTracker;->setLastVisibleTimeMsAndRecord(J)V
-Lorg/chromium/chrome/browser/ChromeKeyboardVisibilityDelegate;
-HSPLorg/chromium/chrome/browser/ChromeKeyboardVisibilityDelegate;-><init>(Ljava/lang/ref/WeakReference;Lorg/chromium/chrome/browser/keyboard_accessory/ManualFillingComponentSupplier;)V
-HSPLorg/chromium/chrome/browser/ChromeKeyboardVisibilityDelegate;->calculateKeyboardHeight(Landroid/view/View;)I
-HSPLorg/chromium/chrome/browser/ChromeKeyboardVisibilityDelegate;->isKeyboardShowing(Landroid/content/Context;Landroid/view/View;)Z
-Lorg/chromium/chrome/browser/ChromeLocalizationUtils;
-HSPLorg/chromium/chrome/browser/ChromeLocalizationUtils;->recordUiLanguageStatus()V
-Lorg/chromium/chrome/browser/ChromeStrictMode;
-Lorg/chromium/chrome/browser/ChromeStrictMode$$ExternalSyntheticApiModelOutline0;
-HSPLorg/chromium/chrome/browser/ChromeStrictMode$$ExternalSyntheticApiModelOutline0;->m(Landroid/os/StrictMode$VmPolicy$Builder;)V
-Lorg/chromium/chrome/browser/ChromeStrictMode$$ExternalSyntheticApiModelOutline1;
-HSPLorg/chromium/chrome/browser/ChromeStrictMode$$ExternalSyntheticApiModelOutline1;->m(Landroid/os/StrictMode$VmPolicy$Builder;)Landroid/os/StrictMode$VmPolicy$Builder;
-HSPLorg/chromium/chrome/browser/ChromeStrictMode$$ExternalSyntheticApiModelOutline1;->m(Landroid/os/StrictMode$VmPolicy$Builder;)V
-Lorg/chromium/chrome/browser/ChromeStrictMode$$ExternalSyntheticLambda3;
-HSPLorg/chromium/chrome/browser/ChromeStrictMode$$ExternalSyntheticLambda3;-><init>()V
-Lorg/chromium/chrome/browser/ChromeStrictMode$$ExternalSyntheticLambda4;
-HSPLorg/chromium/chrome/browser/ChromeStrictMode$$ExternalSyntheticLambda4;-><init>()V
-HSPLorg/chromium/chrome/browser/ChromeStrictMode$$ExternalSyntheticLambda4;->queueIdle()Z
-Lorg/chromium/chrome/browser/ChromeTabbedActivity;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->$r8$lambda$y0VI-Tx4eNfLGtbQTxAQ0QI-8JA(Lorg/chromium/chrome/browser/ChromeTabbedActivity;)Lorg/chromium/chrome/browser/TabbedModeTabDelegateFactory;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->-$$Nest$mlaunchIntent(Lorg/chromium/chrome/browser/ChromeTabbedActivity;Lorg/chromium/content_public/browser/LoadUrlParams;Ljava/lang/String;ZLandroid/content/Intent;)V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;-><init>()V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->createAppMenuPropertiesDelegate()Lorg/chromium/chrome/browser/ui/appmenu/AppMenuPropertiesDelegate;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->createIntentHandlerDelegate()Lorg/chromium/chrome/browser/IntentHandler$IntentHandlerDelegate;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->createLaunchCauseMetrics()Lorg/chromium/chrome/browser/app/metrics/LaunchCauseMetrics;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->createModalDialogManager()Lorg/chromium/ui/modaldialog/ModalDialogManager;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->createRootUiCoordinator()Lorg/chromium/chrome/browser/ui/RootUiCoordinator;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->createStartSurface(Lorg/chromium/chrome/browser/compositor/CompositorViewHolder;Landroid/view/ViewGroup;)V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->createTabCreators()Landroid/util/Pair;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->createTabModelOrchestrator()Lorg/chromium/chrome/browser/app/tabmodel/TabModelOrchestrator;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->createTabModels()V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->createTabSwitcherOrStartSurface(Lorg/chromium/chrome/browser/compositor/CompositorViewHolder;Landroid/view/ViewGroup;)V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->destroyTabModels()V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->dispatchOnInflationComplete()V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->finishNativeInitialization()V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->getActivityType()I
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->getControlContainerHeightResource()I
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->getControlContainerLayoutId()I
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->getLayoutManager()Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->getTabCreator(Z)Lorg/chromium/chrome/browser/tabmodel/ChromeTabCreator;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->getTabCreator(Z)Lorg/chromium/chrome/browser/tabmodel/TabCreator;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->getToolbarLayoutId()I
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->handleDebugIntent(Landroid/content/Intent;)V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->initDeferredStartupForActivity()V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->initializeCompositor()V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->initializeCompositorContent()V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->initializeState()V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->isInOverviewMode()Z
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->isStartSurfaceRefactorEnabled()Z
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->isStartedUpCorrectly(Landroid/content/Intent;)Z
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->maybeDispatchExplicitMainViewIntent(Landroid/content/Intent;I)I
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->maybeDispatchLaunchIntent(Landroid/content/Intent;Landroid/os/Bundle;)I
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->onAccessibilityModeChanged(Z)V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->onAccessibilityTabSwitcherModeChanged()V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->onDestroyInternal()V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->onNewIntent(Landroid/content/Intent;)V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->onNewIntentWithNative(Landroid/content/Intent;)V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->onPause()V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->onPauseWithNative()V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->onPreCreate()V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->onResume()V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->onResumeWithNative()V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->onSceneChange(Lorg/chromium/chrome/browser/compositor/layouts/Layout;)V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->onStart()V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->onStartWithNative()V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->onStop()V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->onStopWithNative()V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->performPostInflationStartup()V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->performPreInflationStartup()V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->saveState()V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->setInitialOverviewState(Z)V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->setTrackColdStartupMetrics(Z)V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->setupCompositorContentPreNativeForPhone()V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->shouldIgnoreIntent()Z
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->shouldShowOverviewPageOnStart()Z
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity;->startNativeInitialization()V
-Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticApiModelOutline0;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticApiModelOutline0;->m()Ljava/lang/Class;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticApiModelOutline0;->m(Ljava/lang/Object;)Landroid/content/pm/ShortcutManager;
-Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda11;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda11;-><init>(Lorg/chromium/chrome/browser/ChromeTabbedActivity;I)V
-Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda12;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda12;-><init>(Lorg/chromium/chrome/browser/ui/RootUiCoordinator;I)V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda12;->get()Ljava/lang/Object;
-Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda13;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda13;-><init>(Lorg/chromium/chrome/browser/ChromeTabbedActivity;I)V
-Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda14;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda14;-><init>(Lorg/chromium/chrome/browser/ChromeTabbedActivity;I)V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda14;->getAsBoolean()Z
-Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda15;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda15;-><init>(Lorg/chromium/chrome/browser/ChromeTabbedActivity;)V
-Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda16;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda16;-><init>(Lorg/chromium/chrome/browser/compositor/CompositorViewHolder;I)V
-Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda18;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda18;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarManager;I)V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda18;->get()Ljava/lang/Object;
-Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda19;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda19;-><init>(Lorg/chromium/chrome/browser/ChromeTabbedActivity;)V
-Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda3;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda3;-><init>(Lorg/chromium/chrome/browser/ui/appmenu/AppMenuBlocker;I)V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda3;->run()V
-Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda4;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda4;-><init>(Lorg/chromium/chrome/browser/ChromeTabbedActivity;I)V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda4;->get()Ljava/lang/Object;
-Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda5;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda5;-><init>(I)V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda5;->run()V
-Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda8;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda8;-><init>(Lorg/chromium/chrome/browser/ChromeTabbedActivity;)V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda8;->getSnackbarManager()Lorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager;
-Lorg/chromium/chrome/browser/ChromeTabbedActivity$1;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$1;-><init>(Lorg/chromium/chrome/browser/ChromeTabbedActivity;)V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$1;->hasIncognitoTabs()Z
-Lorg/chromium/chrome/browser/ChromeTabbedActivity$3;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$3;-><init>(Lorg/chromium/chrome/browser/ChromeTabbedActivity;Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;)V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$3;->didAddTab(Lorg/chromium/chrome/browser/tab/Tab;IIZ)V
-Lorg/chromium/chrome/browser/ChromeTabbedActivity$5;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$5;-><init>(Lorg/chromium/chrome/browser/ChromeTabbedActivity;)V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$5;->onTabStateInitialized()V
-Lorg/chromium/chrome/browser/ChromeTabbedActivity$6;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$6;-><init>(Lorg/chromium/chrome/browser/ChromeTabbedActivity;Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;)V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$6;->onDidFinishNavigationInPrimaryMainFrame(Lorg/chromium/chrome/browser/tab/TabImpl;Lorg/chromium/content_public/browser/NavigationHandle;)V
-Lorg/chromium/chrome/browser/ChromeTabbedActivity$7;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$7;-><init>(Lorg/chromium/chrome/browser/ChromeTabbedActivity;)V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$7;->getIntentHandlingTimeMs()J
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$7;->processUrlViewIntent(Lorg/chromium/content_public/browser/LoadUrlParams;ILjava/lang/String;ILandroid/content/Intent;)V
-Lorg/chromium/chrome/browser/ChromeTabbedActivity$Preload;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$Preload;-><init>()V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$Preload;->getLifecycle()Landroidx/lifecycle/LifecycleRegistry;
-Lorg/chromium/chrome/browser/ChromeTabbedActivity$Preload$1;
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$Preload$1;-><init>(Landroidx/lifecycle/LifecycleOwner;)V
-HSPLorg/chromium/chrome/browser/ChromeTabbedActivity$Preload$1;->addObserver(Landroidx/lifecycle/LifecycleObserver;)V
-Lorg/chromium/chrome/browser/ChromeTabbedActivity2;
-Lorg/chromium/chrome/browser/ChromeWindow;
-HSPLorg/chromium/chrome/browser/ChromeWindow;-><init>(Landroid/app/Activity;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/chrome/browser/keyboard_accessory/ManualFillingComponentSupplier;Lorg/chromium/ui/base/IntentRequestTrackerImpl;)V
-HSPLorg/chromium/chrome/browser/ChromeWindow;->getKeyboardDelegate()Lorg/chromium/ui/KeyboardVisibilityDelegate;
-Lorg/chromium/chrome/browser/DefaultBrowserInfo;
-Lorg/chromium/chrome/browser/DefaultBrowserInfo$1;
-HSPLorg/chromium/chrome/browser/DefaultBrowserInfo$1;-><init>()V
-HSPLorg/chromium/chrome/browser/DefaultBrowserInfo$1;->doInBackground()Ljava/lang/Object;
-Lorg/chromium/chrome/browser/DefaultBrowserInfo$2;
-HSPLorg/chromium/chrome/browser/DefaultBrowserInfo$2;-><init>()V
-HSPLorg/chromium/chrome/browser/DefaultBrowserInfo$2;->doInBackground()Ljava/lang/Object;
-HSPLorg/chromium/chrome/browser/DefaultBrowserInfo$2;->onPostExecute(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/DefaultBrowserInfo$DefaultInfo;
-HSPLorg/chromium/chrome/browser/DefaultBrowserInfo$DefaultInfo;-><init>()V
-Lorg/chromium/chrome/browser/DeferredStartupHandler;
-HSPLorg/chromium/chrome/browser/DeferredStartupHandler;-><init>()V
-HSPLorg/chromium/chrome/browser/DeferredStartupHandler;->addDeferredTask(Ljava/lang/Runnable;)V
-HSPLorg/chromium/chrome/browser/DeferredStartupHandler;->getInstance()Lorg/chromium/chrome/browser/DeferredStartupHandler;
-Lorg/chromium/chrome/browser/DeferredStartupHandler$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/DeferredStartupHandler$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/DeferredStartupHandler;)V
-HSPLorg/chromium/chrome/browser/DeferredStartupHandler$$ExternalSyntheticLambda0;->queueIdle()Z
-PLorg/chromium/chrome/browser/DevToolsServer;-><init>()V
-Lorg/chromium/chrome/browser/FileProviderHelper;
-HSPLorg/chromium/chrome/browser/FileProviderHelper;-><init>()V
-Lorg/chromium/chrome/browser/IntentHandler;
-HSPLorg/chromium/chrome/browser/IntentHandler;-><init>(Landroid/app/Activity;Lorg/chromium/chrome/browser/IntentHandler$IntentHandlerDelegate;)V
-HSPLorg/chromium/chrome/browser/IntentHandler;->determineExternalIntentSource(Landroid/content/Intent;)I
-HSPLorg/chromium/chrome/browser/IntentHandler;->extractUrlFromIntent(Landroid/content/Intent;)Ljava/lang/String;
-HSPLorg/chromium/chrome/browser/IntentHandler;->getBringTabToFrontId(Landroid/content/Intent;)I
-HSPLorg/chromium/chrome/browser/IntentHandler;->getExtraHeadersFromIntent(Landroid/content/Intent;)Ljava/lang/String;
-HSPLorg/chromium/chrome/browser/IntentHandler;->getReferrerUrl(Landroid/content/Intent;)Ljava/lang/String;
-HSPLorg/chromium/chrome/browser/IntentHandler;->getReferrerUrlIncludingExtraHeaders(Landroid/content/Intent;)Ljava/lang/String;
-HSPLorg/chromium/chrome/browser/IntentHandler;->getSanitizedUrlScheme(Ljava/lang/String;)Ljava/lang/String;
-HSPLorg/chromium/chrome/browser/IntentHandler;->getTabId(Landroid/content/Intent;)I
-PLorg/chromium/chrome/browser/IntentHandler;->getTimestampFromIntent(Landroid/content/Intent;)J
-HSPLorg/chromium/chrome/browser/IntentHandler;->getTransitionTypeFromIntent(Landroid/content/Intent;I)I
-HSPLorg/chromium/chrome/browser/IntentHandler;->getUrlFromIntent(Landroid/content/Intent;)Ljava/lang/String;
-HSPLorg/chromium/chrome/browser/IntentHandler;->hasAnyIncognitoExtra(Landroid/os/Bundle;)Z
-HSPLorg/chromium/chrome/browser/IntentHandler;->intentHasUnsafeInternalScheme(Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;)Z
-HSPLorg/chromium/chrome/browser/IntentHandler;->maybeAddAdditionalContentHeaders(Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLorg/chromium/chrome/browser/IntentHandler;->onNewIntent(Landroid/content/Intent;)Z
-HSPLorg/chromium/chrome/browser/IntentHandler;->processUrlViewIntent(Lorg/chromium/content_public/browser/LoadUrlParams;ILjava/lang/String;ILandroid/content/Intent;)V
-HSPLorg/chromium/chrome/browser/IntentHandler;->shouldIgnoreIntent(Landroid/content/Intent;ZZ)Z
-Lorg/chromium/chrome/browser/IntentHandler$IntentHandlerDelegate;
-Lorg/chromium/chrome/browser/LaunchIntentDispatcher;
-HSPLorg/chromium/chrome/browser/LaunchIntentDispatcher;->isCustomTabIntent(Landroid/content/Intent;)Z
-PLorg/chromium/chrome/browser/LauncherShortcutActivity$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/content/pm/ShortcutInfo$Builder;Ljava/lang/String;)Landroid/content/pm/ShortcutInfo$Builder;
-PLorg/chromium/chrome/browser/LauncherShortcutActivity$$ExternalSyntheticApiModelOutline0;->m()V
-PLorg/chromium/chrome/browser/LauncherShortcutActivity$$ExternalSyntheticApiModelOutline0;->m(Landroid/content/pm/ShortcutInfo$Builder;)Landroid/content/pm/ShortcutInfo;
-PLorg/chromium/chrome/browser/LauncherShortcutActivity$$ExternalSyntheticApiModelOutline0;->m(Landroid/content/pm/ShortcutInfo$Builder;Landroid/content/Intent;)Landroid/content/pm/ShortcutInfo$Builder;
-PLorg/chromium/chrome/browser/LauncherShortcutActivity$$ExternalSyntheticApiModelOutline0;->m(Landroid/content/pm/ShortcutInfo$Builder;Landroid/graphics/drawable/Icon;)Landroid/content/pm/ShortcutInfo$Builder;
-PLorg/chromium/chrome/browser/LauncherShortcutActivity$$ExternalSyntheticApiModelOutline0;->m(Landroid/content/pm/ShortcutInfo$Builder;Ljava/lang/String;)Landroid/content/pm/ShortcutInfo$Builder;
-PLorg/chromium/chrome/browser/LauncherShortcutActivity$$ExternalSyntheticApiModelOutline0;->m(Landroid/content/pm/ShortcutManager;Ljava/util/List;)Z
-PLorg/chromium/chrome/browser/LauncherShortcutActivity$$ExternalSyntheticApiModelOutline0;->m(Lorg/chromium/chrome/browser/ChromeTabbedActivity;)Landroid/content/pm/ShortcutInfo$Builder;
-Lorg/chromium/chrome/browser/PowerBroadcastReceiver;
-HSPLorg/chromium/chrome/browser/PowerBroadcastReceiver;-><init>()V
-HSPLorg/chromium/chrome/browser/PowerBroadcastReceiver;->onForegroundSessionStart()V
-Lorg/chromium/chrome/browser/PowerBroadcastReceiver$ServiceRunnable;
-HSPLorg/chromium/chrome/browser/PowerBroadcastReceiver$ServiceRunnable;-><init>()V
-PLorg/chromium/chrome/browser/PowerBroadcastReceiver$ServiceRunnable;->run()V
-Lorg/chromium/chrome/browser/ProductConfig;
-Lorg/chromium/chrome/browser/SwipeRefreshHandler;
-HSPLorg/chromium/chrome/browser/SwipeRefreshHandler;-><init>(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/SwipeRefreshHandler;->cancelStopRefreshingRunnable()V
-HSPLorg/chromium/chrome/browser/SwipeRefreshHandler;->cleanupWebContents(Lorg/chromium/content_public/browser/WebContents;)V
-HSPLorg/chromium/chrome/browser/SwipeRefreshHandler;->destroyInternal()V
-HSPLorg/chromium/chrome/browser/SwipeRefreshHandler;->detachSwipeRefreshLayoutIfNecessary()V
-HSPLorg/chromium/chrome/browser/SwipeRefreshHandler;->from(Lorg/chromium/chrome/browser/tab/Tab;)Lorg/chromium/chrome/browser/SwipeRefreshHandler;
-HSPLorg/chromium/chrome/browser/SwipeRefreshHandler;->initWebContents(Lorg/chromium/content_public/browser/WebContents;)V
-HSPLorg/chromium/chrome/browser/SwipeRefreshHandler;->reset()V
-Lorg/chromium/chrome/browser/SwipeRefreshHandler$$ExternalSyntheticLambda2;
-Lorg/chromium/chrome/browser/SwipeRefreshHandler$1;
-HSPLorg/chromium/chrome/browser/SwipeRefreshHandler$1;-><init>(Lorg/chromium/chrome/browser/SwipeRefreshHandler;)V
-Lorg/chromium/chrome/browser/TabUsageTracker;
-HSPLorg/chromium/chrome/browser/TabUsageTracker;-><init>(Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;)V
-HSPLorg/chromium/chrome/browser/TabUsageTracker;->onDestroy()V
-HSPLorg/chromium/chrome/browser/TabUsageTracker;->onPauseWithNative()V
-HSPLorg/chromium/chrome/browser/TabUsageTracker;->onResumeWithNative()V
-HSPLorg/chromium/chrome/browser/TabUsageTracker;->onStartWithNative()V
-HSPLorg/chromium/chrome/browser/TabUsageTracker;->onStopWithNative()V
-PLorg/chromium/chrome/browser/TabUsageTracker$1;-><init>(Lorg/chromium/chrome/browser/TabUsageTracker;)V
-PLorg/chromium/chrome/browser/TabUsageTracker$1;->onTabStateInitialized()V
-Lorg/chromium/chrome/browser/TabUsageTracker$2;
-HSPLorg/chromium/chrome/browser/TabUsageTracker$2;-><init>(Lorg/chromium/chrome/browser/TabUsageTracker;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;)V
-HSPLorg/chromium/chrome/browser/TabUsageTracker$2;->didAddTab(Lorg/chromium/chrome/browser/tab/Tab;IIZ)V
-HSPLorg/chromium/chrome/browser/TabUsageTracker$2;->didSelectTab(IILorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/TabbedModeTabDelegateFactory;
-HSPLorg/chromium/chrome/browser/TabbedModeTabDelegateFactory;-><init>(Landroid/app/Activity;Lorg/chromium/components/browser_ui/util/ComposedBrowserControlsVisibilityDelegate;Lorg/chromium/chrome/browser/share/ShareDelegateSupplier;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda3;Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerImpl;Lorg/chromium/chrome/browser/init/ChromeActivityNativeDelegate;Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;Lorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler;Lorg/chromium/chrome/browser/tabmodel/TabCreatorManager;Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorSupplier;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda4;Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;Lorg/chromium/ui/base/ActivityWindowAndroid;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda4;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda14;Lorg/chromium/base/jank_tracker/JankTrackerImpl;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda18;Lorg/chromium/chrome/browser/share/crow/CrowButtonDelegateImpl;)V
-HSPLorg/chromium/chrome/browser/TabbedModeTabDelegateFactory;->createBrowserControlsVisibilityDelegate(Lorg/chromium/chrome/browser/tab/TabImpl;)Lorg/chromium/components/browser_ui/util/BrowserControlsVisibilityDelegate;
-HSPLorg/chromium/chrome/browser/TabbedModeTabDelegateFactory;->createContextMenuPopulatorFactory(Lorg/chromium/chrome/browser/tab/Tab;)Lorg/chromium/chrome/browser/contextmenu/ContextMenuPopulatorFactory;
-HSPLorg/chromium/chrome/browser/TabbedModeTabDelegateFactory;->createExternalNavigationHandler(Lorg/chromium/chrome/browser/tab/TabImpl;)Lorg/chromium/components/external_intents/ExternalNavigationHandler;
-HSPLorg/chromium/chrome/browser/TabbedModeTabDelegateFactory;->createNativePage(Ljava/lang/String;Lorg/chromium/chrome/browser/ui/native_page/NativePage;Lorg/chromium/chrome/browser/tab/Tab;)Lorg/chromium/chrome/browser/ui/native_page/NativePage;
-HSPLorg/chromium/chrome/browser/TabbedModeTabDelegateFactory;->createWebContentsDelegate(Lorg/chromium/chrome/browser/tab/Tab;)Lorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid;
-Lorg/chromium/chrome/browser/WarmupManager;
-HSPLorg/chromium/chrome/browser/WarmupManager;-><init>()V
-HSPLorg/chromium/chrome/browser/WarmupManager;->getInstance()Lorg/chromium/chrome/browser/WarmupManager;
-HSPLorg/chromium/chrome/browser/WarmupManager;->maybePreconnectUrlAndSubResources(Ljava/lang/String;Lorg/chromium/chrome/browser/profiles/Profile;)V
-HSPLorg/chromium/chrome/browser/WarmupManager;->takeSpareWebContents(ZZ)Lorg/chromium/content_public/browser/WebContents;
-Lorg/chromium/chrome/browser/WebContentsFactory;
-HSPLorg/chromium/chrome/browser/WebContentsFactory;->createWebContents(Lorg/chromium/chrome/browser/profiles/Profile;Z)Lorg/chromium/content_public/browser/WebContents;
-Lorg/chromium/chrome/browser/WebContentsFactory$WebContentsCreationException;
-HSPLorg/chromium/chrome/browser/WebContentsFactory$WebContentsCreationException;-><init>()V
-Lorg/chromium/chrome/browser/accessibility/AccessibilityTabHelper;
-HSPLorg/chromium/chrome/browser/accessibility/AccessibilityTabHelper;-><init>(Lorg/chromium/chrome/browser/tab/TabImpl;)V
-HSPLorg/chromium/chrome/browser/accessibility/AccessibilityTabHelper;->destroy()V
-HSPLorg/chromium/chrome/browser/accessibility/AccessibilityTabHelper;->onContentChanged(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/accessibility/AccessibilityTabHelper;->updateWebContentsAccessibilityStateForTab(Lorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate$ReaderForAccessibilityDelegate$$ExternalSyntheticOutline0;
-HSPLorg/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate$ReaderForAccessibilityDelegate$$ExternalSyntheticOutline0;->m(Ljava/lang/String;)Z
-Lorg/chromium/chrome/browser/accessibility_tab_switcher/OverviewListLayout;
-HSPLorg/chromium/chrome/browser/accessibility_tab_switcher/OverviewListLayout;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;Lorg/chromium/chrome/browser/compositor/CompositorViewHolder;Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;)V
-HSPLorg/chromium/chrome/browser/accessibility_tab_switcher/OverviewListLayout;->destroy()V
-HSPLorg/chromium/chrome/browser/accessibility_tab_switcher/OverviewListLayout;->setTabModelSelector(Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/chrome/browser/compositor/layouts/content/TabContentManager;)V
-Lorg/chromium/chrome/browser/accessibility_tab_switcher/OverviewListLayout$1;
-HSPLorg/chromium/chrome/browser/accessibility_tab_switcher/OverviewListLayout$1;-><init>(Lorg/chromium/chrome/browser/accessibility_tab_switcher/OverviewListLayout;)V
-Lorg/chromium/chrome/browser/announcement/AnnouncementNotificationManager;
-HSPLorg/chromium/chrome/browser/announcement/AnnouncementNotificationManager;->isFirstRun()Z
-Lorg/chromium/chrome/browser/app/ChromeActivity;
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;-><init>()V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->areTabModelsInitialized()Z
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->changeBackgroundColorForResizing()V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->createComponent(Lorg/chromium/chrome/browser/dependency_injection/ChromeActivityCommonsModule;)Lorg/chromium/chrome/browser/dependency_injection/ChromeActivityComponent;
-PLorg/chromium/chrome/browser/app/ChromeActivity;->createContextReporterIfNeeded()V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->createModalDialogManager()Lorg/chromium/ui/modaldialog/ModalDialogManager;
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->createWindowAndroid()Lorg/chromium/ui/base/ActivityWindowAndroid;
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->doLayoutInflation()V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->finishNativeInitialization()V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->getActivityTab()Lorg/chromium/chrome/browser/tab/Tab;
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->getBackgroundDrawable()Landroid/graphics/drawable/Drawable;
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->getBaseStatusBarColor(Lorg/chromium/chrome/browser/tab/Tab;)I
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->getBrowserControlsManager()Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->getCurrentTabModel()Lorg/chromium/chrome/browser/tabmodel/TabModel;
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->getCurrentWebContents()Lorg/chromium/content_public/browser/WebContents;
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->getFullscreenManager()Lorg/chromium/chrome/browser/fullscreen/FullscreenManager;
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->getLaunchCauseMetrics()Lorg/chromium/chrome/browser/app/metrics/LaunchCauseMetrics;
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->getOnCreateTimestampMs()J
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->getSnackbarManager()Lorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager;
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->getTabCreator(Z)Lorg/chromium/chrome/browser/tabmodel/TabCreator;
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->getTabModelSelector()Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->getTabObscuringHandler()Lorg/chromium/chrome/browser/tab/TabObscuringHandler;
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->getViewToBeDrawnBeforeInitializingNative()Landroid/view/View;
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->initDeferredStartupForActivity()V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->initializeBackPressHandling()V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->initializeCompositor()V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->initializeCompositorContent(Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;Landroid/view/View;Landroid/view/ViewGroup;Lorg/chromium/chrome/browser/toolbar/ControlContainer;)V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->initializeStartupMetrics()V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->initializeState()V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->initializeTabModels()V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->isCustomTab()Z
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->markSessionEnd()V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->markSessionResume()V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->maybeRemoveWindowBackground()V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->onActivityHidden()V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->onActivityShown()V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->onAttachFragment(Landroid/app/Fragment;)V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->onDestroy()V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->onInitialLayoutInflationComplete()V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->onNewIntentWithNative(Landroid/content/Intent;)V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->onPauseWithNative()V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->onPreCreate()V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->onResumeWithNative()V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->onStart()V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->onStartWithNative()V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->onStop()V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->onStopWithNative()V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->onWindowFocusChanged(Z)V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->performPostInflationStartup()V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->performPreInflationStartup()V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->postDeferredStartupIfNeeded()V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->shouldPostDeferredStartupForReparentedTab()Z
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->shouldStartGpuProcess()Z
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->supportsAppMenu()Z
-HSPLorg/chromium/chrome/browser/app/ChromeActivity;->triggerLayoutInflation()V
-Lorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/app/ChromeActivity;I)V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda1;->run()V
-Lorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda11;
-HSPLorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda11;-><init>(Landroid/util/Pair;)V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda11;->getTabCreator(Z)Lorg/chromium/chrome/browser/tabmodel/TabCreator;
-PLorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda12;-><init>(Lorg/chromium/chrome/browser/app/ChromeActivity;)V
-Lorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda3;
-HSPLorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda3;-><init>(Lorg/chromium/chrome/browser/app/ChromeActivity;I)V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda3;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda4;
-HSPLorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda4;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;)V
-Lorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda5;
-HSPLorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda5;-><init>(ILjava/lang/Object;)V
-Lorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda6;
-HSPLorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda6;-><init>(Lorg/chromium/chrome/browser/app/ChromeActivity;I)V
-Lorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda7;
-HSPLorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda7;-><init>(Lorg/chromium/chrome/browser/app/ChromeActivity;Ljava/lang/String;)V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda7;->run()V
-Lorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda8;
-HSPLorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda8;-><init>()V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda8;->run()V
-Lorg/chromium/chrome/browser/app/ChromeActivity$1;
-HSPLorg/chromium/chrome/browser/app/ChromeActivity$1;-><init>(Lorg/chromium/chrome/browser/app/ChromeActivity;Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;)V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity$1;->onLoadStopped(Lorg/chromium/chrome/browser/tab/TabImpl;Z)V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity$1;->onPageLoadFinished(Lorg/chromium/chrome/browser/tab/Tab;Lorg/chromium/url/GURL;)V
-Lorg/chromium/chrome/browser/app/ChromeActivity$2;
-HSPLorg/chromium/chrome/browser/app/ChromeActivity$2;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;)V
-HSPLorg/chromium/chrome/browser/app/ChromeActivity$2;->onTabStateInitialized()V
-Lorg/chromium/chrome/browser/app/ChromeActivity$4;
-HSPLorg/chromium/chrome/browser/app/ChromeActivity$4;-><init>(Lorg/chromium/chrome/browser/app/ChromeActivity;)V
-Lorg/chromium/chrome/browser/app/ChromeActivity$6;
-HSPLorg/chromium/chrome/browser/app/ChromeActivity$6;-><init>(Lorg/chromium/chrome/browser/app/ChromeActivity;)V
-Lorg/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl;
-HSPLorg/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/chrome/browser/multiwindow/MultiWindowModeStateDispatcherImpl;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/chrome/browser/toolbar/ToolbarManager;Landroid/view/View;Lorg/chromium/base/supplier/OneshotSupplierImpl;Lorg/chromium/base/supplier/OneshotSupplierImpl;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/base/supplier/OneshotSupplierImpl;)V
-HSPLorg/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl;->loadingStateChanged(Z)V
-Lorg/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl;I)V
-HSPLorg/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl;)V
-Lorg/chromium/chrome/browser/app/download/DownloadMessageUiDelegate;
-HSPLorg/chromium/chrome/browser/app/download/DownloadMessageUiDelegate;-><init>()V
-HSPLorg/chromium/chrome/browser/app/download/DownloadMessageUiDelegate;->maybeSwitchToFocusedActivity()Z
-Lorg/chromium/chrome/browser/app/flags/ChromeCachedFlags;
-HSPLorg/chromium/chrome/browser/app/flags/ChromeCachedFlags;-><init>()V
-Lorg/chromium/chrome/browser/app/metrics/LaunchCauseMetrics;
-HSPLorg/chromium/chrome/browser/app/metrics/LaunchCauseMetrics;-><init>(Landroid/app/Activity;)V
-HSPLorg/chromium/chrome/browser/app/metrics/LaunchCauseMetrics;->onActivityStateChange(Landroid/app/Activity;I)V
-HSPLorg/chromium/chrome/browser/app/metrics/LaunchCauseMetrics;->onApplicationStateChange(I)V
-Lorg/chromium/chrome/browser/app/metrics/LaunchCauseMetrics$1;
-HSPLorg/chromium/chrome/browser/app/metrics/LaunchCauseMetrics$1;-><init>()V
-HSPLorg/chromium/chrome/browser/app/metrics/LaunchCauseMetrics$1;->onActivityStateChange(Landroid/app/Activity;I)V
-Lorg/chromium/chrome/browser/app/metrics/LaunchCauseMetrics$BetweenLaunchState;
-HSPLorg/chromium/chrome/browser/app/metrics/LaunchCauseMetrics$BetweenLaunchState;-><init>()V
-Lorg/chromium/chrome/browser/app/metrics/LaunchCauseMetrics$PerLaunchState;
-HSPLorg/chromium/chrome/browser/app/metrics/LaunchCauseMetrics$PerLaunchState;-><init>()V
-Lorg/chromium/chrome/browser/app/metrics/TabbedActivityLaunchCauseMetrics;
-HSPLorg/chromium/chrome/browser/app/metrics/TabbedActivityLaunchCauseMetrics;-><init>(Landroid/app/Activity;)V
-HSPLorg/chromium/chrome/browser/app/metrics/TabbedActivityLaunchCauseMetrics;->computeIntentLaunchCause()I
-HSPLorg/chromium/chrome/browser/app/metrics/TabbedActivityLaunchCauseMetrics;->getIntentionalTransitionCauseOrOther()I
-Lorg/chromium/chrome/browser/app/notifications/ContextualNotificationPermissionRequesterImpl;
-HSPLorg/chromium/chrome/browser/app/notifications/ContextualNotificationPermissionRequesterImpl;-><init>()V
-Lorg/chromium/chrome/browser/app/notifications/ContextualNotificationPermissionRequesterImpl$LazyHolder;
-Lorg/chromium/chrome/browser/app/omnibox/OmniboxPedalDelegateImpl;
-HSPLorg/chromium/chrome/browser/app/omnibox/OmniboxPedalDelegateImpl;-><init>(Landroid/app/Activity;Lorg/chromium/base/supplier/OneshotSupplierImpl;Lorg/chromium/base/supplier/ObservableSupplierImpl;)V
-Lorg/chromium/chrome/browser/app/omnibox/OmniboxPedalDelegateImpl$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/app/omnibox/OmniboxPedalDelegateImpl$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/app/omnibox/OmniboxPedalDelegateImpl;)V
-Lorg/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid;
-HSPLorg/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid;-><init>(Lorg/chromium/chrome/browser/tab/Tab;Landroid/app/Activity;Lorg/chromium/chrome/browser/init/ChromeActivityNativeDelegate;ZLorg/chromium/chrome/browser/browser_controls/BrowserControlsVisibilityManager;Lorg/chromium/chrome/browser/fullscreen/FullscreenManager;Lorg/chromium/chrome/browser/tabmodel/TabCreatorManager;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/base/supplier/Supplier;)V
-HSPLorg/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid;->controlsResizeView()Z
-HSPLorg/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid;->getBottomControlsHeight()I
-HSPLorg/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid;->getBottomControlsMinHeight()I
-HSPLorg/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid;->getDisplayMode()I
-HSPLorg/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid;->getTopControlsHeight()I
-HSPLorg/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid;->getTopControlsMinHeight()I
-HSPLorg/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid;->isCustomTab()Z
-HSPLorg/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid;->isForceDarkWebContentEnabled()Z
-HSPLorg/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid;->isFullscreenForTabOrPending()Z
-HSPLorg/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid;->isModalContextMenu()Z
-HSPLorg/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid;->isNightModeEnabled()Z
-HSPLorg/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid;->isPictureInPictureEnabled()Z
-HSPLorg/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid;->shouldAnimateBrowserControlsHeightChanges()Z
-Lorg/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid$1;
-HSPLorg/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid$1;-><init>(Lorg/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid;)V
-HSPLorg/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid$1;->onDestroyed(Lorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/app/tab_activity_glue/ReparentingDelegateFactory$2;
-HSPLorg/chromium/chrome/browser/app/tab_activity_glue/ReparentingDelegateFactory$2;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;)V
-Lorg/chromium/chrome/browser/app/tab_activity_glue/TabReparentingController;
-HSPLorg/chromium/chrome/browser/app/tab_activity_glue/TabReparentingController;-><init>(Lorg/chromium/chrome/browser/app/tab_activity_glue/ReparentingDelegateFactory$2;Lorg/chromium/chrome/browser/tabmodel/AsyncTabParamsManagerImpl;)V
-Lorg/chromium/chrome/browser/app/tabmodel/AsyncTabParamsManagerSingleton;
-Lorg/chromium/chrome/browser/app/tabmodel/ChromeNextTabPolicySupplier;
-HSPLorg/chromium/chrome/browser/app/tabmodel/ChromeNextTabPolicySupplier;-><init>(Lorg/chromium/base/supplier/OneshotSupplierImpl;)V
-Lorg/chromium/chrome/browser/app/tabmodel/ChromeNextTabPolicySupplier$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/app/tabmodel/ChromeNextTabPolicySupplier$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/app/tabmodel/ChromeNextTabPolicySupplier;)V
-HSPLorg/chromium/chrome/browser/app/tabmodel/ChromeNextTabPolicySupplier$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/app/tabmodel/ChromeTabModelFilterFactory;
-HSPLorg/chromium/chrome/browser/app/tabmodel/ChromeTabModelFilterFactory;-><init>(Landroid/app/Activity;)V
-Lorg/chromium/chrome/browser/app/tabmodel/DefaultTabModelSelectorFactory;
-HSPLorg/chromium/chrome/browser/app/tabmodel/DefaultTabModelSelectorFactory;-><init>()V
-Lorg/chromium/chrome/browser/app/tabmodel/TabModelOrchestrator;
-HSPLorg/chromium/chrome/browser/app/tabmodel/TabModelOrchestrator;-><init>()V
-HSPLorg/chromium/chrome/browser/app/tabmodel/TabModelOrchestrator;->destroy()V
-HSPLorg/chromium/chrome/browser/app/tabmodel/TabModelOrchestrator;->loadState(Z)V
-HSPLorg/chromium/chrome/browser/app/tabmodel/TabModelOrchestrator;->onNativeLibraryReady(Lorg/chromium/chrome/browser/compositor/layouts/content/TabContentManager;)V
-HSPLorg/chromium/chrome/browser/app/tabmodel/TabModelOrchestrator;->restoreTabs(Z)V
-HSPLorg/chromium/chrome/browser/app/tabmodel/TabModelOrchestrator;->saveState()V
-Lorg/chromium/chrome/browser/app/tabmodel/TabModelOrchestrator$1;
-HSPLorg/chromium/chrome/browser/app/tabmodel/TabModelOrchestrator$1;-><init>(Lorg/chromium/chrome/browser/app/tabmodel/TabModelOrchestrator;)V
-Lorg/chromium/chrome/browser/app/tabmodel/TabWindowManagerSingleton;
-HSPLorg/chromium/chrome/browser/app/tabmodel/TabWindowManagerSingleton;->getInstance()Lorg/chromium/chrome/browser/tabmodel/TabWindowManagerImpl;
-Lorg/chromium/chrome/browser/app/tabmodel/TabbedModeTabModelOrchestrator;
-HSPLorg/chromium/chrome/browser/app/tabmodel/TabbedModeTabModelOrchestrator;-><init>(Z)V
-Lorg/chromium/chrome/browser/autofill/SaveUpdateAddressProfilePrompt$$ExternalSyntheticOutline0;
-HSPLorg/chromium/chrome/browser/autofill/SaveUpdateAddressProfilePrompt$$ExternalSyntheticOutline0;->m(Ljava/util/HashMap;Lorg/chromium/ui/modelutil/PropertyModel$WritableObjectPropertyKey;Lorg/chromium/ui/modelutil/PropertyModel$ObjectContainer;Ljava/util/HashMap;)Lorg/chromium/ui/modelutil/PropertyModel;
-Lorg/chromium/chrome/browser/back_press/BackPressManager;
-HSPLorg/chromium/chrome/browser/back_press/BackPressManager;-><init>(Lorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda1;)V
-HSPLorg/chromium/chrome/browser/back_press/BackPressManager;->isEnabled()Z
-Lorg/chromium/chrome/browser/back_press/BackPressManager$1;
-HSPLorg/chromium/chrome/browser/back_press/BackPressManager$1;-><init>(Lorg/chromium/chrome/browser/back_press/BackPressManager;)V
-Lorg/chromium/chrome/browser/background_sync/GooglePlayServicesChecker;
-HSPLorg/chromium/chrome/browser/background_sync/GooglePlayServicesChecker;->shouldDisableBackgroundSync()Z
-Lorg/chromium/chrome/browser/background_task_scheduler/ChromeBackgroundTaskFactory;
-HSPLorg/chromium/chrome/browser/background_task_scheduler/ChromeBackgroundTaskFactory;-><init>()V
-HSPLorg/chromium/chrome/browser/background_task_scheduler/ChromeBackgroundTaskFactory;->setAsDefault()V
-Lorg/chromium/chrome/browser/background_task_scheduler/ChromeBackgroundTaskFactory$LazyHolder;
-Lorg/chromium/chrome/browser/banners/AppBannerInProductHelpController;
-HSPLorg/chromium/chrome/browser/banners/AppBannerInProductHelpController;-><init>(Landroidx/appcompat/app/AppCompatActivity;Lorg/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl;Lorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator$$ExternalSyntheticLambda0;)V
-Lorg/chromium/chrome/browser/banners/AppBannerInProductHelpControllerProvider;
-Lorg/chromium/chrome/browser/base/ServiceTracingProxyProvider;
-HSPLorg/chromium/chrome/browser/base/ServiceTracingProxyProvider;->create(Landroid/content/Context;)Lorg/chromium/chrome/browser/base/ServiceTracingProxyProvider;
-Lorg/chromium/chrome/browser/base/SplitChromeApplication;
-HSPLorg/chromium/chrome/browser/base/SplitChromeApplication;-><init>()V
-HSPLorg/chromium/chrome/browser/base/SplitChromeApplication;->attachBaseContext(Landroid/content/Context;)V
-HSPLorg/chromium/chrome/browser/base/SplitChromeApplication;->finishPreload(Ljava/lang/String;)V
-HSPLorg/chromium/chrome/browser/base/SplitChromeApplication;->getResources()Landroid/content/res/Resources;
-HSPLorg/chromium/chrome/browser/base/SplitChromeApplication;->onCreate()V
-Lorg/chromium/chrome/browser/base/SplitChromeApplication$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/base/SplitChromeApplication$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/base/SplitChromeApplication;I)V
-HSPLorg/chromium/chrome/browser/base/SplitChromeApplication$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;
-Lorg/chromium/chrome/browser/base/SplitChromeApplication$1;
-HSPLorg/chromium/chrome/browser/base/SplitChromeApplication$1;-><init>(Lorg/chromium/chrome/browser/base/SplitChromeApplication;Landroid/content/Context;)V
-Lorg/chromium/chrome/browser/base/SplitChromeApplication$1$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/base/SplitChromeApplication$1$$ExternalSyntheticLambda0;-><init>(Landroid/content/Context;Landroid/os/HandlerThread;)V
-HSPLorg/chromium/chrome/browser/base/SplitChromeApplication$1$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/base/SplitCompatAppComponentFactory;
-HSPLorg/chromium/chrome/browser/base/SplitCompatAppComponentFactory;-><init>()V
-HSPLorg/chromium/chrome/browser/base/SplitCompatAppComponentFactory;->getComponentClassLoader(Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/ClassLoader;
-HSPLorg/chromium/chrome/browser/base/SplitCompatAppComponentFactory;->instantiateActivity(Ljava/lang/ClassLoader;Ljava/lang/String;Landroid/content/Intent;)Landroid/app/Activity;
-HSPLorg/chromium/chrome/browser/base/SplitCompatAppComponentFactory;->instantiateProvider(Ljava/lang/ClassLoader;Ljava/lang/String;)Landroid/content/ContentProvider;
-HSPLorg/chromium/chrome/browser/base/SplitCompatAppComponentFactory;->instantiateReceiver(Ljava/lang/ClassLoader;Ljava/lang/String;Landroid/content/Intent;)Landroid/content/BroadcastReceiver;
-Lorg/chromium/chrome/browser/base/SplitCompatApplication;
-HSPLorg/chromium/chrome/browser/base/SplitCompatApplication;-><init>()V
-HSPLorg/chromium/chrome/browser/base/SplitCompatApplication;->attachBaseContext(Landroid/content/Context;)V
-HSPLorg/chromium/chrome/browser/base/SplitCompatApplication;->createChromeContext(Landroid/content/Context;)Landroid/content/Context;
-HSPLorg/chromium/chrome/browser/base/SplitCompatApplication;->getImpl()Lorg/chromium/chrome/browser/base/SplitCompatApplication$Impl;
-HSPLorg/chromium/chrome/browser/base/SplitCompatApplication;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
-HSPLorg/chromium/chrome/browser/base/SplitCompatApplication;->isBrowserProcess()Z
-HSPLorg/chromium/chrome/browser/base/SplitCompatApplication;->onCreate()V
-Lorg/chromium/chrome/browser/base/SplitCompatApplication$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/base/SplitCompatApplication$$ExternalSyntheticLambda0;-><init>()V
-HSPLorg/chromium/chrome/browser/base/SplitCompatApplication$$ExternalSyntheticLambda0;->onApplicationStateChange(I)V
-Lorg/chromium/chrome/browser/base/SplitCompatApplication$1;
-HSPLorg/chromium/chrome/browser/base/SplitCompatApplication$1;-><init>()V
-Lorg/chromium/chrome/browser/base/SplitCompatApplication$Impl;
-HSPLorg/chromium/chrome/browser/base/SplitCompatApplication$Impl;-><init>()V
-Lorg/chromium/chrome/browser/base/SplitCompatBackupAgent$Impl;
-Lorg/chromium/chrome/browser/base/SplitCompatContentProvider;
-HSPLorg/chromium/chrome/browser/base/SplitCompatContentProvider;-><init>()V
-HSPLorg/chromium/chrome/browser/base/SplitCompatContentProvider;->onCreate()Z
-Lorg/chromium/chrome/browser/base/SplitCompatIntentService$Impl;
-Lorg/chromium/chrome/browser/base/SplitCompatService$Impl;
-Lorg/chromium/chrome/browser/base/SplitPreloader;
-HSPLorg/chromium/chrome/browser/base/SplitPreloader;-><init>(Landroid/content/Context;)V
-Lorg/chromium/chrome/browser/base/SplitPreloader$PreloadTask;
-HSPLorg/chromium/chrome/browser/base/SplitPreloader$PreloadTask;-><init>(Lorg/chromium/chrome/browser/base/SplitPreloader;Lorg/chromium/chrome/browser/base/SplitChromeApplication$1;)V
-HSPLorg/chromium/chrome/browser/base/SplitPreloader$PreloadTask;->createSplitContext()Landroid/content/Context;
-HSPLorg/chromium/chrome/browser/base/SplitPreloader$PreloadTask;->doInBackground()Ljava/lang/Object;
-HSPLorg/chromium/chrome/browser/base/SplitPreloader$PreloadTask;->finish$1()V
-HSPLorg/chromium/chrome/browser/base/SplitPreloader$PreloadTask;->onPostExecute(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/battery/BatterySaverOSSetting;
-HSPLorg/chromium/chrome/browser/battery/BatterySaverOSSetting;->isBatterySaverEnabled()Z
-Lorg/chromium/chrome/browser/bluetooth/BluetoothNotificationManager;
-HSPLorg/chromium/chrome/browser/bluetooth/BluetoothNotificationManager;->updateBluetoothNotificationForTab(Landroid/content/Context;ILorg/chromium/content_public/browser/WebContents;Lorg/chromium/url/GURL;Z)V
-Lorg/chromium/chrome/browser/bookmarks/BookmarkBridge;
-HSPLorg/chromium/chrome/browser/bookmarks/BookmarkBridge;-><init>(J)V
-HSPLorg/chromium/chrome/browser/bookmarks/BookmarkBridge;->addObserver(Lorg/chromium/chrome/browser/bookmarks/BookmarkModelObserver;)V
-HSPLorg/chromium/chrome/browser/bookmarks/BookmarkBridge;->bookmarkModelLoaded()V
-HSPLorg/chromium/chrome/browser/bookmarks/BookmarkBridge;->createBookmarkModel(J)Lorg/chromium/chrome/browser/bookmarks/BookmarkModel;
-HSPLorg/chromium/chrome/browser/bookmarks/BookmarkBridge;->finishLoadingBookmarkModel(Ljava/lang/Runnable;)V
-HSPLorg/chromium/chrome/browser/bookmarks/BookmarkBridge;->getUserBookmarkIdForTab(Lorg/chromium/chrome/browser/tab/Tab;)Lorg/chromium/components/bookmarks/BookmarkId;
-HSPLorg/chromium/chrome/browser/bookmarks/BookmarkBridge;->isEditBookmarksEnabled()Z
-HSPLorg/chromium/chrome/browser/bookmarks/BookmarkBridge;->removeObserver(Lorg/chromium/chrome/browser/bookmarks/BookmarkModelObserver;)V
-Lorg/chromium/chrome/browser/bookmarks/BookmarkBridge$1;
-HSPLorg/chromium/chrome/browser/bookmarks/BookmarkBridge$1;-><init>(Lorg/chromium/chrome/browser/bookmarks/BookmarkBridge;)V
-Lorg/chromium/chrome/browser/bookmarks/BookmarkBridge$2;
-HSPLorg/chromium/chrome/browser/bookmarks/BookmarkBridge$2;-><init>(Lorg/chromium/chrome/browser/bookmarks/BookmarkModel;JLjava/lang/Runnable;)V
-HSPLorg/chromium/chrome/browser/bookmarks/BookmarkBridge$2;->bookmarkModelLoaded()V
-Lorg/chromium/chrome/browser/bookmarks/BookmarkModel;
-HSPLorg/chromium/chrome/browser/bookmarks/BookmarkModel;-><init>(J)V
-HSPLorg/chromium/chrome/browser/bookmarks/BookmarkModel;->getForProfile(Lorg/chromium/chrome/browser/profiles/Profile;)Lorg/chromium/chrome/browser/bookmarks/BookmarkModel;
-Lorg/chromium/chrome/browser/bookmarks/BookmarkModelObserver;
-HSPLorg/chromium/chrome/browser/bookmarks/BookmarkModelObserver;-><init>()V
-HSPLorg/chromium/chrome/browser/bookmarks/BookmarkModelObserver;->bookmarkModelLoaded()V
-Lorg/chromium/chrome/browser/bookmarks/BookmarkUtils;
-Lorg/chromium/chrome/browser/bookmarks/TabBookmarker;
-HSPLorg/chromium/chrome/browser/bookmarks/TabBookmarker;-><init>(Landroid/app/Activity;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda5;Lorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda6;Z)V
-Lorg/chromium/chrome/browser/browser_controls/BrowserControlsMarginSupplier;
-Lorg/chromium/chrome/browser/browser_controls/BrowserControlsSizer;
-Lorg/chromium/chrome/browser/browser_controls/BrowserControlsStateProvider$Observer;
-Lorg/chromium/chrome/browser/browser_controls/BrowserControlsUtils;
-HSPLorg/chromium/chrome/browser/browser_controls/BrowserControlsUtils;->getBottomContentOffset(Lorg/chromium/chrome/browser/browser_controls/BrowserControlsVisibilityManager;)I
-Lorg/chromium/chrome/browser/browser_controls/BrowserControlsVisibilityManager;
-Lorg/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate;
-HSPLorg/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate;-><init>(Lorg/chromium/base/supplier/ObservableSupplierImpl;)V
-HSPLorg/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate;->ensureControlsVisibleForMinDuration()V
-HSPLorg/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate;->releasePersistentShowingToken(I)V
-HSPLorg/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate;->showControlsTransient()V
-HSPLorg/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate;->updateVisibilityConstraints()V
-Lorg/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate;)V
-HSPLorg/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate;)V
-HSPLorg/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate$$ExternalSyntheticLambda1;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate$$ExternalSyntheticLambda2;
-HSPLorg/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate$$ExternalSyntheticLambda2;-><init>(Lorg/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate;I)V
-HSPLorg/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate$$ExternalSyntheticLambda2;->run()V
-Lorg/chromium/chrome/browser/browserservices/ClearDataDialogResultRecorder;
-HSPLorg/chromium/chrome/browser/browserservices/ClearDataDialogResultRecorder;-><init>(Ldagger/Lazy;Lorg/chromium/chrome/browser/init/ChromeBrowserInitializer;Lorg/chromium/chrome/browser/browserservices/metrics/TrustedWebActivityUmaRecorder;)V
-PLorg/chromium/chrome/browser/browserservices/ClearDataDialogResultRecorder;->recordDismissals(Ljava/lang/String;Z)V
-Lorg/chromium/chrome/browser/browserservices/intents/BrowserServicesIntentDataProvider;
-Lorg/chromium/chrome/browser/browserservices/metrics/TrustedWebActivityUmaRecorder;
-HSPLorg/chromium/chrome/browser/browserservices/metrics/TrustedWebActivityUmaRecorder;-><init>(Lorg/chromium/chrome/browser/dependency_injection/ChromeAppModule$1;)V
-Lorg/chromium/chrome/browser/browserservices/metrics/TrustedWebActivityUmaRecorder$DeferredTaskHandler;
-Lorg/chromium/chrome/browser/browserservices/permissiondelegation/InstalledWebappBridge;
-HSPLorg/chromium/chrome/browser/browserservices/permissiondelegation/InstalledWebappBridge;->getPermissions(I)[Lorg/chromium/chrome/browser/browserservices/permissiondelegation/InstalledWebappBridge$Permission;
-HSPLorg/chromium/chrome/browser/browserservices/permissiondelegation/InstalledWebappBridge;->setInstalledWebappProvider(J)V
-Lorg/chromium/chrome/browser/browserservices/permissiondelegation/InstalledWebappBridge$Permission;
-Lorg/chromium/chrome/browser/browserservices/permissiondelegation/InstalledWebappPermissionManager;
-HSPLorg/chromium/chrome/browser/browserservices/permissiondelegation/InstalledWebappPermissionManager;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/browserservices/permissiondelegation/InstalledWebappPermissionStore;Ldagger/Lazy;Lorg/chromium/chrome/browser/browserservices/metrics/TrustedWebActivityUmaRecorder;)V
-HSPLorg/chromium/chrome/browser/browserservices/permissiondelegation/InstalledWebappPermissionManager;->get()Lorg/chromium/chrome/browser/browserservices/permissiondelegation/InstalledWebappPermissionManager;
-Lorg/chromium/chrome/browser/browserservices/permissiondelegation/InstalledWebappPermissionStore;
-HSPLorg/chromium/chrome/browser/browserservices/permissiondelegation/InstalledWebappPermissionStore;-><init>()V
-HSPLorg/chromium/chrome/browser/browserservices/permissiondelegation/InstalledWebappPermissionStore;->getStoredOrigins()Ljava/util/HashSet;
-Lorg/chromium/chrome/browser/commerce/ShoppingFeatures;
-HSPLorg/chromium/chrome/browser/commerce/ShoppingFeatures;->isShoppingListEligible()Z
-Lorg/chromium/chrome/browser/commerce/ShoppingServiceFactory;
-HSPLorg/chromium/chrome/browser/commerce/ShoppingServiceFactory;->getForProfile(Lorg/chromium/chrome/browser/profiles/Profile;)Lorg/chromium/components/commerce/core/ShoppingService;
-Lorg/chromium/chrome/browser/compositor/CompositorSurfaceManager$SurfaceManagerCallbackTarget;
-Lorg/chromium/chrome/browser/compositor/CompositorSurfaceManagerImpl;
-HSPLorg/chromium/chrome/browser/compositor/CompositorSurfaceManagerImpl;-><init>(Landroid/view/ViewGroup;Lorg/chromium/chrome/browser/compositor/CompositorSurfaceManager$SurfaceManagerCallbackTarget;)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorSurfaceManagerImpl;->attachSurfaceNow(Lorg/chromium/chrome/browser/compositor/CompositorSurfaceManagerImpl$SurfaceState;)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorSurfaceManagerImpl;->detachSurfaceLater(Lorg/chromium/chrome/browser/compositor/CompositorSurfaceManagerImpl$SurfaceState;)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorSurfaceManagerImpl;->detachSurfaceNow(Lorg/chromium/chrome/browser/compositor/CompositorSurfaceManagerImpl$SurfaceState;)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorSurfaceManagerImpl;->disownClientSurface(Lorg/chromium/chrome/browser/compositor/CompositorSurfaceManagerImpl$SurfaceState;Z)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorSurfaceManagerImpl;->getStateForHolder(Landroid/view/SurfaceHolder;)Lorg/chromium/chrome/browser/compositor/CompositorSurfaceManagerImpl$SurfaceState;
-HSPLorg/chromium/chrome/browser/compositor/CompositorSurfaceManagerImpl;->requestSurface(I)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorSurfaceManagerImpl;->surfaceChanged(Landroid/view/SurfaceHolder;III)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorSurfaceManagerImpl;->surfaceCreated(Landroid/view/SurfaceHolder;)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorSurfaceManagerImpl;->surfaceDestroyed(Landroid/view/SurfaceHolder;)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorSurfaceManagerImpl;->surfaceRedrawNeededAsync(Landroid/view/SurfaceHolder;Ljava/lang/Runnable;)V
-Lorg/chromium/chrome/browser/compositor/CompositorSurfaceManagerImpl$SurfaceState;
-HSPLorg/chromium/chrome/browser/compositor/CompositorSurfaceManagerImpl$SurfaceState;-><init>(Landroid/content/Context;ILandroid/view/SurfaceHolder$Callback2;)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorSurfaceManagerImpl$SurfaceState;->isAttached()Z
-HSPLorg/chromium/chrome/browser/compositor/CompositorSurfaceManagerImpl$SurfaceState;->surfaceHolder()Landroid/view/SurfaceHolder;
-Lorg/chromium/chrome/browser/compositor/CompositorView;
-HSPLorg/chromium/chrome/browser/compositor/CompositorView;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/compositor/layouts/LayoutRenderHost;)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorView;->didSwapBuffers(Z)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorView;->didSwapFrame(I)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorView;->getSurfacePixelFormat()I
-HSPLorg/chromium/chrome/browser/compositor/CompositorView;->initializeIfOnUiThread()V
-HSPLorg/chromium/chrome/browser/compositor/CompositorView;->onCompositorLayout()V
-HSPLorg/chromium/chrome/browser/compositor/CompositorView;->onDetachedFromWindow()V
-HSPLorg/chromium/chrome/browser/compositor/CompositorView;->onMeasure(II)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorView;->onSelectionHandlesStateChanged(Z)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorView;->onWindowVisibilityChanged(I)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorView;->runDrawFinishedCallback()V
-HSPLorg/chromium/chrome/browser/compositor/CompositorView;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorView;->setVisibility(I)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorView;->surfaceChanged(Landroid/view/Surface;III)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorView;->surfaceCreated()V
-HSPLorg/chromium/chrome/browser/compositor/CompositorView;->surfaceDestroyed(Z)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorView;->surfaceRedrawNeededAsync(Ljava/lang/Runnable;)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorView;->updateNeedsDidSwapBuffersCallback()V
-Lorg/chromium/chrome/browser/compositor/CompositorView$ScreenStateReceiverWorkaround;
-HSPLorg/chromium/chrome/browser/compositor/CompositorView$ScreenStateReceiverWorkaround;-><init>(Lorg/chromium/chrome/browser/compositor/CompositorView;)V
-Lorg/chromium/chrome/browser/compositor/CompositorViewHolder;
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder;->clearChildFocus(Landroid/view/View;)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder;->flushInvalidation()V
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder;->getBottomControlsHeightPixels()I
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder;->getContentView()Lorg/chromium/components/embedder_support/view/ContentView;
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder;->getCurrentTab()Lorg/chromium/chrome/browser/tab/Tab;
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder;->getKeyboardBottomInsetForControlsPixels()I
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder;->getViewportSize()Landroid/graphics/Point;
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder;->getVisibleViewport(Landroid/graphics/RectF;)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder;->getWebContents()Lorg/chromium/content_public/browser/WebContents;
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder;->getWindowViewport(Landroid/graphics/RectF;)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder;->handleSystemUiVisibilityChange()V
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder;->handleWindowInsetChanged()V
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder;->initializeTab(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder;->invalidateAccessibilityProvider()V
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder;->onAttachedToWindow()V
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder;->onDetachedFromWindow()V
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder;->onLayout(ZIIII)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder;->onMeasure(II)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder;->onSizeChanged(IIII)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder;->onViewportChanged()V
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder;->requestRender(Ljava/lang/Runnable;)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder;->setSize(Lorg/chromium/content_public/browser/WebContents;Landroid/view/View;II)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder;->setTab(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder;->updateApplicationViewportInsetSuppliers()V
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder;->updateContentOverlayVisibility(Z)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder;->updateNeedsSwapBuffersCallback()V
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder;->updateViewportSize()V
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder;->updateVirtualKeyboardMode(I)V
-Lorg/chromium/chrome/browser/compositor/CompositorViewHolder$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/compositor/CompositorViewHolder;)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/compositor/CompositorViewHolder$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/compositor/CompositorViewHolder;)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder$$ExternalSyntheticLambda1;->onLayoutChange(Landroid/view/View;IIIIIIII)V
-Lorg/chromium/chrome/browser/compositor/CompositorViewHolder$$ExternalSyntheticLambda2;
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder$$ExternalSyntheticLambda2;-><init>(Lorg/chromium/chrome/browser/compositor/CompositorViewHolder;)V
-Lorg/chromium/chrome/browser/compositor/CompositorViewHolder$$ExternalSyntheticLambda3;
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder$$ExternalSyntheticLambda3;-><init>(Lorg/chromium/chrome/browser/compositor/CompositorViewHolder;I)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder$$ExternalSyntheticLambda3;->run()V
-Lorg/chromium/chrome/browser/compositor/CompositorViewHolder$1;
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder$1;-><init>(Lorg/chromium/chrome/browser/compositor/CompositorViewHolder;)V
-Lorg/chromium/chrome/browser/compositor/CompositorViewHolder$2;
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder$2;-><init>(Lorg/chromium/chrome/browser/compositor/CompositorViewHolder;)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder$2;->onDidFinishNavigationInPrimaryMainFrame(Lorg/chromium/chrome/browser/tab/TabImpl;Lorg/chromium/content_public/browser/NavigationHandle;)V
-Lorg/chromium/chrome/browser/compositor/CompositorViewHolder$3;
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder$3;-><init>(Lorg/chromium/chrome/browser/compositor/CompositorViewHolder;)V
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder$3;->onChange()V
-HSPLorg/chromium/chrome/browser/compositor/CompositorViewHolder$3;->onNewTabCreated(Lorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/compositor/CompositorViewHolder$Initializer;
-Lorg/chromium/chrome/browser/compositor/Invalidator;
-HSPLorg/chromium/chrome/browser/compositor/Invalidator;-><init>()V
-Lorg/chromium/chrome/browser/compositor/Invalidator$Host;
-Lorg/chromium/chrome/browser/compositor/bottombar/OverlayPanel;
-HSPLorg/chromium/chrome/browser/compositor/bottombar/OverlayPanel;-><init>(Landroid/app/Activity;Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;Lorg/chromium/chrome/browser/compositor/bottombar/OverlayPanelManager;FLorg/chromium/base/supplier/Supplier;)V
-HSPLorg/chromium/chrome/browser/compositor/bottombar/OverlayPanel;->destroy()V
-HSPLorg/chromium/chrome/browser/compositor/bottombar/OverlayPanel;->getHandleBackPressChangedSupplier()Lorg/chromium/base/supplier/ObservableSupplier;
-HSPLorg/chromium/chrome/browser/compositor/bottombar/OverlayPanel;->getWebContents()Lorg/chromium/content_public/browser/WebContents;
-HSPLorg/chromium/chrome/browser/compositor/bottombar/OverlayPanel;->isActive()Z
-HSPLorg/chromium/chrome/browser/compositor/bottombar/OverlayPanel;->onSizeChanged(FFFI)V
-HSPLorg/chromium/chrome/browser/compositor/bottombar/OverlayPanel;->shouldHideAndroidBrowserControls()Z
-HSPLorg/chromium/chrome/browser/compositor/bottombar/OverlayPanel;->updateOverlay(J)Z
-Lorg/chromium/chrome/browser/compositor/bottombar/OverlayPanel$1;
-HSPLorg/chromium/chrome/browser/compositor/bottombar/OverlayPanel$1;-><init>(Lorg/chromium/chrome/browser/compositor/bottombar/OverlayPanel;)V
-HSPLorg/chromium/chrome/browser/compositor/bottombar/OverlayPanel$1;->onSceneChange(Lorg/chromium/chrome/browser/compositor/layouts/Layout;)V
-Lorg/chromium/chrome/browser/compositor/bottombar/OverlayPanelAnimation;
-HSPLorg/chromium/chrome/browser/compositor/bottombar/OverlayPanelAnimation;-><init>(Landroid/app/Activity;Lorg/chromium/chrome/browser/compositor/layouts/LayoutUpdateHost;F)V
-HSPLorg/chromium/chrome/browser/compositor/bottombar/OverlayPanelAnimation;->getPanelHeightFromState(Ljava/lang/Integer;)F
-HSPLorg/chromium/chrome/browser/compositor/bottombar/OverlayPanelAnimation;->getTabHeight()F
-HSPLorg/chromium/chrome/browser/compositor/bottombar/OverlayPanelAnimation;->isFullWidthSizePanel()Z
-HSPLorg/chromium/chrome/browser/compositor/bottombar/OverlayPanelAnimation;->isPanelOpened()Z
-HSPLorg/chromium/chrome/browser/compositor/bottombar/OverlayPanelAnimation;->isSceneOverlayTreeShowing()Z
-HSPLorg/chromium/chrome/browser/compositor/bottombar/OverlayPanelAnimation;->isShowing()Z
-Lorg/chromium/chrome/browser/compositor/bottombar/OverlayPanelManager;
-HSPLorg/chromium/chrome/browser/compositor/bottombar/OverlayPanelManager;-><init>()V
-Lorg/chromium/chrome/browser/compositor/bottombar/OverlayPanelManager$1;
-HSPLorg/chromium/chrome/browser/compositor/bottombar/OverlayPanelManager$1;-><init>()V
-Lorg/chromium/chrome/browser/compositor/bottombar/OverlayPanelManager$OverlayPanelManagerObserver;
-Lorg/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanel;
-HSPLorg/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanel;-><init>(Landroid/app/Activity;Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;Lorg/chromium/chrome/browser/compositor/bottombar/OverlayPanelManager;Lorg/chromium/ui/base/WindowAndroid;Lorg/chromium/chrome/browser/compositor/CompositorViewHolder;FLorg/chromium/chrome/browser/toolbar/ToolbarManager;ILorg/chromium/base/supplier/Supplier;)V
-HSPLorg/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanel;->closePanel(IZ)V
-HSPLorg/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanel;->getBarHeight()F
-HSPLorg/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanel;->onActivityStateChange(Landroid/app/Activity;I)V
-HSPLorg/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanel;->setManagementDelegate(Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager;)V
-Lorg/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanelMetrics;
-HSPLorg/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanelMetrics;-><init>()V
-Lorg/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabCoordinator;
-HSPLorg/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabCoordinator;-><init>(Landroid/content/Context;Lorg/chromium/ui/base/ActivityWindowAndroid;Landroid/view/View;Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetController;Z)V
-Lorg/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabCoordinator$FaviconLoader;
-HSPLorg/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabCoordinator$FaviconLoader;-><init>(Landroid/content/Context;)V
-Lorg/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabMediator;
-HSPLorg/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabMediator;-><init>(Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetController;Lorg/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabCoordinator$FaviconLoader;I)V
-Lorg/chromium/chrome/browser/compositor/layouts/Layout;
-HSPLorg/chromium/chrome/browser/compositor/layouts/Layout;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/compositor/layouts/LayoutUpdateHost;Lorg/chromium/chrome/browser/compositor/CompositorViewHolder;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/Layout;->attachViews(Landroid/view/ViewGroup;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/Layout;->canHostBeFocusable()Z
-HSPLorg/chromium/chrome/browser/compositor/layouts/Layout;->createLayoutTab(IZ)Lorg/chromium/chrome/browser/compositor/layouts/components/LayoutTab;
-HSPLorg/chromium/chrome/browser/compositor/layouts/Layout;->doneHiding()V
-HSPLorg/chromium/chrome/browser/compositor/layouts/Layout;->doneShowing()V
-HSPLorg/chromium/chrome/browser/compositor/layouts/Layout;->forceHideBrowserControlsAndroidView()Z
-HSPLorg/chromium/chrome/browser/compositor/layouts/Layout;->notifySizeChanged()V
-HSPLorg/chromium/chrome/browser/compositor/layouts/Layout;->onTabCreated(IIZZFF)V
-PLorg/chromium/chrome/browser/compositor/layouts/Layout;->onTabRestored(J)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/Layout;->onUpdateAnimation()Z
-HSPLorg/chromium/chrome/browser/compositor/layouts/Layout;->setTabContentManager(Lorg/chromium/chrome/browser/compositor/layouts/content/TabContentManager;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/Layout;->setTabModelSelector(Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/chrome/browser/compositor/layouts/content/TabContentManager;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/Layout;->show(JZ)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/Layout;->startHiding(IZ)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/Layout;->updateSnap(FFF)F
-HSPLorg/chromium/chrome/browser/compositor/layouts/Layout;->updateSnap(Lorg/chromium/ui/modelutil/PropertyModel;)Z
-Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome;
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome;-><init>(Lorg/chromium/chrome/browser/compositor/CompositorViewHolder;Landroid/view/ViewGroup;Lorg/chromium/base/supplier/OneshotSupplierImpl;Lorg/chromium/base/supplier/OneshotSupplierImpl;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda12;Lorg/chromium/base/jank_tracker/JankTrackerImpl;Landroid/view/ViewGroup;Lorg/chromium/components/browser_ui/widget/scrim/ScrimCoordinator;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome;->createOverviewLayout(Lorg/chromium/chrome/features/start_surface/StartSurface;Lorg/chromium/chrome/browser/tasks/tab_management/TabSwitcher;Lorg/chromium/base/jank_tracker/JankTracker;Lorg/chromium/components/browser_ui/widget/scrim/ScrimCoordinator;Landroid/view/ViewGroup;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome;->destroy()V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome;->doneHiding()V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome;->getLayoutForType(I)Lorg/chromium/chrome/browser/compositor/layouts/Layout;
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome;->getToolbarSwipeHandler()Lorg/chromium/components/browser_ui/widget/gesture/SwipeGestureListener$SwipeHandler;
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome;->init(Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/chrome/browser/app/ChromeActivity;Lorg/chromium/chrome/browser/toolbar/ControlContainer;Lorg/chromium/ui/resources/dynamics/DynamicResourceLoader;Lorg/chromium/chrome/browser/theme/TopUiThemeColorProvider;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome;->onAccessibilityModeChanged(Z)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome;->setTabModelSelector(Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome;->shouldDelayHideAnimation(Lorg/chromium/chrome/browser/compositor/layouts/Layout;)Z
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome;->shouldShowToolbarAnimationOnHide(Lorg/chromium/chrome/browser/compositor/layouts/Layout;I)Z
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome;->shouldShowToolbarAnimationOnShow(Z)Z
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome;->startShowing(Lorg/chromium/chrome/browser/compositor/layouts/Layout;Z)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome;->tabCreated(IIIZZFF)V
-Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome$1;
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome$1;-><init>(Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome;Lorg/chromium/base/supplier/ObservableSupplierImpl;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome$1;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome$1$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome$1$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome$1;)V
-Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome$ToolbarSwipeHandler;
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome$ToolbarSwipeHandler;-><init>(Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome;)V
-Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChromePhone;
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChromePhone;-><init>(Lorg/chromium/chrome/browser/compositor/CompositorViewHolder;Landroid/view/ViewGroup;Lorg/chromium/base/supplier/OneshotSupplierImpl;Lorg/chromium/base/supplier/OneshotSupplierImpl;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda12;Lorg/chromium/base/jank_tracker/JankTrackerImpl;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChromePhone;->createTabModelObserver()Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl$LayoutManagerTabModelObserver;
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChromePhone;->getLayoutForType(I)Lorg/chromium/chrome/browser/compositor/layouts/Layout;
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChromePhone;->init(Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/chrome/browser/app/ChromeActivity;Lorg/chromium/chrome/browser/toolbar/ControlContainer;Lorg/chromium/ui/resources/dynamics/DynamicResourceLoader;Lorg/chromium/chrome/browser/theme/TopUiThemeColorProvider;)V
-Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChromePhone$1;
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChromePhone$1;-><init>(Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChromePhone;)V
-Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerHost;
-Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;-><init>(Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerHost;Landroid/view/ViewGroup;Lorg/chromium/base/supplier/ObservableSupplier;Lorg/chromium/base/supplier/Supplier;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;->addObserver(Lorg/chromium/chrome/browser/layouts/LayoutStateProvider$LayoutStateObserver;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;->addSceneOverlay(Lorg/chromium/chrome/browser/layouts/SceneOverlay;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;->destroy()V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;->doneHiding()V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;->doneShowing()V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;->getActiveLayoutType()I
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;->getLayoutForType(I)Lorg/chromium/chrome/browser/compositor/layouts/Layout;
-PLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;->getNextLayoutType()I
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;->getViewportPixel(Landroid/graphics/RectF;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;->init(Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/chrome/browser/app/ChromeActivity;Lorg/chromium/chrome/browser/toolbar/ControlContainer;Lorg/chromium/ui/resources/dynamics/DynamicResourceLoader;Lorg/chromium/chrome/browser/theme/TopUiThemeColorProvider;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;->initLayoutTabFromHost(I)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;->isLayoutVisible(I)Z
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;->onViewportChanged()V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;->removeObserver(Lorg/chromium/chrome/browser/layouts/LayoutStateProvider$LayoutStateObserver;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;->requestUpdate(Ljava/lang/Runnable;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;->setNextLayout(Lorg/chromium/chrome/browser/compositor/layouts/Layout;Z)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;->setTabModelSelector(Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;->showLayout(IZ)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;->startHiding(IZ)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;->startShowing(Lorg/chromium/chrome/browser/compositor/layouts/Layout;Z)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;->tabCreated(IIIZZFF)V
-Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;I)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;)V
-Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl$1;
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl$1;-><init>(Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl$1;->onBackgroundColorChanged(Lorg/chromium/chrome/browser/tab/TabImpl;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl$1;->onHidden(Lorg/chromium/chrome/browser/tab/Tab;I)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl$1;->onShown(Lorg/chromium/chrome/browser/tab/Tab;I)V
-Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl$2;
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl$2;-><init>(Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;)V
-Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl$LayoutManagerTabModelObserver;
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl$LayoutManagerTabModelObserver;-><init>(Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl$LayoutManagerTabModelObserver;->didAddTab(Lorg/chromium/chrome/browser/tab/Tab;IIZ)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl$LayoutManagerTabModelObserver;->didSelectTab(IILorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl$LayoutManagerTabModelObserver;->willAddTab(Lorg/chromium/chrome/browser/tab/Tab;I)V
-Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl$ShowingEventSequencer;
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl$ShowingEventSequencer;-><init>(Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl$ShowingEventSequencer;->close()V
-Lorg/chromium/chrome/browser/compositor/layouts/LayoutRenderHost;
-Lorg/chromium/chrome/browser/compositor/layouts/LayoutUpdateHost;
-Lorg/chromium/chrome/browser/compositor/layouts/SceneChangeObserver;
-Lorg/chromium/chrome/browser/compositor/layouts/StaticLayout;
-HSPLorg/chromium/chrome/browser/compositor/layouts/StaticLayout;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;Lorg/chromium/chrome/browser/compositor/CompositorViewHolder;Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerHost;Lorg/chromium/chrome/browser/layouts/CompositorModelChangeProcessor$FrameRequestSupplier;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/chrome/browser/compositor/layouts/content/TabContentManager;Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;Lorg/chromium/base/supplier/Supplier;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/StaticLayout;->destroy()V
-HSPLorg/chromium/chrome/browser/compositor/layouts/StaticLayout;->doneHiding()V
-HSPLorg/chromium/chrome/browser/compositor/layouts/StaticLayout;->doneShowing()V
-HSPLorg/chromium/chrome/browser/compositor/layouts/StaticLayout;->getLayoutType()I
-HSPLorg/chromium/chrome/browser/compositor/layouts/StaticLayout;->getSceneLayer()Lorg/chromium/chrome/browser/layouts/scene_layer/SceneLayer;
-HSPLorg/chromium/chrome/browser/compositor/layouts/StaticLayout;->getViewportMode()I
-HSPLorg/chromium/chrome/browser/compositor/layouts/StaticLayout;->setStaticTab(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/StaticLayout;->show(JZ)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/StaticLayout;->updateLayout$1()V
-HSPLorg/chromium/chrome/browser/compositor/layouts/StaticLayout;->updateSceneLayer(Landroid/graphics/RectF;Lorg/chromium/chrome/browser/compositor/layouts/content/TabContentManager;Lorg/chromium/ui/resources/ResourceManager;Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/StaticLayout;->updateStaticTab(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/StaticLayout;->updateVisibleIdsLiveLayerOnly()V
-Lorg/chromium/chrome/browser/compositor/layouts/StaticLayout$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/compositor/layouts/StaticLayout$$ExternalSyntheticLambda0;-><init>()V
-HSPLorg/chromium/chrome/browser/compositor/layouts/StaticLayout$$ExternalSyntheticLambda0;->bind(Lorg/chromium/ui/modelutil/PropertyObservable;Ljava/lang/Object;Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/compositor/layouts/StaticLayout$1;
-HSPLorg/chromium/chrome/browser/compositor/layouts/StaticLayout$1;-><init>(Lorg/chromium/chrome/browser/compositor/layouts/StaticLayout;)V
-Lorg/chromium/chrome/browser/compositor/layouts/StaticLayout$2;
-HSPLorg/chromium/chrome/browser/compositor/layouts/StaticLayout$2;-><init>(Lorg/chromium/chrome/browser/compositor/layouts/StaticLayout;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/StaticLayout$2;->didSelectTab(IILorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/compositor/layouts/StaticLayout$3;
-HSPLorg/chromium/chrome/browser/compositor/layouts/StaticLayout$3;-><init>(Lorg/chromium/chrome/browser/compositor/layouts/StaticLayout;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/StaticLayout$3;->onBackgroundColorChanged(Lorg/chromium/chrome/browser/tab/TabImpl;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/StaticLayout$3;->onPageLoadFinished(Lorg/chromium/chrome/browser/tab/Tab;Lorg/chromium/url/GURL;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/StaticLayout$3;->onShown(Lorg/chromium/chrome/browser/tab/Tab;I)V
-Lorg/chromium/chrome/browser/compositor/layouts/StaticLayout$UnstallRunnable;
-HSPLorg/chromium/chrome/browser/compositor/layouts/StaticLayout$UnstallRunnable;-><init>(Lorg/chromium/chrome/browser/compositor/layouts/StaticLayout;)V
-Lorg/chromium/chrome/browser/compositor/layouts/ToolbarSwipeLayout;
-HSPLorg/chromium/chrome/browser/compositor/layouts/ToolbarSwipeLayout;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;Lorg/chromium/chrome/browser/compositor/CompositorViewHolder;Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;Lorg/chromium/chrome/browser/theme/TopUiThemeColorProvider;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/ToolbarSwipeLayout;->setTabContentManager(Lorg/chromium/chrome/browser/compositor/layouts/content/TabContentManager;)V
-Lorg/chromium/chrome/browser/compositor/layouts/ToolbarSwipeLayout$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/compositor/layouts/ToolbarSwipeLayout$$ExternalSyntheticLambda0;-><init>(I)V
-Lorg/chromium/chrome/browser/compositor/layouts/ToolbarSwipeLayout$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/compositor/layouts/ToolbarSwipeLayout$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/compositor/layouts/ToolbarSwipeLayout;I)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/ToolbarSwipeLayout$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;
-Lorg/chromium/chrome/browser/compositor/layouts/components/LayoutTab;
-HSPLorg/chromium/chrome/browser/compositor/layouts/components/LayoutTab;-><init>(IIIZ)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/components/LayoutTab;->getId()I
-HSPLorg/chromium/chrome/browser/compositor/layouts/components/LayoutTab;->init(II)V
-Lorg/chromium/chrome/browser/compositor/layouts/content/ContentOffsetProvider;
-Lorg/chromium/chrome/browser/compositor/layouts/content/InvalidationAwareThumbnailProvider;
-Lorg/chromium/chrome/browser/compositor/layouts/content/TabContentManager;
-HSPLorg/chromium/chrome/browser/compositor/layouts/content/TabContentManager;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/compositor/layouts/content/ContentOffsetProvider;ZLorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda4;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/content/TabContentManager;->cacheTabThumbnail(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/content/TabContentManager;->captureThumbnail(Lorg/chromium/chrome/browser/tab/Tab;ZLorg/chromium/chrome/browser/compositor/layouts/content/TabContentManager$$ExternalSyntheticLambda1;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/content/TabContentManager;->getIntegerResourceWithOverride(ILandroid/content/Context;Ljava/lang/String;)I
-HSPLorg/chromium/chrome/browser/compositor/layouts/content/TabContentManager;->getNativePtr()J
-HSPLorg/chromium/chrome/browser/compositor/layouts/content/TabContentManager;->getTabCaptureAspectRatio()D
-HSPLorg/chromium/chrome/browser/compositor/layouts/content/TabContentManager;->updateVisibleIds(ILjava/util/List;)V
-Lorg/chromium/chrome/browser/compositor/layouts/content/TabContentManagerHandler;
-HSPLorg/chromium/chrome/browser/compositor/layouts/content/TabContentManagerHandler;-><init>(Lorg/chromium/chrome/browser/compositor/layouts/content/TabContentManager;Lorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/content/TabContentManagerHandler;->onInteractabilityChanged(Lorg/chromium/chrome/browser/tab/Tab;Z)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/content/TabContentManagerHandler;->onTabRegistered(Lorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/compositor/layouts/content/TabContentManagerHandler$1;
-HSPLorg/chromium/chrome/browser/compositor/layouts/content/TabContentManagerHandler$1;-><init>(Lorg/chromium/chrome/browser/compositor/layouts/content/TabContentManagerHandler;)V
-Lorg/chromium/chrome/browser/compositor/layouts/eventfilter/BlackHoleEventFilter;
-HSPLorg/chromium/chrome/browser/compositor/layouts/eventfilter/BlackHoleEventFilter;-><init>(Landroid/content/Context;)V
-Lorg/chromium/chrome/browser/compositor/layouts/eventfilter/GestureEventFilter;
-HSPLorg/chromium/chrome/browser/compositor/layouts/eventfilter/GestureEventFilter;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/compositor/layouts/eventfilter/GestureHandler;)V
-Lorg/chromium/chrome/browser/compositor/layouts/eventfilter/GestureEventFilter$1;
-HSPLorg/chromium/chrome/browser/compositor/layouts/eventfilter/GestureEventFilter$1;-><init>(Lorg/chromium/chrome/browser/compositor/layouts/eventfilter/GestureEventFilter;)V
-Lorg/chromium/chrome/browser/compositor/layouts/eventfilter/GestureEventFilter$LongPressRunnable;
-HSPLorg/chromium/chrome/browser/compositor/layouts/eventfilter/GestureEventFilter$LongPressRunnable;-><init>(Lorg/chromium/chrome/browser/compositor/layouts/eventfilter/GestureEventFilter;)V
-Lorg/chromium/chrome/browser/compositor/layouts/eventfilter/GestureHandler;
-Lorg/chromium/chrome/browser/compositor/layouts/eventfilter/OverlayPanelEventFilter;
-HSPLorg/chromium/chrome/browser/compositor/layouts/eventfilter/OverlayPanelEventFilter;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/compositor/bottombar/OverlayPanel;)V
-HSPLorg/chromium/chrome/browser/compositor/layouts/eventfilter/OverlayPanelEventFilter;->reset()V
-Lorg/chromium/chrome/browser/compositor/layouts/eventfilter/OverlayPanelEventFilter$InternalGestureDetector;
-HSPLorg/chromium/chrome/browser/compositor/layouts/eventfilter/OverlayPanelEventFilter$InternalGestureDetector;-><init>(Lorg/chromium/chrome/browser/compositor/layouts/eventfilter/OverlayPanelEventFilter;)V
-Lorg/chromium/chrome/browser/compositor/layouts/eventfilter/OverlayPanelEventFilter$SwipeGestureListenerImpl;
-HSPLorg/chromium/chrome/browser/compositor/layouts/eventfilter/OverlayPanelEventFilter$SwipeGestureListenerImpl;-><init>(Lorg/chromium/chrome/browser/compositor/layouts/eventfilter/OverlayPanelEventFilter;Landroid/content/Context;)V
-Lorg/chromium/chrome/browser/compositor/layouts/phone/SimpleAnimationLayout;
-HSPLorg/chromium/chrome/browser/compositor/layouts/phone/SimpleAnimationLayout;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;Lorg/chromium/chrome/browser/compositor/CompositorViewHolder;)V
-Lorg/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager;
-Lorg/chromium/chrome/browser/compositor/resources/StaticResourcePreloads;
-Lorg/chromium/chrome/browser/compositor/resources/SystemResourcePreloads;
-Lorg/chromium/chrome/browser/compositor/scene_layer/ContextualSearchSceneLayer;
-HSPLorg/chromium/chrome/browser/compositor/scene_layer/ContextualSearchSceneLayer;-><init>(F)V
-HSPLorg/chromium/chrome/browser/compositor/scene_layer/ContextualSearchSceneLayer;->initializeNative()V
-Lorg/chromium/chrome/browser/compositor/scene_layer/StaticTabSceneLayer;
-HSPLorg/chromium/chrome/browser/compositor/scene_layer/StaticTabSceneLayer;-><init>()V
-HSPLorg/chromium/chrome/browser/compositor/scene_layer/StaticTabSceneLayer;->destroy()V
-HSPLorg/chromium/chrome/browser/compositor/scene_layer/StaticTabSceneLayer;->initializeNative()V
-Lorg/chromium/chrome/browser/compositor/scene_layer/TabListSceneLayer;
-HSPLorg/chromium/chrome/browser/compositor/scene_layer/TabListSceneLayer;-><init>()V
-HSPLorg/chromium/chrome/browser/compositor/scene_layer/TabListSceneLayer;->initializeNative()V
-Lorg/chromium/chrome/browser/compositor/scene_layer/ToolbarSwipeSceneLayer;
-HSPLorg/chromium/chrome/browser/compositor/scene_layer/ToolbarSwipeSceneLayer;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/compositor/layouts/content/TabContentManager;)V
-HSPLorg/chromium/chrome/browser/compositor/scene_layer/ToolbarSwipeSceneLayer;->initializeNative()V
-Lorg/chromium/chrome/browser/content_capture/ContentCaptureHistoryDeletionObserver;
-HSPLorg/chromium/chrome/browser/content_capture/ContentCaptureHistoryDeletionObserver;-><init>(Lorg/chromium/chrome/browser/init/ProcessInitializationHandler$$ExternalSyntheticLambda2;)V
-Lorg/chromium/chrome/browser/contextmenu/ChromeContextMenuItem$$ExternalSyntheticOutline0;
-HSPLorg/chromium/chrome/browser/contextmenu/ChromeContextMenuItem$$ExternalSyntheticOutline0;->m(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/chromium/chrome/browser/preferences/KeyPrefix;Z)Z
-Lorg/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulatorFactory;
-HSPLorg/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulatorFactory;-><init>(Lorg/chromium/chrome/browser/tab/TabContextMenuItemDelegate;Lorg/chromium/base/supplier/Supplier;ILorg/chromium/components/externalauth/ExternalAuthUtils;)V
-HSPLorg/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulatorFactory;->onDestroy()V
-Lorg/chromium/chrome/browser/contextmenu/ContextMenuHelper;
-HSPLorg/chromium/chrome/browser/contextmenu/ContextMenuHelper;-><init>(JLorg/chromium/content_public/browser/WebContents;)V
-HSPLorg/chromium/chrome/browser/contextmenu/ContextMenuHelper;->create(JLorg/chromium/content_public/browser/WebContents;)Lorg/chromium/chrome/browser/contextmenu/ContextMenuHelper;
-HSPLorg/chromium/chrome/browser/contextmenu/ContextMenuHelper;->destroy()V
-HSPLorg/chromium/chrome/browser/contextmenu/ContextMenuHelper;->dismissContextMenu()V
-HSPLorg/chromium/chrome/browser/contextmenu/ContextMenuHelper;->setPopulatorFactory(Lorg/chromium/chrome/browser/contextmenu/ContextMenuPopulatorFactory;)V
-Lorg/chromium/chrome/browser/contextmenu/ContextMenuItemDelegate;
-Lorg/chromium/chrome/browser/contextmenu/ContextMenuPopulatorFactory;
-Lorg/chromium/chrome/browser/contextmenu/ContextMenuUtils;
-HSPLorg/chromium/chrome/browser/contextmenu/ContextMenuUtils;->usePopupContextMenuForContext(Landroid/content/Context;)Z
-Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchFieldTrial;
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchFieldTrial;->isEnabled()Z
-Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchInternalStateController;
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchInternalStateController;-><init>(Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchPolicy;Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager$5;)V
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchInternalStateController;->enter(I)V
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchInternalStateController;->notifyFinishedWorkOn(I)V
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchInternalStateController;->reset(Ljava/lang/Integer;)V
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchInternalStateController;->transitionTo(ILjava/lang/Integer;)V
-Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchInternalStateHandler;
-Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchManagementDelegate;
-Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager;
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager;-><init>(Landroid/app/Activity;Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager$ContextualSearchTabPromotionDelegate;Lorg/chromium/components/browser_ui/widget/scrim/ScrimCoordinator;Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler;Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;Lorg/chromium/ui/base/ActivityWindowAndroid;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda6;)V
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager;->clearNativeManager()V
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager;->getSearchPanelWebContents()Lorg/chromium/content_public/browser/WebContents;
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager;->hideContextualSearch(I)V
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager;->isSearchPanelShowing()Z
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager;->onAccessibilityModeChanged(Z)V
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager;->setNativeManager(J)V
-Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager$1;
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager$1;-><init>(Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager;Landroid/view/View;)V
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager$1;->onGlobalFocusChanged(Landroid/view/View;Landroid/view/View;)V
-Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager$2;
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager$2;-><init>(Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager;)V
-Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager$3;
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager$3;-><init>(Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;)V
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager$3;->didAddTab(Lorg/chromium/chrome/browser/tab/Tab;IIZ)V
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager$3;->didSelectTab(IILorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager$4;
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager$4;-><init>(Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;)V
-Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager$5;
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager$5;-><init>(Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager;)V
-Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager$ContextualSearchTabPromotionDelegate;
-Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchNetworkCommunicator;
-Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchPolicy;
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchPolicy;-><init>(Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchSelectionController;Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchNetworkCommunicator;)V
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchPolicy;->getPrefService()Lorg/chromium/components/prefs/PrefService;
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchPolicy;->isContextualSearchEnabled()Z
-Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchSelectionController;
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchSelectionController;-><init>(Landroid/app/Activity;Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchSelectionHandler;Lorg/chromium/chrome/browser/ActivityTabProvider;)V
-Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchSelectionHandler;
-Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchTabHelper;
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchTabHelper;-><init>(Lorg/chromium/chrome/browser/tab/TabImpl;)V
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchTabHelper;->getContextualSearchManager(Lorg/chromium/chrome/browser/tab/Tab;)Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchManager;
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchTabHelper;->getContextualSearchManagerSupplier(Lorg/chromium/chrome/browser/tab/Tab;)Lorg/chromium/base/supplier/ObservableSupplierImpl;
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchTabHelper;->onContentChanged(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchTabHelper;->onDestroyed(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchTabHelper;->onPageLoadStarted(Lorg/chromium/chrome/browser/tab/Tab;Lorg/chromium/url/GURL;)V
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchTabHelper;->onTemplateURLServiceChanged()V
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchTabHelper;->removeContextualSearchHooks(Lorg/chromium/content_public/browser/WebContents;)V
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchTabHelper;->updateContextualSearchHooks(Lorg/chromium/content_public/browser/WebContents;)V
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchTabHelper;->updateHooksForTab(Lorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchTabHelper$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchTabHelper$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchTabHelper;)V
-Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchTranslationImpl;
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchTranslationImpl;-><init>()V
-Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchTranslationImpl$TranslateBridgeWrapper;
-HSPLorg/chromium/chrome/browser/contextualsearch/ContextualSearchTranslationImpl$TranslateBridgeWrapper;-><init>()V
-Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchUma;
-Lorg/chromium/chrome/browser/contextualsearch/RelatedSearchesStamp;
-HSPLorg/chromium/chrome/browser/contextualsearch/RelatedSearchesStamp;-><init>(Lorg/chromium/chrome/browser/contextualsearch/ContextualSearchPolicy;)V
-Lorg/chromium/chrome/browser/contextualsearch/SelectionClientManager;
-HSPLorg/chromium/chrome/browser/contextualsearch/SelectionClientManager;-><init>(Lorg/chromium/content_public/browser/WebContents;)V
-Lorg/chromium/chrome/browser/cookies/CookiesFetcher;
-HSPLorg/chromium/chrome/browser/cookies/CookiesFetcher;->fetchFileName()Ljava/lang/String;
-Lorg/chromium/chrome/browser/cookies/CookiesFetcher$2;
-HSPLorg/chromium/chrome/browser/cookies/CookiesFetcher$2;-><init>()V
-HSPLorg/chromium/chrome/browser/cookies/CookiesFetcher$2;->doInBackground()Ljava/lang/Object;
-Lorg/chromium/chrome/browser/crash/ApplicationStatusTracker;
-HSPLorg/chromium/chrome/browser/crash/ApplicationStatusTracker;-><init>()V
-HSPLorg/chromium/chrome/browser/crash/ApplicationStatusTracker;->onApplicationStateChange(I)V
-Lorg/chromium/chrome/browser/crash/CrashUploadCountStore;
-HSPLorg/chromium/chrome/browser/crash/CrashUploadCountStore;-><init>()V
-HSPLorg/chromium/chrome/browser/crash/CrashUploadCountStore;->failureUploadKey(Ljava/lang/String;)Ljava/lang/String;
-HSPLorg/chromium/chrome/browser/crash/CrashUploadCountStore;->successUploadKey(Ljava/lang/String;)Ljava/lang/String;
-Lorg/chromium/chrome/browser/crash/MinidumpUploadServiceImpl;
-Lorg/chromium/chrome/browser/crash/MinidumpUploadServiceImpl$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/crash/MinidumpUploadServiceImpl$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/crash/MinidumpUploadServiceImpl$$ExternalSyntheticLambda1;)V
-HSPLorg/chromium/chrome/browser/crash/MinidumpUploadServiceImpl$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/crash/MinidumpUploadServiceImpl$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/crash/MinidumpUploadServiceImpl$$ExternalSyntheticLambda1;-><init>()V
-HSPLorg/chromium/chrome/browser/crash/MinidumpUploadServiceImpl$$ExternalSyntheticLambda1;->onApplicationStateChange(I)V
-Lorg/chromium/chrome/browser/crypto/CipherFactory;
-HSPLorg/chromium/chrome/browser/crypto/CipherFactory;-><init>()V
-HSPLorg/chromium/chrome/browser/crypto/CipherFactory;->restoreFromBundle(Landroid/os/Bundle;)Z
-Lorg/chromium/chrome/browser/crypto/CipherFactory$LazyHolder;
-Lorg/chromium/chrome/browser/customtabs/BaseCustomTabActivity;
-Lorg/chromium/chrome/browser/customtabs/CustomTabActivity;
-Lorg/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider;
-Lorg/chromium/chrome/browser/customtabs/CustomTabTrustedCdnPublisherUrlVisibility;
-Lorg/chromium/chrome/browser/customtabs/features/CustomTabNavigationBarController$$ExternalSyntheticApiModelOutline0;
-HSPLorg/chromium/chrome/browser/customtabs/features/CustomTabNavigationBarController$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/Window;I)V
-Lorg/chromium/chrome/browser/customtabs/features/branding/BrandingController;
-Lorg/chromium/chrome/browser/customtabs/features/toolbar/CustomTabToolbar;
-Lorg/chromium/chrome/browser/datareduction/DataSaverOSSetting;
-HSPLorg/chromium/chrome/browser/datareduction/DataSaverOSSetting;->isDataSaverEnabled()Z
-Lorg/chromium/chrome/browser/dependency_injection/ChromeActivityCommonsModule;
-HSPLorg/chromium/chrome/browser/dependency_injection/ChromeActivityCommonsModule;-><init>(Landroidx/appcompat/app/AppCompatActivity;Lorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda5;Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorSupplier;Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;Lorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler;Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;Lorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda6;Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/ui/base/ActivityWindowAndroid;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/chrome/browser/tabmodel/TabCreatorManager;Lorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda6;Lorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda6;Lorg/chromium/chrome/browser/ui/system/StatusBarColorController;Lorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda6;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda6;Lorg/chromium/chrome/browser/compositor/CompositorViewHolder$Initializer;Lorg/chromium/chrome/browser/init/ChromeActivityNativeDelegate;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;Lorg/chromium/chrome/browser/app/ChromeActivity$$ExternalSyntheticLambda6;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/chrome/browser/share/ShareDelegateSupplier;Lorg/chromium/chrome/browser/tabmodel/TabModelInitializer;I)V
-Lorg/chromium/chrome/browser/dependency_injection/ChromeActivityComponent;
-Lorg/chromium/chrome/browser/dependency_injection/ChromeAppModule;
-HSPLorg/chromium/chrome/browser/dependency_injection/ChromeAppModule;-><init>()V
-Lorg/chromium/chrome/browser/dependency_injection/ChromeAppModule$1;
-HSPLorg/chromium/chrome/browser/dependency_injection/ChromeAppModule$1;-><init>(Lorg/chromium/chrome/browser/dependency_injection/ChromeAppModule;)V
-Lorg/chromium/chrome/browser/dependency_injection/ChromeAppModule_ProvideContextFactory;
-HSPLorg/chromium/chrome/browser/dependency_injection/ChromeAppModule_ProvideContextFactory;->provideContext(Lorg/chromium/chrome/browser/dependency_injection/ChromeAppModule;)Landroid/content/Context;
-Lorg/chromium/chrome/browser/dependency_injection/DaggerChromeAppComponent$Builder;
-HSPLorg/chromium/chrome/browser/dependency_injection/DaggerChromeAppComponent$Builder;-><init>(Lorg/chromium/chrome/browser/dependency_injection/DaggerChromeAppComponent$ChromeAppComponentImpl;)V
-Lorg/chromium/chrome/browser/dependency_injection/DaggerChromeAppComponent$ChromeAppComponentImpl;
-HSPLorg/chromium/chrome/browser/dependency_injection/DaggerChromeAppComponent$ChromeAppComponentImpl;-><init>(Lorg/chromium/chrome/browser/dependency_injection/ChromeAppModule;Lorg/chromium/chrome/browser/AppHooksModule;)V
-Lorg/chromium/chrome/browser/dependency_injection/DaggerChromeAppComponent$ChromeAppComponentImpl$SwitchingProvider;
-HSPLorg/chromium/chrome/browser/dependency_injection/DaggerChromeAppComponent$ChromeAppComponentImpl$SwitchingProvider;-><init>(Lorg/chromium/chrome/browser/dependency_injection/DaggerChromeAppComponent$ChromeAppComponentImpl;I)V
-HSPLorg/chromium/chrome/browser/dependency_injection/DaggerChromeAppComponent$ChromeAppComponentImpl$SwitchingProvider;->get()Ljava/lang/Object;
-Lorg/chromium/chrome/browser/desktop_site/DesktopSiteSettingsIPHController;
-HSPLorg/chromium/chrome/browser/desktop_site/DesktopSiteSettingsIPHController;->create(Landroidx/appcompat/app/AppCompatActivity;Lorg/chromium/ui/base/ActivityWindowAndroid;Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/chrome/browser/profiles/Profile;Landroid/widget/ImageButton;Lorg/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl;D)Lorg/chromium/chrome/browser/desktop_site/DesktopSiteSettingsIPHController;
-Lorg/chromium/chrome/browser/device/DeviceClassManager;
-HSPLorg/chromium/chrome/browser/device/DeviceClassManager;-><init>()V
-HSPLorg/chromium/chrome/browser/device/DeviceClassManager;->enableAccessibilityLayout(Landroid/content/Context;)Z
-HSPLorg/chromium/chrome/browser/device/DeviceClassManager;->enableAnimations()Z
-HSPLorg/chromium/chrome/browser/device/DeviceClassManager;->getInstance()Lorg/chromium/chrome/browser/device/DeviceClassManager;
-Lorg/chromium/chrome/browser/directactions/DirectActionInitializer;
-HSPLorg/chromium/chrome/browser/directactions/DirectActionInitializer;-><init>(ILorg/chromium/components/browser_ui/widget/MenuOrKeyboardActionController;Lorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda2;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/chrome/browser/findinpage/FindToolbarManager;)V
-HSPLorg/chromium/chrome/browser/directactions/DirectActionInitializer;->onDestroy()V
-HSPLorg/chromium/chrome/browser/directactions/DirectActionInitializer;->onFinishNativeInitialization()V
-Lorg/chromium/chrome/browser/dom_distiller/DomDistillerTabUtils;
-HSPLorg/chromium/chrome/browser/dom_distiller/DomDistillerTabUtils;->getDistillerHeuristics()I
-Lorg/chromium/chrome/browser/dom_distiller/ReaderModeManager;
-HSPLorg/chromium/chrome/browser/dom_distiller/ReaderModeManager;-><init>(Lorg/chromium/chrome/browser/tab/TabImpl;Lorg/chromium/chrome/browser/dom_distiller/ReaderModeManager$$ExternalSyntheticLambda0;)V
-HSPLorg/chromium/chrome/browser/dom_distiller/ReaderModeManager;->destroy()V
-HSPLorg/chromium/chrome/browser/dom_distiller/ReaderModeManager;->isEnabled()Z
-HSPLorg/chromium/chrome/browser/dom_distiller/ReaderModeManager;->onContentChanged(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/dom_distiller/ReaderModeManager;->onDestroyed(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/dom_distiller/ReaderModeManager;->onHidden(Lorg/chromium/chrome/browser/tab/Tab;I)V
-HSPLorg/chromium/chrome/browser/dom_distiller/ReaderModeManager;->onLoadUrl(ILorg/chromium/chrome/browser/tab/Tab;Lorg/chromium/content_public/browser/LoadUrlParams;)V
-HSPLorg/chromium/chrome/browser/dom_distiller/ReaderModeManager;->onShown(Lorg/chromium/chrome/browser/tab/Tab;I)V
-HSPLorg/chromium/chrome/browser/dom_distiller/ReaderModeManager;->tryShowingPrompt()V
-Lorg/chromium/chrome/browser/dom_distiller/ReaderModeManager$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/dom_distiller/ReaderModeManager$$ExternalSyntheticLambda0;-><init>(ILjava/lang/Object;)V
-Lorg/chromium/chrome/browser/dom_distiller/ReaderModeManager$$ExternalSyntheticLambda2;
-HSPLorg/chromium/chrome/browser/dom_distiller/ReaderModeManager$$ExternalSyntheticLambda2;-><init>(Lorg/chromium/chrome/browser/dom_distiller/ReaderModeManager;Lorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/dom_distiller/ReaderModeManager$2;
-HSPLorg/chromium/chrome/browser/dom_distiller/ReaderModeManager$2;-><init>(Lorg/chromium/chrome/browser/dom_distiller/ReaderModeManager;Lorg/chromium/content_public/browser/WebContents;)V
-HSPLorg/chromium/chrome/browser/dom_distiller/ReaderModeManager$2;->didFinishNavigationInPrimaryMainFrame(Lorg/chromium/content_public/browser/NavigationHandle;)V
-HSPLorg/chromium/chrome/browser/dom_distiller/ReaderModeManager$2;->didStartNavigationInPrimaryMainFrame(Lorg/chromium/content_public/browser/NavigationHandle;)V
-HSPLorg/chromium/chrome/browser/dom_distiller/ReaderModeManager$2;->navigationEntryCommitted(Lorg/chromium/content_public/browser/LoadCommittedDetails;)V
-Lorg/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController;
-HSPLorg/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController;-><init>(Landroidx/appcompat/app/AppCompatActivity;Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/ui/modaldialog/ModalDialogManager;Landroid/graphics/drawable/Drawable;)V
-Lorg/chromium/chrome/browser/dom_distiller/TabDistillabilityProvider;
-HSPLorg/chromium/chrome/browser/dom_distiller/TabDistillabilityProvider;-><init>(Lorg/chromium/chrome/browser/tab/TabImpl;)V
-HSPLorg/chromium/chrome/browser/dom_distiller/TabDistillabilityProvider;->destroy()V
-HSPLorg/chromium/chrome/browser/dom_distiller/TabDistillabilityProvider;->onContentChanged(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/dom_distiller/TabDistillabilityProvider;->resetState()V
-Lorg/chromium/chrome/browser/dom_distiller/TabDistillabilityProvider$DistillabilityObserver;
-Lorg/chromium/chrome/browser/download/DownloadController$Observer;
-Lorg/chromium/chrome/browser/download/DownloadDelegateImpl;
-HSPLorg/chromium/chrome/browser/download/DownloadDelegateImpl;-><init>()V
-PLorg/chromium/chrome/browser/download/DownloadDelegateImpl;->isDownloadOnSDCard(Ljava/lang/String;)Z
-Lorg/chromium/chrome/browser/download/DownloadDialogBridge;
-HSPLorg/chromium/chrome/browser/download/DownloadDialogBridge;-><init>(JLorg/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator;)V
-HSPLorg/chromium/chrome/browser/download/DownloadDialogBridge;->create(J)Lorg/chromium/chrome/browser/download/DownloadDialogBridge;
-PLorg/chromium/chrome/browser/download/DownloadDirectoryProvider;->isDownloadOnSDCard(Ljava/lang/String;)Z
-Lorg/chromium/chrome/browser/download/DownloadFileProvider;
-HSPLorg/chromium/chrome/browser/download/DownloadFileProvider;-><init>()V
-HSPLorg/chromium/chrome/browser/download/DownloadFileProvider;->attachInfo(Landroid/content/Context;Landroid/content/pm/ProviderInfo;)V
-Lorg/chromium/chrome/browser/download/DownloadForegroundServiceManager;
-HSPLorg/chromium/chrome/browser/download/DownloadForegroundServiceManager;-><init>()V
-Lorg/chromium/chrome/browser/download/DownloadForegroundServiceManager$1;
-HSPLorg/chromium/chrome/browser/download/DownloadForegroundServiceManager$1;-><init>(Lorg/chromium/chrome/browser/download/DownloadForegroundServiceManager;)V
-Lorg/chromium/chrome/browser/download/DownloadForegroundServiceManager$2;
-HSPLorg/chromium/chrome/browser/download/DownloadForegroundServiceManager$2;-><init>(Lorg/chromium/chrome/browser/download/DownloadForegroundServiceManager;)V
-Lorg/chromium/chrome/browser/download/DownloadManagerService;
-HSPLorg/chromium/chrome/browser/download/DownloadManagerService;-><init>(Lorg/chromium/chrome/browser/download/SystemDownloadNotifier;Landroid/os/Handler;)V
-HSPLorg/chromium/chrome/browser/download/DownloadManagerService;->getDownloadManagerService()Lorg/chromium/chrome/browser/download/DownloadManagerService;
-HSPLorg/chromium/chrome/browser/download/DownloadManagerService;->getNativeDownloadManagerService()J
-Lorg/chromium/chrome/browser/download/DownloadMessageBridge;
-HSPLorg/chromium/chrome/browser/download/DownloadMessageBridge;-><init>(J)V
-HSPLorg/chromium/chrome/browser/download/DownloadMessageBridge;->create(J)Lorg/chromium/chrome/browser/download/DownloadMessageBridge;
-Lorg/chromium/chrome/browser/download/DownloadMessageUiControllerImpl;
-HSPLorg/chromium/chrome/browser/download/DownloadMessageUiControllerImpl;-><init>(Lorg/chromium/chrome/browser/app/download/DownloadMessageUiDelegate;)V
-Lorg/chromium/chrome/browser/download/DownloadMessageUiControllerImpl$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/download/DownloadMessageUiControllerImpl$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/download/DownloadMessageUiControllerImpl;)V
-HSPLorg/chromium/chrome/browser/download/DownloadMessageUiControllerImpl$$ExternalSyntheticLambda1;->run()V
-Lorg/chromium/chrome/browser/download/DownloadNotificationService;
-HSPLorg/chromium/chrome/browser/download/DownloadNotificationService;-><init>()V
-HSPLorg/chromium/chrome/browser/download/DownloadNotificationService;->cancelOffTheRecordDownloads()V
-Lorg/chromium/chrome/browser/download/DownloadNotificationService$LazyHolder;
-Lorg/chromium/chrome/browser/download/DownloadServiceDelegate;
-Lorg/chromium/chrome/browser/download/DownloadSharedPreferenceHelper;
-HSPLorg/chromium/chrome/browser/download/DownloadSharedPreferenceHelper;-><init>()V
-Lorg/chromium/chrome/browser/download/DownloadSharedPreferenceHelper$LazyHolder;
-Lorg/chromium/chrome/browser/download/DownloadSnackbarController;
-HSPLorg/chromium/chrome/browser/download/DownloadSnackbarController;-><init>()V
-Lorg/chromium/chrome/browser/download/DownloadUtils;
-HSPLorg/chromium/chrome/browser/download/DownloadUtils;->isAllowedToDownloadPage(Lorg/chromium/chrome/browser/tab/Tab;)Z
-Lorg/chromium/chrome/browser/download/OMADownloadHandler;
-HSPLorg/chromium/chrome/browser/download/OMADownloadHandler;-><init>(Landroid/content/Context;)V
-PLorg/chromium/chrome/browser/download/OfflineContentAvailabilityStatusProvider;-><init>()V
-PLorg/chromium/chrome/browser/download/OfflineContentAvailabilityStatusProvider;->getInstance()Lorg/chromium/chrome/browser/download/OfflineContentAvailabilityStatusProvider;
-PLorg/chromium/chrome/browser/download/OfflineContentAvailabilityStatusProvider;->onItemsAdded(Ljava/util/List;)V
-PLorg/chromium/chrome/browser/download/OfflineContentAvailabilityStatusProvider$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/download/OfflineContentAvailabilityStatusProvider;)V
-PLorg/chromium/chrome/browser/download/OfflineContentAvailabilityStatusProvider$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/download/SystemDownloadNotifier;
-HSPLorg/chromium/chrome/browser/download/SystemDownloadNotifier;-><init>()V
-Lorg/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator;
-HSPLorg/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator;-><init>()V
-Lorg/chromium/chrome/browser/download/items/OfflineContentAggregatorFactory;
-HSPLorg/chromium/chrome/browser/download/items/OfflineContentAggregatorFactory;->get()Lorg/chromium/components/offline_items_collection/OfflineContentAggregatorBridge;
-Lorg/chromium/chrome/browser/download/items/OfflineContentAggregatorNotificationBridgeUi;
-HSPLorg/chromium/chrome/browser/download/items/OfflineContentAggregatorNotificationBridgeUi;-><init>(Lorg/chromium/components/offline_items_collection/OfflineContentAggregatorBridge;Lorg/chromium/chrome/browser/download/SystemDownloadNotifier;)V
-Lorg/chromium/chrome/browser/download/items/OfflineContentAggregatorNotificationBridgeUiFactory;
-HSPLorg/chromium/chrome/browser/download/items/OfflineContentAggregatorNotificationBridgeUiFactory;->instance()Lorg/chromium/chrome/browser/download/items/OfflineContentAggregatorNotificationBridgeUi;
-Lorg/chromium/chrome/browser/download/service/DownloadTaskScheduler;
-HSPLorg/chromium/chrome/browser/download/service/DownloadTaskScheduler;->cancelTask(I)V
-HPLorg/chromium/chrome/browser/download/service/DownloadTaskScheduler;->scheduleTask(IZZIJJ)V
-Lorg/chromium/chrome/browser/dragdrop/ChromeDragAndDropBrowserDelegate;
-HSPLorg/chromium/chrome/browser/dragdrop/ChromeDragAndDropBrowserDelegate;-><init>(Landroid/content/Context;)V
-Lorg/chromium/chrome/browser/enterprise/util/EnterpriseInfo;
-HSPLorg/chromium/chrome/browser/enterprise/util/EnterpriseInfo;-><init>()V
-HSPLorg/chromium/chrome/browser/enterprise/util/EnterpriseInfo;->getInstance()Lorg/chromium/chrome/browser/enterprise/util/EnterpriseInfo;
-HSPLorg/chromium/chrome/browser/enterprise/util/EnterpriseInfo;->getManagedStateForNative()V
-Lorg/chromium/chrome/browser/enterprise/util/EnterpriseInfo$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/enterprise/util/EnterpriseInfo$$ExternalSyntheticLambda0;-><init>()V
-HSPLorg/chromium/chrome/browser/enterprise/util/EnterpriseInfo$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/enterprise/util/EnterpriseInfo$OwnedState;
-HSPLorg/chromium/chrome/browser/enterprise/util/EnterpriseInfo$OwnedState;-><init>(ZZ)V
-Lorg/chromium/chrome/browser/enterprise/util/EnterpriseInfoImpl;
-HSPLorg/chromium/chrome/browser/enterprise/util/EnterpriseInfoImpl;-><init>()V
-HSPLorg/chromium/chrome/browser/enterprise/util/EnterpriseInfoImpl;->getDeviceEnterpriseInfo(Lorg/chromium/base/Callback;)V
-PLorg/chromium/chrome/browser/enterprise/util/EnterpriseInfoImpl;->logDeviceEnterpriseInfo()V
-PLorg/chromium/chrome/browser/enterprise/util/EnterpriseInfoImpl$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/enterprise/util/EnterpriseInfoImpl;Lorg/chromium/base/Callback;)V
-PLorg/chromium/chrome/browser/enterprise/util/EnterpriseInfoImpl$$ExternalSyntheticLambda0;->run()V
-PLorg/chromium/chrome/browser/enterprise/util/EnterpriseInfoImpl$$ExternalSyntheticLambda2;-><init>()V
-PLorg/chromium/chrome/browser/enterprise/util/EnterpriseInfoImpl$$ExternalSyntheticLambda2;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/enterprise/util/EnterpriseInfoImpl$1;
-HSPLorg/chromium/chrome/browser/enterprise/util/EnterpriseInfoImpl$1;-><init>(Lorg/chromium/chrome/browser/enterprise/util/EnterpriseInfoImpl;)V
-HSPLorg/chromium/chrome/browser/enterprise/util/EnterpriseInfoImpl$1;->doInBackground()Ljava/lang/Object;
-HSPLorg/chromium/chrome/browser/enterprise/util/EnterpriseInfoImpl$1;->onPostExecute(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl;
-HSPLorg/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl;-><init>(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl;->shouldDisableExternalIntentRequestsForUrl(Lorg/chromium/url/GURL;)Z
-Lorg/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl$1;
-HSPLorg/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl$1;-><init>(Lorg/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl;)V
-HSPLorg/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl$1;->onDestroyed(Lorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/externalnav/IntentWithRequestMetadataHandler;
-HSPLorg/chromium/chrome/browser/externalnav/IntentWithRequestMetadataHandler;-><init>()V
-HSPLorg/chromium/chrome/browser/externalnav/IntentWithRequestMetadataHandler;->getInstance()Lorg/chromium/chrome/browser/externalnav/IntentWithRequestMetadataHandler;
-Lorg/chromium/chrome/browser/feature_engagement/ScreenshotMonitorDelegate;
-Lorg/chromium/chrome/browser/feature_engagement/ScreenshotMonitorImpl;
-HSPLorg/chromium/chrome/browser/feature_engagement/ScreenshotMonitorImpl;-><init>(Lorg/chromium/chrome/browser/feature_engagement/ScreenshotMonitorDelegate;)V
-Lorg/chromium/chrome/browser/feature_engagement/ScreenshotMonitorImpl$ScreenshotMonitorContentObserver;
-HSPLorg/chromium/chrome/browser/feature_engagement/ScreenshotMonitorImpl$ScreenshotMonitorContentObserver;-><init>(Lorg/chromium/chrome/browser/feature_engagement/ScreenshotMonitorImpl;Lorg/chromium/chrome/browser/feature_engagement/ScreenshotMonitorImpl;)V
-Lorg/chromium/chrome/browser/feature_engagement/TrackerFactory;
-HSPLorg/chromium/chrome/browser/feature_engagement/TrackerFactory;->getTrackerForProfile(Lorg/chromium/chrome/browser/profiles/Profile;)Lorg/chromium/components/feature_engagement/Tracker;
-Lorg/chromium/chrome/browser/feed/FeedFeatures;
-Lorg/chromium/chrome/browser/feed/FeedPlaceholderLayout;
-Lorg/chromium/chrome/browser/feed/FeedStreamViewResizer;
-HSPLorg/chromium/chrome/browser/feed/FeedStreamViewResizer;-><init>(Landroid/app/Activity;Landroid/view/ViewGroup;Lorg/chromium/components/browser_ui/widget/displaystyle/UiConfig;II)V
-HSPLorg/chromium/chrome/browser/feed/FeedStreamViewResizer;->createAndAttach(Landroid/app/Activity;Landroid/view/ViewGroup;Lorg/chromium/components/browser_ui/widget/displaystyle/UiConfig;)V
-Lorg/chromium/chrome/browser/feed/FeedSurfaceDelegate;
-Lorg/chromium/chrome/browser/feed/FeedSurfaceTracker;
-HSPLorg/chromium/chrome/browser/feed/FeedSurfaceTracker;-><init>()V
-HSPLorg/chromium/chrome/browser/feed/FeedSurfaceTracker;->getInstance()Lorg/chromium/chrome/browser/feed/FeedSurfaceTracker;
-Lorg/chromium/chrome/browser/feed/FeedSwipeRefreshLayout;
-HSPLorg/chromium/chrome/browser/feed/FeedSwipeRefreshLayout;-><init>(Landroid/app/Activity;)V
-HSPLorg/chromium/chrome/browser/feed/FeedSwipeRefreshLayout;->create(Landroid/app/Activity;)Lorg/chromium/chrome/browser/feed/FeedSwipeRefreshLayout;
-HSPLorg/chromium/chrome/browser/feed/FeedSwipeRefreshLayout;->onWindowVisibilityChanged(I)V
-Lorg/chromium/chrome/browser/feed/FeedSwipeRefreshLayout$1;
-HSPLorg/chromium/chrome/browser/feed/FeedSwipeRefreshLayout$1;-><init>(Lorg/chromium/chrome/browser/feed/FeedSwipeRefreshLayout;Landroid/app/Activity;)V
-Lorg/chromium/chrome/browser/feed/FeedSwipeRefreshLayout$2;
-HSPLorg/chromium/chrome/browser/feed/FeedSwipeRefreshLayout$2;-><init>(Lorg/chromium/chrome/browser/feed/FeedSwipeRefreshLayout;)V
-Lorg/chromium/chrome/browser/feed/ScrollListener;
-Lorg/chromium/chrome/browser/feed/ScrollableContainerDelegate;
-Lorg/chromium/chrome/browser/feed/webfeed/WebFeedSnackbarController$FeedLauncher;
-Lorg/chromium/chrome/browser/findinpage/FindToolbarManager;
-HSPLorg/chromium/chrome/browser/findinpage/FindToolbarManager;-><init>(Landroid/view/ViewStub;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/ui/base/ActivityWindowAndroid;Lorg/chromium/chrome/browser/toolbar/top/ToolbarActionModeCallback;Lorg/chromium/chrome/browser/back_press/BackPressManager;)V
-Lorg/chromium/chrome/browser/findinpage/FindToolbarObserver;
-Lorg/chromium/chrome/browser/firstrun/FirstRunFlowSequencer;
-HSPLorg/chromium/chrome/browser/firstrun/FirstRunFlowSequencer;->checkIfFirstRunIsNecessary(Landroid/content/Intent;Z)Z
-HSPLorg/chromium/chrome/browser/firstrun/FirstRunFlowSequencer;->checkIfFirstRunIsNecessary(ZZ)Z
-HSPLorg/chromium/chrome/browser/firstrun/FirstRunFlowSequencer;->launch(Landroid/content/Context;Landroid/content/Intent;Z)Z
-Lorg/chromium/chrome/browser/firstrun/FirstRunSignInProcessor;
-HSPLorg/chromium/chrome/browser/firstrun/FirstRunSignInProcessor;->openSyncSettingsIfScheduled(Landroid/app/Activity;)V
-Lorg/chromium/chrome/browser/firstrun/FirstRunStatus;
-HSPLorg/chromium/chrome/browser/firstrun/FirstRunStatus;->getFirstRunFlowComplete()Z
-Lorg/chromium/chrome/browser/flags/AllCachedFieldTrialParameters;
-HSPLorg/chromium/chrome/browser/flags/AllCachedFieldTrialParameters;-><init>()V
-HSPLorg/chromium/chrome/browser/flags/AllCachedFieldTrialParameters;->cacheToDisk()V
-Lorg/chromium/chrome/browser/flags/BooleanCachedFieldTrialParameter;
-HSPLorg/chromium/chrome/browser/flags/BooleanCachedFieldTrialParameter;-><init>(Ljava/lang/String;Ljava/lang/String;Z)V
-HSPLorg/chromium/chrome/browser/flags/BooleanCachedFieldTrialParameter;->cacheToDisk()V
-HSPLorg/chromium/chrome/browser/flags/BooleanCachedFieldTrialParameter;->getValue()Z
-Lorg/chromium/chrome/browser/flags/CachedFeatureFlags;
-HSPLorg/chromium/chrome/browser/flags/CachedFeatureFlags;->cacheNativeFlags(Ljava/util/List;)V
-HSPLorg/chromium/chrome/browser/flags/CachedFeatureFlags;->getConsistentBooleanValue(Ljava/lang/String;Z)Z
-HSPLorg/chromium/chrome/browser/flags/CachedFeatureFlags;->getReachedCodeProfilerTrialGroup()Ljava/lang/String;
-HSPLorg/chromium/chrome/browser/flags/CachedFeatureFlags;->isEnabled(Ljava/lang/String;Z)Z
-Lorg/chromium/chrome/browser/flags/CachedFieldTrialParameter;
-HSPLorg/chromium/chrome/browser/flags/CachedFieldTrialParameter;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-HSPLorg/chromium/chrome/browser/flags/CachedFieldTrialParameter;->getSharedPreferenceKey()Ljava/lang/String;
-Lorg/chromium/chrome/browser/flags/CachedFlag;
-HSPLorg/chromium/chrome/browser/flags/CachedFlag;-><init>(Ljava/lang/String;Z)V
-HSPLorg/chromium/chrome/browser/flags/CachedFlag;->isEnabled()Z
-Lorg/chromium/chrome/browser/flags/CachedFlagsSafeMode;
-HSPLorg/chromium/chrome/browser/flags/CachedFlagsSafeMode;->-$$Nest$mwriteSafeValues(Lorg/chromium/chrome/browser/flags/CachedFlagsSafeMode;Lorg/chromium/chrome/browser/flags/ValuesReturned;)V
-HSPLorg/chromium/chrome/browser/flags/CachedFlagsSafeMode;-><init>()V
-HSPLorg/chromium/chrome/browser/flags/CachedFlagsSafeMode;->getSafeValuePreferences()Landroid/content/SharedPreferences;
-HSPLorg/chromium/chrome/browser/flags/CachedFlagsSafeMode;->isSafeModeExperimentEnabled()Z
-HSPLorg/chromium/chrome/browser/flags/CachedFlagsSafeMode;->onFlagChecked()V
-HSPLorg/chromium/chrome/browser/flags/CachedFlagsSafeMode;->shouldEnterSafeMode()Z
-Lorg/chromium/chrome/browser/flags/CachedFlagsSafeMode$1;
-HSPLorg/chromium/chrome/browser/flags/CachedFlagsSafeMode$1;-><init>(Lorg/chromium/chrome/browser/flags/CachedFlagsSafeMode;Lorg/chromium/chrome/browser/flags/ValuesReturned;)V
-HSPLorg/chromium/chrome/browser/flags/CachedFlagsSafeMode$1;->doInBackground()Ljava/lang/Object;
-HSPLorg/chromium/chrome/browser/flags/CachedFlagsSafeMode$1;->onPostExecute(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/flags/ChromeFeatureList;
-Lorg/chromium/chrome/browser/flags/DoubleCachedFieldTrialParameter;
-HSPLorg/chromium/chrome/browser/flags/DoubleCachedFieldTrialParameter;-><init>(Ljava/lang/String;Ljava/lang/String;D)V
-HSPLorg/chromium/chrome/browser/flags/DoubleCachedFieldTrialParameter;->cacheToDisk()V
-HSPLorg/chromium/chrome/browser/flags/DoubleCachedFieldTrialParameter;->getValue()D
-Lorg/chromium/chrome/browser/flags/IntCachedFieldTrialParameter;
-HSPLorg/chromium/chrome/browser/flags/IntCachedFieldTrialParameter;-><init>(ILjava/lang/String;Ljava/lang/String;)V
-HSPLorg/chromium/chrome/browser/flags/IntCachedFieldTrialParameter;->cacheToDisk()V
-HSPLorg/chromium/chrome/browser/flags/IntCachedFieldTrialParameter;->getValue()I
-Lorg/chromium/chrome/browser/flags/MutableFlagWithSafeDefault;
-HSPLorg/chromium/chrome/browser/flags/MutableFlagWithSafeDefault;-><init>(Ljava/lang/String;Z)V
-HSPLorg/chromium/chrome/browser/flags/MutableFlagWithSafeDefault;->isEnabled()Z
-Lorg/chromium/chrome/browser/flags/PostNativeFlag;
-HSPLorg/chromium/chrome/browser/flags/PostNativeFlag;-><init>()V
-HSPLorg/chromium/chrome/browser/flags/PostNativeFlag;->isEnabled()Z
-Lorg/chromium/chrome/browser/flags/StringCachedFieldTrialParameter;
-HSPLorg/chromium/chrome/browser/flags/StringCachedFieldTrialParameter;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-HSPLorg/chromium/chrome/browser/flags/StringCachedFieldTrialParameter;->cacheToDisk()V
-HSPLorg/chromium/chrome/browser/flags/StringCachedFieldTrialParameter;->getValue()Ljava/lang/String;
-Lorg/chromium/chrome/browser/flags/ValuesOverridden;
-HSPLorg/chromium/chrome/browser/flags/ValuesOverridden;-><init>()V
-Lorg/chromium/chrome/browser/flags/ValuesReturned;
-HSPLorg/chromium/chrome/browser/flags/ValuesReturned;-><init>()V
-Lorg/chromium/chrome/browser/fonts/FontPreloader;
-HSPLorg/chromium/chrome/browser/fonts/FontPreloader;-><init>()V
-HSPLorg/chromium/chrome/browser/fonts/FontPreloader;->getInstance()Lorg/chromium/chrome/browser/fonts/FontPreloader;
-HSPLorg/chromium/chrome/browser/fonts/FontPreloader;->onFirstDraw(Ljava/lang/String;)V
-HSPLorg/chromium/chrome/browser/fonts/FontPreloader;->onPostInflationStartup(Ljava/lang/String;)V
-Lorg/chromium/chrome/browser/fonts/FontPreloader$OnFontCallback;
-HSPLorg/chromium/chrome/browser/fonts/FontPreloader$OnFontCallback;-><init>(Lorg/chromium/chrome/browser/fonts/FontPreloader;)V
-HSPLorg/chromium/chrome/browser/fonts/FontPreloader$OnFontCallback;->onFontRetrievalFailed(I)V
-HSPLorg/chromium/chrome/browser/fonts/FontPreloader$OnFontCallback;->onFontRetrieved(Landroid/graphics/Typeface;)V
-Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;
-HSPLorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;->-$$Nest$monOffsetsChanged(Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;IIIII)V
-HSPLorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;-><init>(Landroid/app/Activity;)V
-HSPLorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;->addObserver(Lorg/chromium/chrome/browser/browser_controls/BrowserControlsStateProvider$Observer;)V
-HSPLorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;->getBottomControlOffset()I
-HSPLorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;->initialize(Lorg/chromium/chrome/browser/toolbar/ControlContainer;Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;I)V
-HSPLorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;->onActivityStateChange(Landroid/app/Activity;I)V
-HSPLorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;->removeObserver(Lorg/chromium/chrome/browser/browser_controls/BrowserControlsStateProvider$Observer;)V
-HSPLorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;->scheduleVisibilityUpdate()V
-HSPLorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;->setBottomControlsHeight(II)V
-HSPLorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;->setPositionsForTab(IIIII)V
-HSPLorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;->setPositionsForTabToNonFullscreen()V
-HSPLorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;->shouldShowAndroidControls()Z
-HSPLorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;->showAndroidControls(Z)V
-HSPLorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;->updateBrowserControlsOffsets(ZIIIII)V
-Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/fullscreen/BrowserControlsManager$$ExternalSyntheticLambda1;-><init>(ILjava/lang/Object;)V
-HSPLorg/chromium/chrome/browser/fullscreen/BrowserControlsManager$$ExternalSyntheticLambda1;->run()V
-Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager$$ExternalSyntheticLambda2;
-HSPLorg/chromium/chrome/browser/fullscreen/BrowserControlsManager$$ExternalSyntheticLambda2;-><init>(Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;)V
-HSPLorg/chromium/chrome/browser/fullscreen/BrowserControlsManager$$ExternalSyntheticLambda2;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager$1;
-HSPLorg/chromium/chrome/browser/fullscreen/BrowserControlsManager$1;-><init>(Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;)V
-Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager$2;
-HSPLorg/chromium/chrome/browser/fullscreen/BrowserControlsManager$2;-><init>(Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;Lorg/chromium/chrome/browser/ActivityTabProvider;)V
-HSPLorg/chromium/chrome/browser/fullscreen/BrowserControlsManager$2;->onObservingDifferentTab(Lorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager$3;
-HSPLorg/chromium/chrome/browser/fullscreen/BrowserControlsManager$3;-><init>(Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;)V
-HSPLorg/chromium/chrome/browser/fullscreen/BrowserControlsManager$3;->onBrowserControlsOffsetChanged(Lorg/chromium/chrome/browser/tab/TabImpl;IIIII)V
-HSPLorg/chromium/chrome/browser/fullscreen/BrowserControlsManager$3;->onInteractabilityChanged(Lorg/chromium/chrome/browser/tab/Tab;Z)V
-Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManagerSupplier;
-HSPLorg/chromium/chrome/browser/fullscreen/BrowserControlsManagerSupplier;-><init>()V
-HSPLorg/chromium/chrome/browser/fullscreen/BrowserControlsManagerSupplier;->getValueOrNullFrom(Lorg/chromium/ui/base/WindowAndroid;)Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;
-Lorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler;
-HSPLorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler;-><init>(Landroid/app/Activity;Lorg/chromium/base/supplier/ObservableSupplierImpl;)V
-HSPLorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler;->addObserver(Lorg/chromium/chrome/browser/fullscreen/FullscreenManager$Observer;)V
-HSPLorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler;->createAndShowNotificationToast()V
-HSPLorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler;->exitPersistentFullscreenMode()V
-HSPLorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler;->getPersistentFullscreenMode()Z
-HSPLorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler;->hideImmediatelyNotificationToast()V
-HSPLorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler;->onActivityStateChange(Landroid/app/Activity;I)V
-HSPLorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler;->onWindowFocusChanged(Landroid/app/Activity;Z)V
-HSPLorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler;->removeObserver(Lorg/chromium/chrome/browser/fullscreen/FullscreenManager$Observer;)V
-HSPLorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler;->setContentView(Lorg/chromium/components/embedder_support/view/ContentView;)V
-HSPLorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler;->updateMultiTouchZoomSupport(Z)V
-Lorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler;)V
-HSPLorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler;I)V
-Lorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler$1;
-HSPLorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler$1;-><init>(Lorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler;)V
-Lorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler$2;
-HSPLorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler$2;-><init>(Lorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler;Lorg/chromium/chrome/browser/ActivityTabProvider;)V
-HSPLorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler$2;->onObservingDifferentTab(Lorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler$3;
-HSPLorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler$3;-><init>(Lorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;)V
-HSPLorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler$3;->onDidFinishNavigationInPrimaryMainFrame(Lorg/chromium/chrome/browser/tab/TabImpl;Lorg/chromium/content_public/browser/NavigationHandle;)V
-HSPLorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler$3;->onHidden(Lorg/chromium/chrome/browser/tab/Tab;I)V
-HSPLorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler$3;->onInteractabilityChanged(Lorg/chromium/chrome/browser/tab/Tab;Z)V
-Lorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler$FullscreenHandler;
-HSPLorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler$FullscreenHandler;-><init>(Lorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler;)V
-Lorg/chromium/chrome/browser/fullscreen/FullscreenManager;
-Lorg/chromium/chrome/browser/fullscreen/FullscreenManager$Observer;
-Lorg/chromium/chrome/browser/gesturenav/GestureNavigationProperties;
-Lorg/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator;
-HSPLorg/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator;-><init>()V
-HSPLorg/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator;->isFeatureEnabled()Z
-HSPLorg/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator;->onPauseWithNative()V
-HSPLorg/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator;->onResumeWithNative()V
-HSPLorg/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator;->updateNavigationHandler()V
-Lorg/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator;)V
-Lorg/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator;I)V
-HSPLorg/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator$$ExternalSyntheticLambda1;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator$$ExternalSyntheticLambda2;
-HSPLorg/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator$$ExternalSyntheticLambda2;-><init>(Lorg/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator;)V
-HSPLorg/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator$$ExternalSyntheticLambda2;->run()V
-Lorg/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator$$ExternalSyntheticLambda3;
-HSPLorg/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator$$ExternalSyntheticLambda3;-><init>()V
-Lorg/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator$1;
-HSPLorg/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator$1;-><init>(Lorg/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator;)V
-HSPLorg/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator$1;->onDestroyed(Lorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/gesturenav/HistoryNavigationLayout;
-HSPLorg/chromium/chrome/browser/gesturenav/HistoryNavigationLayout;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator$$ExternalSyntheticLambda0;Lorg/chromium/chrome/browser/gesturenav/OverscrollGlowOverlay;Lorg/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator$$ExternalSyntheticLambda1;)V
-Lorg/chromium/chrome/browser/gesturenav/NavigationGlow;
-HSPLorg/chromium/chrome/browser/gesturenav/NavigationGlow;-><init>(Landroid/view/ViewGroup;)V
-Lorg/chromium/chrome/browser/gesturenav/NavigationHandler;
-HSPLorg/chromium/chrome/browser/gesturenav/NavigationHandler;-><init>(Lorg/chromium/ui/modelutil/PropertyModel;Lorg/chromium/chrome/browser/gesturenav/HistoryNavigationLayout;Lorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator$2;)V
-HSPLorg/chromium/chrome/browser/gesturenav/NavigationHandler;->reset()V
-Lorg/chromium/chrome/browser/gesturenav/NavigationHandler$1;
-HSPLorg/chromium/chrome/browser/gesturenav/NavigationHandler$1;-><init>(Lorg/chromium/chrome/browser/gesturenav/NavigationHandler;)V
-Lorg/chromium/chrome/browser/gesturenav/NavigationHandler$SideNavGestureListener;
-HSPLorg/chromium/chrome/browser/gesturenav/NavigationHandler$SideNavGestureListener;-><init>(Lorg/chromium/chrome/browser/gesturenav/NavigationHandler;)V
-Lorg/chromium/chrome/browser/gesturenav/OverscrollGlowOverlay;
-HSPLorg/chromium/chrome/browser/gesturenav/OverscrollGlowOverlay;-><init>(Lorg/chromium/ui/base/ActivityWindowAndroid;Landroid/view/ViewGroup;Lorg/chromium/base/CallbackController$CancelableRunnable;)V
-HSPLorg/chromium/chrome/browser/gesturenav/OverscrollGlowOverlay;->isSceneOverlayTreeShowing()Z
-HSPLorg/chromium/chrome/browser/gesturenav/OverscrollGlowOverlay;->onSizeChanged(FFFI)V
-HSPLorg/chromium/chrome/browser/gesturenav/OverscrollGlowOverlay;->shouldHideAndroidBrowserControls()Z
-HSPLorg/chromium/chrome/browser/gesturenav/OverscrollGlowOverlay;->updateOverlay(J)Z
-Lorg/chromium/chrome/browser/gesturenav/OverscrollSceneLayer;
-HSPLorg/chromium/chrome/browser/gesturenav/OverscrollSceneLayer;-><init>(Lorg/chromium/ui/base/ActivityWindowAndroid;Landroid/view/View;)V
-HSPLorg/chromium/chrome/browser/gesturenav/OverscrollSceneLayer;->destroy()V
-HSPLorg/chromium/chrome/browser/gesturenav/OverscrollSceneLayer;->initializeNative()V
-PLorg/chromium/chrome/browser/gsa/GSAAccountChangeListener;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/gsa/GSAHelper;)V
-PLorg/chromium/chrome/browser/gsa/GSAAccountChangeListener$1;-><init>(Lorg/chromium/chrome/browser/gsa/GSAAccountChangeListener;Lorg/chromium/chrome/browser/gsa/GSAHelper;)V
-PLorg/chromium/chrome/browser/gsa/GSAAccountChangeListener$2;-><init>(Lorg/chromium/chrome/browser/gsa/GSAAccountChangeListener;)V
-PLorg/chromium/chrome/browser/gsa/GSAAccountChangeListener$AccountChangeBroadcastReceiver;-><init>()V
-PLorg/chromium/chrome/browser/gsa/GSAHelper;-><init>()V
-PLorg/chromium/chrome/browser/gsa/GSAServiceClient;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/gsa/GSAAccountChangeListener$2;Lorg/chromium/chrome/browser/gsa/GSAHelper;)V
-PLorg/chromium/chrome/browser/gsa/GSAServiceClient;->connect()V
-PLorg/chromium/chrome/browser/gsa/GSAServiceClient$GSAServiceConnection;-><init>(Lorg/chromium/chrome/browser/gsa/GSAServiceClient;)V
-PLorg/chromium/chrome/browser/gsa/GSAServiceClient$GSAServiceConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
-PLorg/chromium/chrome/browser/gsa/GSAServiceClient$IncomingHandler;-><init>(Lorg/chromium/chrome/browser/gsa/GSAServiceClient;)V
-Lorg/chromium/chrome/browser/gsa/GSAState;
-HSPLorg/chromium/chrome/browser/gsa/GSAState;-><init>()V
-HSPLorg/chromium/chrome/browser/gsa/GSAState;->getInstance()Lorg/chromium/chrome/browser/gsa/GSAState;
-PLorg/chromium/chrome/browser/gsa/GSAState;->isAgsaVersionBelowMinimum(Ljava/lang/String;Ljava/lang/String;)Z
-HSPLorg/chromium/chrome/browser/gsa/GSAState;->isGsaAvailable()Z
-Lorg/chromium/chrome/browser/history/HistoryDeletionBridge;
-HSPLorg/chromium/chrome/browser/history/HistoryDeletionBridge;-><init>()V
-Lorg/chromium/chrome/browser/history_clusters/HistoryClustersDelegate;
-Lorg/chromium/chrome/browser/homepage/HomepageManager;
-HSPLorg/chromium/chrome/browser/homepage/HomepageManager;-><init>()V
-HSPLorg/chromium/chrome/browser/homepage/HomepageManager;->getDefaultHomepageUri()Ljava/lang/String;
-HSPLorg/chromium/chrome/browser/homepage/HomepageManager;->getHomepageUri()Ljava/lang/String;
-HSPLorg/chromium/chrome/browser/homepage/HomepageManager;->getInstance()Lorg/chromium/chrome/browser/homepage/HomepageManager;
-HSPLorg/chromium/chrome/browser/homepage/HomepageManager;->isHomepageEnabled()Z
-Lorg/chromium/chrome/browser/homepage/HomepagePolicyManager;
-HSPLorg/chromium/chrome/browser/homepage/HomepagePolicyManager;-><init>()V
-HSPLorg/chromium/chrome/browser/homepage/HomepagePolicyManager;->getInstance()Lorg/chromium/chrome/browser/homepage/HomepagePolicyManager;
-HSPLorg/chromium/chrome/browser/homepage/HomepagePolicyManager;->isHomepageManagedByPolicy()Z
-HSPLorg/chromium/chrome/browser/homepage/HomepagePolicyManager;->refresh()V
-Lorg/chromium/chrome/browser/homepage/HomepagePolicyManager$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/homepage/HomepagePolicyManager$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/homepage/HomepagePolicyManager;)V
-HSPLorg/chromium/chrome/browser/homepage/HomepagePolicyManager$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/identity_disc/IdentityDiscController;
-HSPLorg/chromium/chrome/browser/identity_disc/IdentityDiscController;-><init>(Landroidx/appcompat/app/AppCompatActivity;Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;Lorg/chromium/base/supplier/ObservableSupplier;)V
-HSPLorg/chromium/chrome/browser/identity_disc/IdentityDiscController;->addObserver(Lorg/chromium/chrome/browser/toolbar/ButtonDataProvider$ButtonDataObserver;)V
-HSPLorg/chromium/chrome/browser/identity_disc/IdentityDiscController;->destroy()V
-HSPLorg/chromium/chrome/browser/identity_disc/IdentityDiscController;->get(Lorg/chromium/chrome/browser/tab/Tab;)Lorg/chromium/chrome/browser/toolbar/ButtonDataImpl;
-HSPLorg/chromium/chrome/browser/identity_disc/IdentityDiscController;->notifyObservers(Z)V
-HSPLorg/chromium/chrome/browser/identity_disc/IdentityDiscController;->onFinishNativeInitialization()V
-HSPLorg/chromium/chrome/browser/identity_disc/IdentityDiscController;->removeObserver(Lorg/chromium/chrome/browser/toolbar/ButtonDataProvider$ButtonDataObserver;)V
-Lorg/chromium/chrome/browser/identity_disc/IdentityDiscController$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/identity_disc/IdentityDiscController$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/identity_disc/IdentityDiscController;)V
-HSPLorg/chromium/chrome/browser/identity_disc/IdentityDiscController$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/identity_disc/IdentityDiscController$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/identity_disc/IdentityDiscController$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/identity_disc/IdentityDiscController;)V
-Lorg/chromium/chrome/browser/incognito/IncognitoNotificationManager;
-HSPLorg/chromium/chrome/browser/incognito/IncognitoNotificationManager;->dismissIncognitoNotification()V
-Lorg/chromium/chrome/browser/incognito/IncognitoNotificationPresenceController;
-HSPLorg/chromium/chrome/browser/incognito/IncognitoNotificationPresenceController;-><init>()V
-Lorg/chromium/chrome/browser/incognito/IncognitoProfileDestroyer;
-HSPLorg/chromium/chrome/browser/incognito/IncognitoProfileDestroyer;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;)V
-Lorg/chromium/chrome/browser/incognito/IncognitoSnapshotController;
-HSPLorg/chromium/chrome/browser/incognito/IncognitoSnapshotController;-><init>(Landroid/view/Window;Lorg/chromium/base/supplier/Supplier;)V
-HSPLorg/chromium/chrome/browser/incognito/IncognitoSnapshotController;->onChange()V
-HSPLorg/chromium/chrome/browser/incognito/IncognitoSnapshotController;->updateIncognitoTabSnapshotState()V
-Lorg/chromium/chrome/browser/incognito/IncognitoTabLauncher;
-HSPLorg/chromium/chrome/browser/incognito/IncognitoTabLauncher;->didCreateIntent(Landroid/content/Intent;)Z
-PLorg/chromium/chrome/browser/incognito/IncognitoTabLauncher;->setComponentEnabled(Z)V
-PLorg/chromium/chrome/browser/incognito/IncognitoTabLauncher$$ExternalSyntheticLambda0;-><init>(Z)V
-PLorg/chromium/chrome/browser/incognito/IncognitoTabLauncher$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/incognito/IncognitoTabbedSnapshotController;
-HSPLorg/chromium/chrome/browser/incognito/IncognitoTabbedSnapshotController;-><init>(Landroid/view/Window;Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome;Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;Lorg/chromium/chrome/browser/incognito/IncognitoTabbedSnapshotController$$ExternalSyntheticLambda1;)V
-HSPLorg/chromium/chrome/browser/incognito/IncognitoTabbedSnapshotController;->onDestroy()V
-Lorg/chromium/chrome/browser/incognito/IncognitoTabbedSnapshotController$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/incognito/IncognitoTabbedSnapshotController$$ExternalSyntheticLambda0;-><init>(ILorg/chromium/ui/util/AccessibilityUtil$Observer;)V
-HSPLorg/chromium/chrome/browser/incognito/IncognitoTabbedSnapshotController$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;
-Lorg/chromium/chrome/browser/incognito/IncognitoTabbedSnapshotController$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/incognito/IncognitoTabbedSnapshotController$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;Lorg/chromium/chrome/browser/incognito/IncognitoTabbedSnapshotController$$ExternalSyntheticLambda0;Lorg/chromium/chrome/browser/incognito/IncognitoTabbedSnapshotController$$ExternalSyntheticLambda0;)V
-HSPLorg/chromium/chrome/browser/incognito/IncognitoTabbedSnapshotController$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;
-Lorg/chromium/chrome/browser/incognito/IncognitoTabbedSnapshotController$1;
-HSPLorg/chromium/chrome/browser/incognito/IncognitoTabbedSnapshotController$1;-><init>(Lorg/chromium/chrome/browser/incognito/IncognitoTabbedSnapshotController;)V
-Lorg/chromium/chrome/browser/incognito/IncognitoUtils;
-HSPLorg/chromium/chrome/browser/incognito/IncognitoUtils;->getProfileFromWindowAndroid(Lorg/chromium/ui/base/WindowAndroid;Z)Lorg/chromium/chrome/browser/profiles/Profile;
-Lorg/chromium/chrome/browser/incognito/reauth/IncognitoReauthManager;
-HSPLorg/chromium/chrome/browser/incognito/reauth/IncognitoReauthManager;->isIncognitoReauthFeatureAvailable()Z
-Lorg/chromium/chrome/browser/infobar/IPHBubbleDelegateImpl;
-HSPLorg/chromium/chrome/browser/infobar/IPHBubbleDelegateImpl;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/infobar/IPHInfoBarSupport;
-HSPLorg/chromium/chrome/browser/infobar/IPHInfoBarSupport;-><init>(Lorg/chromium/chrome/browser/infobar/IPHBubbleDelegateImpl;)V
-Lorg/chromium/chrome/browser/infobar/InfoBarContainer;
-HSPLorg/chromium/chrome/browser/infobar/InfoBarContainer;->-$$Nest$mupdateWebContents(Lorg/chromium/chrome/browser/infobar/InfoBarContainer;)V
-HSPLorg/chromium/chrome/browser/infobar/InfoBarContainer;-><init>(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/infobar/InfoBarContainer;->destroy()V
-HSPLorg/chromium/chrome/browser/infobar/InfoBarContainer;->destroyContainerView()V
-HSPLorg/chromium/chrome/browser/infobar/InfoBarContainer;->get(Lorg/chromium/chrome/browser/tab/Tab;)Lorg/chromium/chrome/browser/infobar/InfoBarContainer;
-HSPLorg/chromium/chrome/browser/infobar/InfoBarContainer;->initializeContainerView(Landroid/app/Activity;)V
-HSPLorg/chromium/chrome/browser/infobar/InfoBarContainer;->setHidden(Z)V
-Lorg/chromium/chrome/browser/infobar/InfoBarContainer$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/infobar/InfoBarContainer$$ExternalSyntheticLambda0;-><init>()V
-HSPLorg/chromium/chrome/browser/infobar/InfoBarContainer$$ExternalSyntheticLambda0;->onAccessibilityModeChanged(Z)V
-Lorg/chromium/chrome/browser/infobar/InfoBarContainer$1;
-HSPLorg/chromium/chrome/browser/infobar/InfoBarContainer$1;-><init>(Lorg/chromium/chrome/browser/infobar/InfoBarContainer;)V
-HSPLorg/chromium/chrome/browser/infobar/InfoBarContainer$1;->onContentChanged(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/infobar/InfoBarContainer$1;->onDidFinishNavigationInPrimaryMainFrame(Lorg/chromium/chrome/browser/tab/TabImpl;Lorg/chromium/content_public/browser/NavigationHandle;)V
-HSPLorg/chromium/chrome/browser/infobar/InfoBarContainer$1;->onDidStartNavigationInPrimaryMainFrame(Lorg/chromium/chrome/browser/tab/TabImpl;Lorg/chromium/content_public/browser/NavigationHandle;)V
-Lorg/chromium/chrome/browser/infobar/InfoBarContainer$2;
-HSPLorg/chromium/chrome/browser/infobar/InfoBarContainer$2;-><init>(Lorg/chromium/chrome/browser/infobar/InfoBarContainer;I)V
-HSPLorg/chromium/chrome/browser/infobar/InfoBarContainer$2;->onViewAttachedToWindow(Landroid/view/View;)V
-HSPLorg/chromium/chrome/browser/infobar/InfoBarContainer$2;->onViewDetachedFromWindow(Landroid/view/View;)V
-Lorg/chromium/chrome/browser/infobar/InfoBarContainer$3;
-HSPLorg/chromium/chrome/browser/infobar/InfoBarContainer$3;-><init>(Lorg/chromium/chrome/browser/infobar/InfoBarContainer;)V
-Lorg/chromium/chrome/browser/infobar/InfoBarContainer$4;
-HSPLorg/chromium/chrome/browser/infobar/InfoBarContainer$4;-><init>(Lorg/chromium/chrome/browser/infobar/InfoBarContainer;)V
-Lorg/chromium/chrome/browser/infobar/InfoBarContainer$5$1;
-HSPLorg/chromium/chrome/browser/infobar/InfoBarContainer$5$1;-><init>(Lorg/chromium/chrome/browser/infobar/InfoBarContainer$2;)V
-Lorg/chromium/chrome/browser/infobar/InfoBarContainer$InfoBarContainerObserver;
-Lorg/chromium/chrome/browser/infobar/InfoBarContainerView;
-HSPLorg/chromium/chrome/browser/infobar/InfoBarContainerView;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/infobar/InfoBarContainer$3;Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;Z)V
-HSPLorg/chromium/chrome/browser/infobar/InfoBarContainerView;->addToParentView()V
-HSPLorg/chromium/chrome/browser/infobar/InfoBarContainerView;->onAttachedToWindow()V
-HSPLorg/chromium/chrome/browser/infobar/InfoBarContainerView;->runUpEventAnimation(Z)V
-HSPLorg/chromium/chrome/browser/infobar/InfoBarContainerView;->setTranslationY(F)V
-Lorg/chromium/chrome/browser/infobar/InfoBarContainerView$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/infobar/InfoBarContainerView$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/infobar/InfoBarContainerView;)V
-Lorg/chromium/chrome/browser/infobar/InfoBarContainerView$1;
-HSPLorg/chromium/chrome/browser/infobar/InfoBarContainerView$1;-><init>(Lorg/chromium/chrome/browser/infobar/InfoBarContainerView;)V
-Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;
-HSPLorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;-><init>(Landroid/app/Activity;)V
-HSPLorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;->isActivityFinishingOrDestroyed()Z
-HSPLorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;->register(Lorg/chromium/chrome/browser/lifecycle/LifecycleObserver;)V
-HSPLorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;->unregister(Lorg/chromium/chrome/browser/lifecycle/LifecycleObserver;)V
-Lorg/chromium/chrome/browser/init/AsyncInitTaskRunner$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/init/AsyncInitTaskRunner$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/init/NativeInitializationController$1;)V
-HSPLorg/chromium/chrome/browser/init/AsyncInitTaskRunner$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/init/AsyncInitTaskRunner$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/init/AsyncInitTaskRunner$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/init/NativeInitializationController$1;Lorg/chromium/base/library_loader/ProcessInitException;)V
-HSPLorg/chromium/chrome/browser/init/AsyncInitTaskRunner$$ExternalSyntheticLambda1;->run()V
-Lorg/chromium/chrome/browser/init/AsyncInitializationActivity;
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;-><init>()V
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;->applyOverrides(Landroid/content/Context;Landroid/content/res/Configuration;)Z
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;->dispatchOnInflationComplete()V
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;->finishNativeInitialization()V
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;->getCurrentSmallestScreenWidth(Landroid/content/Context;)I
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;->isActivityFinishingOrDestroyed()Z
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;->maybePreconnect()V
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;->onAttachedToWindow()V
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;->onCreate(Landroid/os/Bundle;)V
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;->onDestroy()V
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;->onFirstDrawComplete()V
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;->onInitialLayoutInflationComplete()V
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;->onNewIntent(Landroid/content/Intent;)V
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;->onPause()V
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;->onPauseWithNative()V
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;->onResume()V
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;->onResumeWithNative()V
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;->onStart()V
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;->onStartWithNative()V
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;->onStop()V
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;->onStopWithNative()V
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;->onWindowFocusChanged(Z)V
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;->performPostInflationStartup()V
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;->performPreInflationStartup()V
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;->postInflationStartup()V
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;->preInflationStartup()V
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;->requiresFirstRunToBeCompleted(Landroid/content/Intent;)Z
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;->setContentViewAndLoadLibrary(Lorg/chromium/chrome/browser/init/ChromeBrowserInitializer$$ExternalSyntheticLambda2;)V
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;->shouldAllocateChildConnection()Z
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;->shouldPreferLightweightFre(Landroid/content/Intent;)Z
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity;->transformSavedInstanceStateForOnCreate(Landroid/os/Bundle;)Landroid/os/Bundle;
-Lorg/chromium/chrome/browser/init/AsyncInitializationActivity$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/init/AsyncInitializationActivity;)V
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/init/AsyncInitializationActivity$1;
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity$1;-><init>(Lorg/chromium/chrome/browser/init/AsyncInitializationActivity;Landroid/app/Activity;)V
-Lorg/chromium/chrome/browser/init/AsyncInitializationActivity$2;
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity$2;-><init>(Lorg/chromium/chrome/browser/init/AsyncInitializationActivity;)V
-HSPLorg/chromium/chrome/browser/init/AsyncInitializationActivity$2;->onLayoutChange(Landroid/view/View;IIIIIIII)V
-Lorg/chromium/chrome/browser/init/BrowserParts;
-HSPLorg/chromium/chrome/browser/init/BrowserParts;->startMinimalBrowser()Z
-Lorg/chromium/chrome/browser/init/ChromeActivityNativeDelegate;
-Lorg/chromium/chrome/browser/init/ChromeBrowserInitializer;
-HSPLorg/chromium/chrome/browser/init/ChromeBrowserInitializer;-><init>()V
-HSPLorg/chromium/chrome/browser/init/ChromeBrowserInitializer;->getInstance()Lorg/chromium/chrome/browser/init/ChromeBrowserInitializer;
-HSPLorg/chromium/chrome/browser/init/ChromeBrowserInitializer;->handlePostNativeStartup(ZLorg/chromium/chrome/browser/init/BrowserParts;)V
-HSPLorg/chromium/chrome/browser/init/ChromeBrowserInitializer;->handlePreNativeStartupAndLoadLibraries(Lorg/chromium/chrome/browser/init/BrowserParts;)V
-HSPLorg/chromium/chrome/browser/init/ChromeBrowserInitializer;->preInflationStartup()V
-HSPLorg/chromium/chrome/browser/init/ChromeBrowserInitializer;->runNowOrAfterFullBrowserStarted(Ljava/lang/Runnable;)V
-Lorg/chromium/chrome/browser/init/ChromeBrowserInitializer$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/init/ChromeBrowserInitializer$$ExternalSyntheticLambda0;-><init>(I)V
-HSPLorg/chromium/chrome/browser/init/ChromeBrowserInitializer$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/init/ChromeBrowserInitializer$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/init/ChromeBrowserInitializer$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/init/ChromeBrowserInitializer;I)V
-HSPLorg/chromium/chrome/browser/init/ChromeBrowserInitializer$$ExternalSyntheticLambda1;->run()V
-Lorg/chromium/chrome/browser/init/ChromeBrowserInitializer$$ExternalSyntheticLambda2;
-HSPLorg/chromium/chrome/browser/init/ChromeBrowserInitializer$$ExternalSyntheticLambda2;-><init>(Lorg/chromium/chrome/browser/init/ChromeBrowserInitializer;Lorg/chromium/chrome/browser/init/BrowserParts;I)V
-HSPLorg/chromium/chrome/browser/init/ChromeBrowserInitializer$$ExternalSyntheticLambda2;->run()V
-Lorg/chromium/chrome/browser/init/ChromeBrowserInitializer$$ExternalSyntheticLambda3;
-HSPLorg/chromium/chrome/browser/init/ChromeBrowserInitializer$$ExternalSyntheticLambda3;-><init>(Lorg/chromium/chrome/browser/init/BrowserParts;I)V
-HSPLorg/chromium/chrome/browser/init/ChromeBrowserInitializer$$ExternalSyntheticLambda3;->run()V
-Lorg/chromium/chrome/browser/init/ChromeBrowserInitializer$$ExternalSyntheticLambda4;
-HSPLorg/chromium/chrome/browser/init/ChromeBrowserInitializer$$ExternalSyntheticLambda4;-><init>(I)V
-HSPLorg/chromium/chrome/browser/init/ChromeBrowserInitializer$$ExternalSyntheticLambda4;->run()V
-Lorg/chromium/chrome/browser/init/ChromeBrowserInitializer$2;
-HSPLorg/chromium/chrome/browser/init/ChromeBrowserInitializer$2;-><init>(Lorg/chromium/chrome/browser/init/BrowserParts;Lorg/chromium/base/task/ChainedTasks;)V
-HSPLorg/chromium/chrome/browser/init/ChromeBrowserInitializer$2;->onSuccess()V
-Lorg/chromium/chrome/browser/init/ChromeBrowserInitializer$3;
-HSPLorg/chromium/chrome/browser/init/ChromeBrowserInitializer$3;-><init>()V
-Lorg/chromium/chrome/browser/init/ChromeBrowserInitializer$4;
-HSPLorg/chromium/chrome/browser/init/ChromeBrowserInitializer$4;-><init>(Lorg/chromium/chrome/browser/init/ChromeBrowserInitializer;)V
-HSPLorg/chromium/chrome/browser/init/ChromeBrowserInitializer$4;->onActivityStateChange(Landroid/app/Activity;I)V
-Lorg/chromium/chrome/browser/init/ChromeLifetimeController;
-HSPLorg/chromium/chrome/browser/init/ChromeLifetimeController;-><init>()V
-Lorg/chromium/chrome/browser/init/ChromeLifetimeController$1;
-HSPLorg/chromium/chrome/browser/init/ChromeLifetimeController$1;-><init>(Lorg/chromium/chrome/browser/init/ChromeLifetimeController;)V
-Lorg/chromium/chrome/browser/init/NativeInitializationController;
-HSPLorg/chromium/chrome/browser/init/NativeInitializationController;-><init>(Lorg/chromium/chrome/browser/init/ChromeActivityNativeDelegate;)V
-HSPLorg/chromium/chrome/browser/init/NativeInitializationController;->signalNativeLibraryLoadedIfReady()V
-HSPLorg/chromium/chrome/browser/init/NativeInitializationController;->startBackgroundTasks(Z)V
-HSPLorg/chromium/chrome/browser/init/NativeInitializationController;->startNowAndProcessPendingItems()V
-Lorg/chromium/chrome/browser/init/NativeInitializationController$1;
-HSPLorg/chromium/chrome/browser/init/NativeInitializationController$1;-><init>(Lorg/chromium/chrome/browser/init/NativeInitializationController;)V
-HSPLorg/chromium/chrome/browser/init/NativeInitializationController$1;->tasksPossiblyComplete(Lorg/chromium/base/library_loader/ProcessInitException;)V
-Lorg/chromium/chrome/browser/init/ProcessInitializationHandler;
-HSPLorg/chromium/chrome/browser/init/ProcessInitializationHandler;-><init>()V
-HSPLorg/chromium/chrome/browser/init/ProcessInitializationHandler;->getInstance()Lorg/chromium/chrome/browser/init/ProcessInitializationHandler;
-HSPLorg/chromium/chrome/browser/init/ProcessInitializationHandler;->handlePreNativeInitialization()V
-HSPLorg/chromium/chrome/browser/init/ProcessInitializationHandler;->initializePreNative()V
-HSPLorg/chromium/chrome/browser/init/ProcessInitializationHandler;->setProcessStateSummaryForAnrs(Z)V
-Lorg/chromium/chrome/browser/init/ProcessInitializationHandler$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/init/ProcessInitializationHandler$$ExternalSyntheticLambda0;-><init>(I)V
-HSPLorg/chromium/chrome/browser/init/ProcessInitializationHandler$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/init/ProcessInitializationHandler$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/init/ProcessInitializationHandler$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/browserservices/ClearDataDialogResultRecorder;)V
-PLorg/chromium/chrome/browser/init/ProcessInitializationHandler$$ExternalSyntheticLambda1;->run()V
-Lorg/chromium/chrome/browser/init/ProcessInitializationHandler$$ExternalSyntheticLambda2;
-HSPLorg/chromium/chrome/browser/init/ProcessInitializationHandler$$ExternalSyntheticLambda2;-><init>(I)V
-Lorg/chromium/chrome/browser/init/ProcessInitializationHandler$1;
-HSPLorg/chromium/chrome/browser/init/ProcessInitializationHandler$1;-><init>()V
-Lorg/chromium/chrome/browser/init/ProcessInitializationHandler$10;
-HSPLorg/chromium/chrome/browser/init/ProcessInitializationHandler$10;-><init>()V
-PLorg/chromium/chrome/browser/init/ProcessInitializationHandler$10;->run()V
-Lorg/chromium/chrome/browser/init/ProcessInitializationHandler$11;
-HSPLorg/chromium/chrome/browser/init/ProcessInitializationHandler$11;-><init>(Lorg/chromium/chrome/browser/init/ProcessInitializationHandler;)V
-HSPLorg/chromium/chrome/browser/init/ProcessInitializationHandler$11;->doInBackground()Ljava/lang/Object;
-HSPLorg/chromium/chrome/browser/init/ProcessInitializationHandler$11;->initCrashReporting()V
-HSPLorg/chromium/chrome/browser/init/ProcessInitializationHandler$11;->onPostExecute(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/init/ProcessInitializationHandler$2;
-HSPLorg/chromium/chrome/browser/init/ProcessInitializationHandler$2;-><init>(ILjava/lang/Object;)V
-HSPLorg/chromium/chrome/browser/init/ProcessInitializationHandler$2;->run()V
-Lorg/chromium/chrome/browser/keyboard_accessory/ManualFillingComponent$SoftKeyboardDelegate;
-Lorg/chromium/chrome/browser/keyboard_accessory/ManualFillingComponentSupplier;
-HSPLorg/chromium/chrome/browser/keyboard_accessory/ManualFillingComponentSupplier;-><init>()V
-Lorg/chromium/chrome/browser/keyboard_accessory/ManualFillingCoordinator;
-HSPLorg/chromium/chrome/browser/keyboard_accessory/ManualFillingCoordinator;-><init>()V
-HSPLorg/chromium/chrome/browser/keyboard_accessory/ManualFillingCoordinator;->isFillingViewShown(Landroid/view/View;)Z
-Lorg/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator;
-HSPLorg/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator;-><init>()V
-HSPLorg/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator;->is(I)Z
-HSPLorg/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator;->isInitialized()Z
-HSPLorg/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator;->onLayoutChange(Landroid/view/View;IIIIIIII)V
-HSPLorg/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator;->pause()V
-HSPLorg/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator;->refreshTabs()V
-HSPLorg/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator;->shouldHideOnBackPress()Z
-Lorg/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator;)V
-Lorg/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator$1;
-HSPLorg/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator$1;-><init>(Lorg/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator;)V
-HSPLorg/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator$1;->onHidden(Lorg/chromium/chrome/browser/tab/Tab;I)V
-Lorg/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator$2;
-HSPLorg/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator$2;-><init>(Lorg/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator;)V
-Lorg/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator$3;
-HSPLorg/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator$3;-><init>(Lorg/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator;)V
-Lorg/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator$4;
-HSPLorg/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator$4;-><init>(Lorg/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;)V
-HSPLorg/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator$4;->didSelectTab(IILorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/keyboard_accessory/ManualFillingProperties;
-Lorg/chromium/chrome/browser/keyboard_accessory/ManualFillingState;
-HSPLorg/chromium/chrome/browser/keyboard_accessory/ManualFillingState;-><init>(Lorg/chromium/content_public/browser/WebContents;)V
-Lorg/chromium/chrome/browser/keyboard_accessory/ManualFillingState$Observer;
-HSPLorg/chromium/chrome/browser/keyboard_accessory/ManualFillingState$Observer;-><init>(Lorg/chromium/chrome/browser/keyboard_accessory/ManualFillingState;Lorg/chromium/content_public/browser/WebContents;)V
-HSPLorg/chromium/chrome/browser/keyboard_accessory/ManualFillingState$Observer;->wasHidden()V
-Lorg/chromium/chrome/browser/keyboard_accessory/ManualFillingStateCache;
-HSPLorg/chromium/chrome/browser/keyboard_accessory/ManualFillingStateCache;-><init>()V
-HSPLorg/chromium/chrome/browser/keyboard_accessory/ManualFillingStateCache;->getStateFor(Lorg/chromium/content_public/browser/WebContents;)Lorg/chromium/chrome/browser/keyboard_accessory/ManualFillingState;
-Lorg/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryCoordinator;
-HSPLorg/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryCoordinator;-><init>(Lorg/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator;Lorg/chromium/ui/AsyncViewStub;)V
-HSPLorg/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryCoordinator;->skipClosingAnimationOnce()V
-Lorg/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryCoordinator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryCoordinator$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryCoordinator;I)V
-Lorg/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryCoordinator$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryCoordinator$$ExternalSyntheticLambda1;-><init>(I)V
-Lorg/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryCoordinator$TabSwitchingDelegate;
-Lorg/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryCoordinator$VisibilityDelegate;
-Lorg/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryMediator;
-HSPLorg/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryMediator;-><init>(Lorg/chromium/ui/modelutil/PropertyModel;Lorg/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator;Lorg/chromium/chrome/browser/keyboard_accessory/tab_layout_component/KeyboardAccessoryTabLayoutMediator;Lorg/chromium/chrome/browser/keyboard_accessory/tab_layout_component/KeyboardAccessoryTabLayoutCoordinator$1;)V
-HSPLorg/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryMediator;->onPropertyChanged(Lorg/chromium/ui/modelutil/PropertyObservable;Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryMediator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryMediator$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryMediator;)V
-Lorg/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryMediator$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryMediator$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryMediator;)V
-Lorg/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryMediator$$ExternalSyntheticLambda2;
-HSPLorg/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryMediator$$ExternalSyntheticLambda2;-><init>(Lorg/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator;)V
-Lorg/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryMetricsRecorder$AccessoryBarObserver;
-HSPLorg/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryMetricsRecorder$AccessoryBarObserver;-><init>(Lorg/chromium/ui/modelutil/PropertyModel;Lorg/chromium/chrome/browser/keyboard_accessory/tab_layout_component/KeyboardAccessoryTabLayoutMediator;)V
-HSPLorg/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryMetricsRecorder$AccessoryBarObserver;->onPropertyChanged(Lorg/chromium/ui/modelutil/PropertyObservable;Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryProperties;
-Lorg/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryProperties$BarItem;
-HSPLorg/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryProperties$BarItem;-><init>(ILorg/chromium/chrome/browser/keyboard_accessory/data/KeyboardAccessoryData$Action;)V
-Lorg/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryProperties$SheetOpenerBarItem;
-HSPLorg/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryProperties$SheetOpenerBarItem;-><init>(Lorg/chromium/chrome/browser/keyboard_accessory/tab_layout_component/KeyboardAccessoryTabLayoutCoordinator$1;)V
-Lorg/chromium/chrome/browser/keyboard_accessory/data/KeyboardAccessoryData$Tab;
-Lorg/chromium/chrome/browser/keyboard_accessory/data/Provider$Observer;
-Lorg/chromium/chrome/browser/keyboard_accessory/sheet_component/AccessorySheetCoordinator;
-HSPLorg/chromium/chrome/browser/keyboard_accessory/sheet_component/AccessorySheetCoordinator;-><init>(Lorg/chromium/ui/AsyncViewStub;)V
-Lorg/chromium/chrome/browser/keyboard_accessory/sheet_component/AccessorySheetCoordinator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/keyboard_accessory/sheet_component/AccessorySheetCoordinator$$ExternalSyntheticLambda0;-><init>()V
-Lorg/chromium/chrome/browser/keyboard_accessory/sheet_component/AccessorySheetMediator;
-HSPLorg/chromium/chrome/browser/keyboard_accessory/sheet_component/AccessorySheetMediator;-><init>(Lorg/chromium/ui/modelutil/PropertyModel;)V
-HSPLorg/chromium/chrome/browser/keyboard_accessory/sheet_component/AccessorySheetMediator;->onPropertyChanged(Lorg/chromium/ui/modelutil/PropertyObservable;Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/keyboard_accessory/sheet_component/AccessorySheetMediator$1;
-HSPLorg/chromium/chrome/browser/keyboard_accessory/sheet_component/AccessorySheetMediator$1;-><init>(Lorg/chromium/chrome/browser/keyboard_accessory/sheet_component/AccessorySheetMediator;)V
-Lorg/chromium/chrome/browser/keyboard_accessory/sheet_component/AccessorySheetMetricsRecorder$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/keyboard_accessory/sheet_component/AccessorySheetMetricsRecorder$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/ui/modelutil/PropertyModel;)V
-HSPLorg/chromium/chrome/browser/keyboard_accessory/sheet_component/AccessorySheetMetricsRecorder$$ExternalSyntheticLambda0;->onPropertyChanged(Lorg/chromium/ui/modelutil/PropertyObservable;Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/keyboard_accessory/sheet_component/AccessorySheetProperties;
-Lorg/chromium/chrome/browser/keyboard_accessory/tab_layout_component/KeyboardAccessoryButtonGroupView$KeyboardAccessoryButtonGroupListener;
-Lorg/chromium/chrome/browser/keyboard_accessory/tab_layout_component/KeyboardAccessoryTabLayoutCoordinator;
-HSPLorg/chromium/chrome/browser/keyboard_accessory/tab_layout_component/KeyboardAccessoryTabLayoutCoordinator;-><init>()V
-Lorg/chromium/chrome/browser/keyboard_accessory/tab_layout_component/KeyboardAccessoryTabLayoutCoordinator$1;
-HSPLorg/chromium/chrome/browser/keyboard_accessory/tab_layout_component/KeyboardAccessoryTabLayoutCoordinator$1;-><init>(Lorg/chromium/chrome/browser/keyboard_accessory/tab_layout_component/KeyboardAccessoryTabLayoutCoordinator;)V
-Lorg/chromium/chrome/browser/keyboard_accessory/tab_layout_component/KeyboardAccessoryTabLayoutCoordinator$AccessoryTabObserver;
-Lorg/chromium/chrome/browser/keyboard_accessory/tab_layout_component/KeyboardAccessoryTabLayoutMediator;
-HSPLorg/chromium/chrome/browser/keyboard_accessory/tab_layout_component/KeyboardAccessoryTabLayoutMediator;-><init>(Lorg/chromium/ui/modelutil/PropertyModel;)V
-HSPLorg/chromium/chrome/browser/keyboard_accessory/tab_layout_component/KeyboardAccessoryTabLayoutMediator;->onPropertyChanged(Lorg/chromium/ui/modelutil/PropertyObservable;Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/keyboard_accessory/tab_layout_component/KeyboardAccessoryTabLayoutMediator$1;
-HSPLorg/chromium/chrome/browser/keyboard_accessory/tab_layout_component/KeyboardAccessoryTabLayoutMediator$1;-><init>(Lorg/chromium/chrome/browser/keyboard_accessory/tab_layout_component/KeyboardAccessoryTabLayoutMediator;)V
-Lorg/chromium/chrome/browser/keyboard_accessory/tab_layout_component/KeyboardAccessoryTabLayoutProperties;
-Lorg/chromium/chrome/browser/language/AppLocaleUtils;
-HSPLorg/chromium/chrome/browser/language/AppLocaleUtils;->getAppLanguagePref()Ljava/lang/String;
-Lorg/chromium/chrome/browser/language/AppLocaleUtils$1;
-HSPLorg/chromium/chrome/browser/language/AppLocaleUtils$1;-><init>()V
-HSPLorg/chromium/chrome/browser/language/AppLocaleUtils$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-Lorg/chromium/chrome/browser/language/GlobalAppLocaleController;
-HSPLorg/chromium/chrome/browser/language/GlobalAppLocaleController;-><init>()V
-Lorg/chromium/chrome/browser/language/LanguageBridge;
-HSPLorg/chromium/chrome/browser/language/LanguageBridge;->getULPLanguagesFromDevice(Ljava/lang/String;)[Ljava/lang/String;
-Lorg/chromium/chrome/browser/layouts/CompositorModelChangeProcessor;
-HSPLorg/chromium/chrome/browser/layouts/CompositorModelChangeProcessor;-><init>(Lorg/chromium/ui/modelutil/PropertyModel;Lorg/chromium/chrome/browser/layouts/scene_layer/SceneLayer;Lorg/chromium/ui/modelutil/PropertyModelChangeProcessor$ViewBinder;Lorg/chromium/chrome/browser/layouts/CompositorModelChangeProcessor$FrameRequestSupplier;)V
-Lorg/chromium/chrome/browser/layouts/CompositorModelChangeProcessor$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/layouts/CompositorModelChangeProcessor$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/layouts/CompositorModelChangeProcessor;)V
-HSPLorg/chromium/chrome/browser/layouts/CompositorModelChangeProcessor$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/layouts/CompositorModelChangeProcessor$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/layouts/CompositorModelChangeProcessor$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/layouts/CompositorModelChangeProcessor;)V
-HSPLorg/chromium/chrome/browser/layouts/CompositorModelChangeProcessor$$ExternalSyntheticLambda1;->onPropertyChanged(Lorg/chromium/ui/modelutil/PropertyObservable;Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/layouts/CompositorModelChangeProcessor$FrameRequestSupplier;
-HSPLorg/chromium/chrome/browser/layouts/CompositorModelChangeProcessor$FrameRequestSupplier;-><init>(Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl$$ExternalSyntheticLambda0;)V
-Lorg/chromium/chrome/browser/layouts/EventFilter;
-HSPLorg/chromium/chrome/browser/layouts/EventFilter;-><init>(Landroid/content/Context;Z)V
-Lorg/chromium/chrome/browser/layouts/FilterLayoutStateObserver;
-HSPLorg/chromium/chrome/browser/layouts/FilterLayoutStateObserver;-><init>(Lorg/chromium/chrome/browser/layouts/LayoutStateProvider$LayoutStateObserver;)V
-HSPLorg/chromium/chrome/browser/layouts/FilterLayoutStateObserver;->onFinishedHiding(I)V
-HSPLorg/chromium/chrome/browser/layouts/FilterLayoutStateObserver;->onFinishedShowing(I)V
-HSPLorg/chromium/chrome/browser/layouts/FilterLayoutStateObserver;->onStartedHiding(IZZ)V
-HSPLorg/chromium/chrome/browser/layouts/FilterLayoutStateObserver;->onStartedShowing(IZ)V
-Lorg/chromium/chrome/browser/layouts/LayoutManagerProvider;
-Lorg/chromium/chrome/browser/layouts/LayoutManagerProvider$Unowned;
-Lorg/chromium/chrome/browser/layouts/LayoutStateProvider;
-Lorg/chromium/chrome/browser/layouts/LayoutStateProvider$LayoutStateObserver;
-HSPLorg/chromium/chrome/browser/layouts/LayoutStateProvider$LayoutStateObserver;->onFinishedHiding(I)V
-HSPLorg/chromium/chrome/browser/layouts/LayoutStateProvider$LayoutStateObserver;->onFinishedShowing(I)V
-HSPLorg/chromium/chrome/browser/layouts/LayoutStateProvider$LayoutStateObserver;->onStartedHiding(IZZ)V
-Lorg/chromium/chrome/browser/layouts/ManagedLayoutManager;
-Lorg/chromium/chrome/browser/layouts/SceneOverlay;
-Lorg/chromium/chrome/browser/layouts/animation/CompositorAnimationHandler;
-HSPLorg/chromium/chrome/browser/layouts/animation/CompositorAnimationHandler;-><init>(Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl$$ExternalSyntheticLambda0;)V
-Lorg/chromium/chrome/browser/layouts/animation/CompositorAnimator;
-Lorg/chromium/chrome/browser/layouts/animation/CompositorAnimator$AnimatorUpdateListener;
-Lorg/chromium/chrome/browser/layouts/scene_layer/SceneLayer;
-HSPLorg/chromium/chrome/browser/layouts/scene_layer/SceneLayer;-><init>()V
-HSPLorg/chromium/chrome/browser/layouts/scene_layer/SceneLayer;->getNativePtr()J
-HSPLorg/chromium/chrome/browser/layouts/scene_layer/SceneLayer;->initializeNative()V
-HSPLorg/chromium/chrome/browser/layouts/scene_layer/SceneLayer;->setNativePtr(J)V
-Lorg/chromium/chrome/browser/layouts/scene_layer/SceneOverlayLayer;
-HSPLorg/chromium/chrome/browser/layouts/scene_layer/SceneOverlayLayer;-><init>()V
-Lorg/chromium/chrome/browser/lens/LensController;
-HSPLorg/chromium/chrome/browser/lens/LensController;-><init>()V
-Lorg/chromium/chrome/browser/lens/LensControllerDelegateImpl;
-HSPLorg/chromium/chrome/browser/lens/LensControllerDelegateImpl;-><init>()V
-Lorg/chromium/chrome/browser/lifecycle/ConfigurationChangedObserver;
-Lorg/chromium/chrome/browser/lifecycle/DestroyObserver;
-Lorg/chromium/chrome/browser/lifecycle/InflationObserver;
-HSPLorg/chromium/chrome/browser/lifecycle/InflationObserver;->onInflationComplete()V
-Lorg/chromium/chrome/browser/lifecycle/LifecycleObserver;
-Lorg/chromium/chrome/browser/lifecycle/NativeInitObserver;
-Lorg/chromium/chrome/browser/lifecycle/PauseResumeWithNativeObserver;
-Lorg/chromium/chrome/browser/lifecycle/RecreateObserver;
-Lorg/chromium/chrome/browser/lifecycle/SaveInstanceStateObserver;
-Lorg/chromium/chrome/browser/lifecycle/StartStopWithNativeObserver;
-Lorg/chromium/chrome/browser/lifecycle/WindowFocusChangedObserver;
-Lorg/chromium/chrome/browser/locale/LocaleManager;
-HSPLorg/chromium/chrome/browser/locale/LocaleManager;-><init>()V
-HSPLorg/chromium/chrome/browser/locale/LocaleManager;->getInstance()Lorg/chromium/chrome/browser/locale/LocaleManager;
-HSPLorg/chromium/chrome/browser/locale/LocaleManager;->showSearchEnginePromoIfNeeded(Landroid/app/Activity;Lorg/chromium/base/Callback;)V
-Lorg/chromium/chrome/browser/locale/LocaleManagerDelegate$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/locale/LocaleManagerDelegate$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/locale/LocaleManagerDelegateImpl;Landroid/app/Activity;Lorg/chromium/base/Callback;)V
-HSPLorg/chromium/chrome/browser/locale/LocaleManagerDelegate$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/locale/LocaleManagerDelegate$1;
-HSPLorg/chromium/chrome/browser/locale/LocaleManagerDelegate$1;-><init>(Lorg/chromium/chrome/browser/locale/LocaleManagerDelegateImpl;)V
-Lorg/chromium/chrome/browser/locale/LocaleManagerDelegateImpl;
-HSPLorg/chromium/chrome/browser/locale/LocaleManagerDelegateImpl;-><init>()V
-Lorg/chromium/chrome/browser/logo/LogoCoordinator$VisibilityObserver;
-Lorg/chromium/chrome/browser/logo/LogoView;
-HSPLorg/chromium/chrome/browser/logo/LogoView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-Lorg/chromium/chrome/browser/logo/LogoView$1;
-HSPLorg/chromium/chrome/browser/logo/LogoView$1;-><init>(Lorg/chromium/chrome/browser/logo/LogoView;)V
-Lorg/chromium/chrome/browser/media/MediaCaptureNotificationServiceImpl;
-HSPLorg/chromium/chrome/browser/media/MediaCaptureNotificationServiceImpl;->updateMediaNotificationForTab(Landroid/content/Context;ILorg/chromium/content_public/browser/WebContents;Lorg/chromium/url/GURL;)V
-PLorg/chromium/chrome/browser/media/MediaViewerUtils;->shouldEnableMediaLauncherActivity()Z
-PLorg/chromium/chrome/browser/media/MediaViewerUtils$$ExternalSyntheticLambda0;-><init>()V
-PLorg/chromium/chrome/browser/media/MediaViewerUtils$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/media/router/ChromeMediaRouterClient;
-HSPLorg/chromium/chrome/browser/media/router/ChromeMediaRouterClient;-><init>()V
-HSPLorg/chromium/chrome/browser/media/router/ChromeMediaRouterClient;->initialize()V
-Lorg/chromium/chrome/browser/media/ui/MediaSessionTabHelper;
-HSPLorg/chromium/chrome/browser/media/ui/MediaSessionTabHelper;-><init>(Lorg/chromium/chrome/browser/tab/TabImpl;)V
-HSPLorg/chromium/chrome/browser/media/ui/MediaSessionTabHelper;->maybeCreateOrUpdateMediaSessionHelper()V
-Lorg/chromium/chrome/browser/media/ui/MediaSessionTabHelper$1;
-HSPLorg/chromium/chrome/browser/media/ui/MediaSessionTabHelper$1;-><init>(Lorg/chromium/chrome/browser/media/ui/MediaSessionTabHelper;)V
-HSPLorg/chromium/chrome/browser/media/ui/MediaSessionTabHelper$1;->onContentChanged(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/media/ui/MediaSessionTabHelper$1;->onDestroyed(Lorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/merchant_viewer/MerchantTrustBottomSheetCoordinator;
-HSPLorg/chromium/chrome/browser/merchant_viewer/MerchantTrustBottomSheetCoordinator;-><init>(Landroidx/appcompat/app/AppCompatActivity;Lorg/chromium/ui/base/ActivityWindowAndroid;Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerImpl;Landroid/view/View;Lorg/chromium/chrome/browser/merchant_viewer/MerchantTrustMetrics;Lorg/chromium/ui/base/IntentRequestTrackerImpl;Lorg/chromium/base/supplier/ObservableSupplier;)V
-Lorg/chromium/chrome/browser/merchant_viewer/MerchantTrustBottomSheetMediator;
-HSPLorg/chromium/chrome/browser/merchant_viewer/MerchantTrustBottomSheetMediator;-><init>(Landroidx/appcompat/app/AppCompatActivity;Lorg/chromium/ui/base/ActivityWindowAndroid;Lorg/chromium/chrome/browser/merchant_viewer/MerchantTrustMetrics;Lorg/chromium/base/supplier/ObservableSupplier;Lorg/chromium/chrome/browser/ui/favicon/FaviconHelper;)V
-Lorg/chromium/chrome/browser/merchant_viewer/MerchantTrustMessageScheduler;
-HSPLorg/chromium/chrome/browser/merchant_viewer/MerchantTrustMessageScheduler;-><init>(Lorg/chromium/components/messages/MessageDispatcher;Lorg/chromium/chrome/browser/merchant_viewer/MerchantTrustMetrics;Lorg/chromium/chrome/browser/ActivityTabProvider;)V
-Lorg/chromium/chrome/browser/merchant_viewer/MerchantTrustMessageViewModel$MessageActionsHandler;
-Lorg/chromium/chrome/browser/merchant_viewer/MerchantTrustMetrics;
-HSPLorg/chromium/chrome/browser/merchant_viewer/MerchantTrustMetrics;-><init>()V
-HSPLorg/chromium/chrome/browser/merchant_viewer/MerchantTrustMetrics;->finishRecordingMessageImpact()V
-Lorg/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsCoordinator;
-HSPLorg/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsCoordinator;-><init>(Landroidx/appcompat/app/AppCompatActivity;Lorg/chromium/ui/base/ActivityWindowAndroid;Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerImpl;Landroid/view/View;Lorg/chromium/components/messages/MessageDispatcher;Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/base/supplier/ObservableSupplier;Lorg/chromium/chrome/browser/merchant_viewer/MerchantTrustMetrics;Lorg/chromium/ui/base/IntentRequestTrackerImpl;)V
-Lorg/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsCoordinator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsCoordinator$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsCoordinator;)V
-Lorg/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsCoordinator$OmniboxIconController;
-Lorg/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsDataProvider;
-HSPLorg/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsDataProvider;-><init>()V
-Lorg/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsEventStorage;
-HSPLorg/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsEventStorage;-><init>(Lorg/chromium/chrome/browser/profiles/Profile;)V
-HSPLorg/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsEventStorage;->setNativePtr(J)V
-Lorg/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsMediator;
-HSPLorg/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsMediator;-><init>(Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsCoordinator$$ExternalSyntheticLambda0;Lorg/chromium/chrome/browser/merchant_viewer/MerchantTrustMetrics;)V
-Lorg/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsMediator$1;
-HSPLorg/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsMediator$1;-><init>(Lorg/chromium/chrome/browser/merchant_viewer/MerchantTrustMetrics;Lorg/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsCoordinator$$ExternalSyntheticLambda0;)V
-HSPLorg/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsMediator$1;->onDestroyed(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsMediator$1;->onDidFinishNavigationInPrimaryMainFrame(Lorg/chromium/chrome/browser/tab/TabImpl;Lorg/chromium/content_public/browser/NavigationHandle;)V
-HSPLorg/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsMediator$1;->onHidden(Lorg/chromium/chrome/browser/tab/Tab;I)V
-Lorg/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsStorageFactory;
-HSPLorg/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsStorageFactory;-><init>(Lorg/chromium/base/supplier/ObservableSupplier;)V
-Lorg/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsStorageFactory$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsStorageFactory$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsStorageFactory;)V
-HSPLorg/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsStorageFactory$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/merchant_viewer/PageInfoStoreInfoController$StoreInfoActionHandler;
-Lorg/chromium/chrome/browser/messages/ChromeMessageAutodismissDurationProvider;
-HSPLorg/chromium/chrome/browser/messages/ChromeMessageAutodismissDurationProvider;-><init>()V
-Lorg/chromium/chrome/browser/messages/ChromeMessageQueueMediator;
-HSPLorg/chromium/chrome/browser/messages/ChromeMessageQueueMediator;-><init>(Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;Lorg/chromium/chrome/browser/messages/MessageContainerCoordinator;Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/base/supplier/OneshotSupplier;Lorg/chromium/base/supplier/ObservableSupplier;Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;Lorg/chromium/components/messages/MessageDispatcherImpl;)V
-HSPLorg/chromium/chrome/browser/messages/ChromeMessageQueueMediator;->setLayoutStateProvider(Lorg/chromium/chrome/browser/layouts/LayoutStateProvider;)V
-HSPLorg/chromium/chrome/browser/messages/ChromeMessageQueueMediator;->suspendQueue()I
-Lorg/chromium/chrome/browser/messages/ChromeMessageQueueMediator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/messages/ChromeMessageQueueMediator$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/messages/ChromeMessageQueueMediator;I)V
-HSPLorg/chromium/chrome/browser/messages/ChromeMessageQueueMediator$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/messages/ChromeMessageQueueMediator$1;
-HSPLorg/chromium/chrome/browser/messages/ChromeMessageQueueMediator$1;-><init>(Lorg/chromium/chrome/browser/messages/ChromeMessageQueueMediator;)V
-HSPLorg/chromium/chrome/browser/messages/ChromeMessageQueueMediator$1;->onFinishedShowing(I)V
-HSPLorg/chromium/chrome/browser/messages/ChromeMessageQueueMediator$1;->onStartedShowing(IZ)V
-Lorg/chromium/chrome/browser/messages/ChromeMessageQueueMediator$2;
-HSPLorg/chromium/chrome/browser/messages/ChromeMessageQueueMediator$2;-><init>(Lorg/chromium/chrome/browser/messages/ChromeMessageQueueMediator;)V
-Lorg/chromium/chrome/browser/messages/ChromeMessageQueueMediator$3;
-HSPLorg/chromium/chrome/browser/messages/ChromeMessageQueueMediator$3;-><init>(Lorg/chromium/chrome/browser/messages/ChromeMessageQueueMediator;)V
-HSPLorg/chromium/chrome/browser/messages/ChromeMessageQueueMediator$3;->onPauseWithNative()V
-HSPLorg/chromium/chrome/browser/messages/ChromeMessageQueueMediator$3;->onResumeWithNative()V
-Lorg/chromium/chrome/browser/messages/ChromeMessageQueueMediator$BrowserControlsObserver;
-HSPLorg/chromium/chrome/browser/messages/ChromeMessageQueueMediator$BrowserControlsObserver;-><init>(Lorg/chromium/chrome/browser/messages/ChromeMessageQueueMediator;)V
-Lorg/chromium/chrome/browser/messages/MessageContainerCoordinator;
-HSPLorg/chromium/chrome/browser/messages/MessageContainerCoordinator;-><init>(Lorg/chromium/components/messages/MessageContainer;Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;)V
-Lorg/chromium/chrome/browser/metrics/ActivityTabStartupMetricsTracker;
-HSPLorg/chromium/chrome/browser/metrics/ActivityTabStartupMetricsTracker;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorSupplier;)V
-Lorg/chromium/chrome/browser/metrics/ActivityTabStartupMetricsTracker$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/metrics/ActivityTabStartupMetricsTracker$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/metrics/ActivityTabStartupMetricsTracker;)V
-HSPLorg/chromium/chrome/browser/metrics/ActivityTabStartupMetricsTracker$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/metrics/ActivityTabStartupMetricsTracker$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/metrics/ActivityTabStartupMetricsTracker$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/metrics/ActivityTabStartupMetricsTracker;)V
-Lorg/chromium/chrome/browser/metrics/ActivityTabStartupMetricsTracker$1;
-HSPLorg/chromium/chrome/browser/metrics/ActivityTabStartupMetricsTracker$1;-><init>(Lorg/chromium/chrome/browser/metrics/ActivityTabStartupMetricsTracker;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;)V
-HSPLorg/chromium/chrome/browser/metrics/ActivityTabStartupMetricsTracker$1;->onDidFinishNavigationInPrimaryMainFrame(Lorg/chromium/chrome/browser/tab/TabImpl;Lorg/chromium/content_public/browser/NavigationHandle;)V
-Lorg/chromium/chrome/browser/metrics/ActivityTabStartupMetricsTracker$2;
-HSPLorg/chromium/chrome/browser/metrics/ActivityTabStartupMetricsTracker$2;-><init>(Lorg/chromium/chrome/browser/metrics/ActivityTabStartupMetricsTracker;)V
-Lorg/chromium/chrome/browser/metrics/ActivityTabStartupMetricsTracker$PageLoadMetricsObserverImpl;
-HSPLorg/chromium/chrome/browser/metrics/ActivityTabStartupMetricsTracker$PageLoadMetricsObserverImpl;-><init>(Lorg/chromium/chrome/browser/metrics/ActivityTabStartupMetricsTracker;)V
-Lorg/chromium/chrome/browser/metrics/LaunchMetrics;
-Lorg/chromium/chrome/browser/metrics/MainIntentBehaviorMetrics;
-HSPLorg/chromium/chrome/browser/metrics/MainIntentBehaviorMetrics;-><init>()V
-PLorg/chromium/chrome/browser/metrics/MainIntentBehaviorMetrics;->logLaunchBehavior(Z)V
-Lorg/chromium/chrome/browser/metrics/MainIntentBehaviorMetrics$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/metrics/MainIntentBehaviorMetrics$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/metrics/MainIntentBehaviorMetrics;)V
-PLorg/chromium/chrome/browser/metrics/MainIntentBehaviorMetrics$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/metrics/MainIntentBehaviorMetrics$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/metrics/MainIntentBehaviorMetrics$$ExternalSyntheticLambda1;-><init>()V
-HSPLorg/chromium/chrome/browser/metrics/MainIntentBehaviorMetrics$$ExternalSyntheticLambda1;->onApplicationStateChange(I)V
-Lorg/chromium/chrome/browser/metrics/PackageMetrics;
-HSPLorg/chromium/chrome/browser/metrics/PackageMetrics;->recordPackageStats()V
-Lorg/chromium/chrome/browser/metrics/PackageMetrics$$ExternalSyntheticApiModelOutline0;
-HSPLorg/chromium/chrome/browser/metrics/PackageMetrics$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/app/usage/StorageStats;)J
-HSPLorg/chromium/chrome/browser/metrics/PackageMetrics$$ExternalSyntheticApiModelOutline0;->m$2(Landroid/app/usage/StorageStats;)J
-HSPLorg/chromium/chrome/browser/metrics/PackageMetrics$$ExternalSyntheticApiModelOutline0;->m()Ljava/lang/Class;
-HSPLorg/chromium/chrome/browser/metrics/PackageMetrics$$ExternalSyntheticApiModelOutline0;->m()Ljava/util/UUID;
-HSPLorg/chromium/chrome/browser/metrics/PackageMetrics$$ExternalSyntheticApiModelOutline0;->m(Landroid/app/usage/StorageStats;)J
-HSPLorg/chromium/chrome/browser/metrics/PackageMetrics$$ExternalSyntheticApiModelOutline0;->m(Landroid/app/usage/StorageStatsManager;Ljava/util/UUID;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/app/usage/StorageStats;
-HSPLorg/chromium/chrome/browser/metrics/PackageMetrics$$ExternalSyntheticApiModelOutline0;->m(Ljava/lang/Object;)Landroid/app/usage/StorageStatsManager;
-Lorg/chromium/chrome/browser/metrics/PackageMetrics$PackageMetricsData;
-HSPLorg/chromium/chrome/browser/metrics/PackageMetrics$PackageMetricsData;-><init>()V
-Lorg/chromium/chrome/browser/metrics/PageLoadMetrics;
-Lorg/chromium/chrome/browser/metrics/PageLoadMetrics$Observer;
-Lorg/chromium/chrome/browser/metrics/SimpleStartupForegroundSessionDetector;
-Lorg/chromium/chrome/browser/metrics/UmaSessionStats;
-HSPLorg/chromium/chrome/browser/metrics/UmaSessionStats;-><init>(Landroid/content/Context;)V
-HSPLorg/chromium/chrome/browser/metrics/UmaSessionStats;->hasVisibleActivity()Z
-HSPLorg/chromium/chrome/browser/metrics/UmaSessionStats;->isMetricsServiceAvailable()Z
-HSPLorg/chromium/chrome/browser/metrics/UmaSessionStats;->updateMetricsServiceState()V
-Lorg/chromium/chrome/browser/metrics/UmaSessionStats$1;
-HSPLorg/chromium/chrome/browser/metrics/UmaSessionStats$1;-><init>(Lorg/chromium/chrome/browser/metrics/UmaSessionStats;)V
-Lorg/chromium/chrome/browser/metrics/UmaSessionStats$2;
-HSPLorg/chromium/chrome/browser/metrics/UmaSessionStats$2;-><init>(Lorg/chromium/chrome/browser/metrics/UmaSessionStats;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;)V
-HSPLorg/chromium/chrome/browser/metrics/UmaSessionStats$2;->onPageLoadFinished(Lorg/chromium/chrome/browser/tab/Tab;Lorg/chromium/url/GURL;)V
-Lorg/chromium/chrome/browser/metrics/UmaUtils;
-HSPLorg/chromium/chrome/browser/metrics/UmaUtils;->getApplicationStartTime()J
-HSPLorg/chromium/chrome/browser/metrics/UmaUtils;->getProcessStartTime()J
-HSPLorg/chromium/chrome/browser/metrics/UmaUtils;->getStandbyBucket(Landroid/content/Context;)I
-HSPLorg/chromium/chrome/browser/metrics/UmaUtils;->recordForegroundStartTimeWithNative()V
-Lorg/chromium/chrome/browser/metrics/UmaUtils$$ExternalSyntheticApiModelOutline0;
-HSPLorg/chromium/chrome/browser/metrics/UmaUtils$$ExternalSyntheticApiModelOutline0;->m(Landroid/app/ActivityManager;)Z
-HSPLorg/chromium/chrome/browser/metrics/UmaUtils$$ExternalSyntheticApiModelOutline0;->m(Landroid/app/usage/UsageStatsManager;)I
-Lorg/chromium/chrome/browser/metrics/VariationsSession;
-HSPLorg/chromium/chrome/browser/metrics/VariationsSession;-><init>()V
-Lorg/chromium/chrome/browser/modaldialog/ChromeTabModalPresenter;
-HSPLorg/chromium/chrome/browser/modaldialog/ChromeTabModalPresenter;-><init>(Landroid/app/Activity;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/chrome/browser/fullscreen/FullscreenManager;Lorg/chromium/chrome/browser/browser_controls/BrowserControlsVisibilityManager;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;)V
-Lorg/chromium/chrome/browser/modaldialog/ChromeTabModalPresenter$TabModalBrowserControlsVisibilityDelegate;
-HSPLorg/chromium/chrome/browser/modaldialog/ChromeTabModalPresenter$TabModalBrowserControlsVisibilityDelegate;-><init>()V
-Lorg/chromium/chrome/browser/modaldialog/TabModalLifetimeHandler;
-HSPLorg/chromium/chrome/browser/modaldialog/TabModalLifetimeHandler;-><init>(Landroid/app/Activity;Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;Lorg/chromium/ui/modaldialog/ModalDialogManager;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda4;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda4;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda4;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/base/supplier/UnownedUserDataSupplier;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda4;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda4;Lorg/chromium/chrome/browser/back_press/BackPressManager;)V
-HSPLorg/chromium/chrome/browser/modaldialog/TabModalLifetimeHandler;->handleTabChanged(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/modaldialog/TabModalLifetimeHandler;->onDestroy()V
-HSPLorg/chromium/chrome/browser/modaldialog/TabModalLifetimeHandler;->onFinishNativeInitialization()V
-HSPLorg/chromium/chrome/browser/modaldialog/TabModalLifetimeHandler;->updateSuspensionState()V
-Lorg/chromium/chrome/browser/modaldialog/TabModalLifetimeHandler$1;
-HSPLorg/chromium/chrome/browser/modaldialog/TabModalLifetimeHandler$1;-><init>(Lorg/chromium/chrome/browser/modaldialog/TabModalLifetimeHandler;)V
-HSPLorg/chromium/chrome/browser/modaldialog/TabModalLifetimeHandler$1;->onDestroyed(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/modaldialog/TabModalLifetimeHandler$1;->onInteractabilityChanged(Lorg/chromium/chrome/browser/tab/Tab;Z)V
-Lorg/chromium/chrome/browser/modaldialog/TabModalLifetimeHandler$2;
-HSPLorg/chromium/chrome/browser/modaldialog/TabModalLifetimeHandler$2;-><init>(Lorg/chromium/chrome/browser/modaldialog/TabModalLifetimeHandler;Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;)V
-HSPLorg/chromium/chrome/browser/modaldialog/TabModalLifetimeHandler$2;->didSelectTab(IILorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/modules/ModuleInstallUi$FailureUiListener;
-Lorg/chromium/chrome/browser/mojo/ChromeInterfaceRegistrar;
-HSPLorg/chromium/chrome/browser/mojo/ChromeInterfaceRegistrar;->registerMojoInterfaces()V
-Lorg/chromium/chrome/browser/mojo/ChromeInterfaceRegistrar$ChromeWebContentsInterfaceRegistrar;
-HSPLorg/chromium/chrome/browser/mojo/ChromeInterfaceRegistrar$ChromeWebContentsInterfaceRegistrar;-><init>()V
-HSPLorg/chromium/chrome/browser/mojo/ChromeInterfaceRegistrar$ChromeWebContentsInterfaceRegistrar;-><init>(I)V
-HSPLorg/chromium/chrome/browser/mojo/ChromeInterfaceRegistrar$ChromeWebContentsInterfaceRegistrar;-><init>(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/multiwindow/MultiInstanceChromeTabbedActivity;
-Lorg/chromium/chrome/browser/multiwindow/MultiInstanceManager;
-HSPLorg/chromium/chrome/browser/multiwindow/MultiInstanceManager;-><init>(Landroid/app/Activity;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/chrome/browser/multiwindow/MultiWindowModeStateDispatcherImpl;Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;Lorg/chromium/components/browser_ui/widget/MenuOrKeyboardActionController;)V
-HSPLorg/chromium/chrome/browser/multiwindow/MultiInstanceManager;->allocInstanceId(IIZ)I
-HSPLorg/chromium/chrome/browser/multiwindow/MultiInstanceManager;->initialize(II)V
-HSPLorg/chromium/chrome/browser/multiwindow/MultiInstanceManager;->isTabModelMergingEnabled()Z
-HSPLorg/chromium/chrome/browser/multiwindow/MultiInstanceManager;->killOtherTask()V
-HSPLorg/chromium/chrome/browser/multiwindow/MultiInstanceManager;->onDestroy()V
-HSPLorg/chromium/chrome/browser/multiwindow/MultiInstanceManager;->onFinishNativeInitialization()V
-HSPLorg/chromium/chrome/browser/multiwindow/MultiInstanceManager;->onPauseWithNative()V
-HSPLorg/chromium/chrome/browser/multiwindow/MultiInstanceManager;->onResumeWithNative()V
-Lorg/chromium/chrome/browser/multiwindow/MultiInstanceManager$1;
-HSPLorg/chromium/chrome/browser/multiwindow/MultiInstanceManager$1;-><init>(Lorg/chromium/chrome/browser/multiwindow/MultiInstanceManager;)V
-Lorg/chromium/chrome/browser/multiwindow/MultiInstanceState$$ExternalSyntheticApiModelOutline0;
-HSPLorg/chromium/chrome/browser/multiwindow/MultiInstanceState$$ExternalSyntheticApiModelOutline0;->m(Landroid/app/ActivityManager$RecentTaskInfo;)Landroid/content/ComponentName;
-Lorg/chromium/chrome/browser/multiwindow/MultiWindowModeStateDispatcher$MultiWindowModeObserver;
-Lorg/chromium/chrome/browser/multiwindow/MultiWindowModeStateDispatcherImpl;
-HSPLorg/chromium/chrome/browser/multiwindow/MultiWindowModeStateDispatcherImpl;-><init>(Landroid/app/Activity;)V
-Lorg/chromium/chrome/browser/multiwindow/MultiWindowUtils;
-HSPLorg/chromium/chrome/browser/multiwindow/MultiWindowUtils;-><init>()V
-HSPLorg/chromium/chrome/browser/multiwindow/MultiWindowUtils;->areMultipleChromeInstancesRunning(Landroid/content/Context;)Z
-HSPLorg/chromium/chrome/browser/multiwindow/MultiWindowUtils;->getActivityNameFromTask(Landroid/app/ActivityManager$AppTask;)Ljava/lang/String;
-HSPLorg/chromium/chrome/browser/multiwindow/MultiWindowUtils;->getMaxInstances()I
-HSPLorg/chromium/chrome/browser/multiwindow/MultiWindowUtils;->getOpenInOtherWindowActivity(Landroid/app/Activity;)Ljava/lang/Class;
-HSPLorg/chromium/chrome/browser/multiwindow/MultiWindowUtils;->isInMultiDisplayMode(Landroid/app/Activity;)Z
-HSPLorg/chromium/chrome/browser/multiwindow/MultiWindowUtils;->isInMultiWindowMode(Landroid/app/Activity;)Z
-HSPLorg/chromium/chrome/browser/multiwindow/MultiWindowUtils;->isMultiInstanceApi31Enabled()Z
-HSPLorg/chromium/chrome/browser/multiwindow/MultiWindowUtils;->onActivityStateChange(Landroid/app/Activity;I)V
-Lorg/chromium/chrome/browser/native_page/NativePageAssassin;
-HSPLorg/chromium/chrome/browser/native_page/NativePageAssassin;-><init>()V
-Lorg/chromium/chrome/browser/native_page/NativePageFactory;
-HSPLorg/chromium/chrome/browser/native_page/NativePageFactory;-><init>(Landroid/app/Activity;Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetController;Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/ui/base/WindowAndroid;Lorg/chromium/base/supplier/Supplier;Ljava/util/function/BooleanSupplier;Lorg/chromium/base/jank_tracker/JankTracker;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/chrome/browser/share/crow/CrowButtonDelegate;)V
-Lorg/chromium/chrome/browser/net/connectivitydetector/ConnectivityDetector;
-HSPLorg/chromium/chrome/browser/net/connectivitydetector/ConnectivityDetector;-><init>(Lorg/chromium/chrome/browser/net/connectivitydetector/ConnectivityDetector$Observer;)V
-HSPLorg/chromium/chrome/browser/net/connectivitydetector/ConnectivityDetector;->onConnectionTypeChanged(I)V
-HSPLorg/chromium/chrome/browser/net/connectivitydetector/ConnectivityDetector;->performConnectivityCheck()V
-HSPLorg/chromium/chrome/browser/net/connectivitydetector/ConnectivityDetector;->processConnectivityCheckResult()V
-HSPLorg/chromium/chrome/browser/net/connectivitydetector/ConnectivityDetector;->setConnectionState(I)V
-HSPLorg/chromium/chrome/browser/net/connectivitydetector/ConnectivityDetector;->stopConnectivityCheck()V
-Lorg/chromium/chrome/browser/net/connectivitydetector/ConnectivityDetector$DelegateImpl;
-HSPLorg/chromium/chrome/browser/net/connectivitydetector/ConnectivityDetector$DelegateImpl;-><init>()V
-Lorg/chromium/chrome/browser/net/connectivitydetector/ConnectivityDetector$Observer;
-Lorg/chromium/chrome/browser/night_mode/GlobalNightModeStateController;
-HSPLorg/chromium/chrome/browser/night_mode/GlobalNightModeStateController;-><init>(Lorg/chromium/chrome/browser/night_mode/SystemNightModeMonitor;Lorg/chromium/chrome/browser/night_mode/PowerSavingModeMonitor;Lorg/chromium/chrome/browser/preferences/SharedPreferencesManager;)V
-HSPLorg/chromium/chrome/browser/night_mode/GlobalNightModeStateController;->addObserver(Lorg/chromium/chrome/browser/night_mode/NightModeStateProvider$Observer;)V
-HSPLorg/chromium/chrome/browser/night_mode/GlobalNightModeStateController;->isInNightMode()Z
-HSPLorg/chromium/chrome/browser/night_mode/GlobalNightModeStateController;->onApplicationStateChange(I)V
-HSPLorg/chromium/chrome/browser/night_mode/GlobalNightModeStateController;->removeObserver(Lorg/chromium/chrome/browser/night_mode/NightModeStateProvider$Observer;)V
-HSPLorg/chromium/chrome/browser/night_mode/GlobalNightModeStateController;->start()V
-HSPLorg/chromium/chrome/browser/night_mode/GlobalNightModeStateController;->updateNightMode()V
-Lorg/chromium/chrome/browser/night_mode/GlobalNightModeStateController$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/night_mode/GlobalNightModeStateController$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/night_mode/GlobalNightModeStateController;)V
-Lorg/chromium/chrome/browser/night_mode/GlobalNightModeStateController$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/night_mode/GlobalNightModeStateController$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/night_mode/GlobalNightModeStateController;)V
-HSPLorg/chromium/chrome/browser/night_mode/GlobalNightModeStateController$$ExternalSyntheticLambda1;->onPreferenceChanged(Ljava/lang/String;)V
-Lorg/chromium/chrome/browser/night_mode/GlobalNightModeStateProviderHolder;
-Lorg/chromium/chrome/browser/night_mode/NightModeStateProvider;
-HSPLorg/chromium/chrome/browser/night_mode/NightModeStateProvider;->shouldOverrideConfiguration()Z
-Lorg/chromium/chrome/browser/night_mode/NightModeStateProvider$Observer;
-Lorg/chromium/chrome/browser/night_mode/NightModeUtils;
-HSPLorg/chromium/chrome/browser/night_mode/NightModeUtils;->wrapContextWithNightModeConfig(ILandroid/content/Context;Z)Landroid/view/ContextThemeWrapper;
-Lorg/chromium/chrome/browser/night_mode/PowerSavingModeMonitor;
-HSPLorg/chromium/chrome/browser/night_mode/PowerSavingModeMonitor;-><init>()V
-HSPLorg/chromium/chrome/browser/night_mode/PowerSavingModeMonitor;->updateAccordingToAppState()V
-HSPLorg/chromium/chrome/browser/night_mode/PowerSavingModeMonitor;->updatePowerSaveMode()V
-Lorg/chromium/chrome/browser/night_mode/PowerSavingModeMonitor$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/night_mode/PowerSavingModeMonitor$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/night_mode/PowerSavingModeMonitor;)V
-HSPLorg/chromium/chrome/browser/night_mode/PowerSavingModeMonitor$$ExternalSyntheticLambda0;->onApplicationStateChange(I)V
-Lorg/chromium/chrome/browser/night_mode/PowerSavingModeMonitor$1;
-HSPLorg/chromium/chrome/browser/night_mode/PowerSavingModeMonitor$1;-><init>(Lorg/chromium/chrome/browser/night_mode/PowerSavingModeMonitor;)V
-Lorg/chromium/chrome/browser/night_mode/SystemNightModeMonitor;
-HSPLorg/chromium/chrome/browser/night_mode/SystemNightModeMonitor;-><init>()V
-HSPLorg/chromium/chrome/browser/night_mode/SystemNightModeMonitor;->getInstance()Lorg/chromium/chrome/browser/night_mode/SystemNightModeMonitor;
-Lorg/chromium/chrome/browser/night_mode/SystemNightModeMonitor$Observer;
-Lorg/chromium/chrome/browser/notifications/NotificationPlatformBridge;
-HSPLorg/chromium/chrome/browser/notifications/NotificationPlatformBridge;-><init>(J)V
-HSPLorg/chromium/chrome/browser/notifications/NotificationPlatformBridge;->create(J)Lorg/chromium/chrome/browser/notifications/NotificationPlatformBridge;
-Lorg/chromium/chrome/browser/notifications/NotificationSettingsBridge;
-HSPLorg/chromium/chrome/browser/notifications/NotificationSettingsBridge;->getSiteChannels()[Lorg/chromium/chrome/browser/notifications/NotificationSettingsBridge$SiteChannel;
-Lorg/chromium/chrome/browser/notifications/NotificationSettingsBridge$SiteChannel;
-Lorg/chromium/chrome/browser/notifications/NotificationTriggerScheduler;
-HSPLorg/chromium/chrome/browser/notifications/NotificationTriggerScheduler;-><init>(Lcom/google/android/datatransport/runtime/TransportImpl$$ExternalSyntheticLambda0;)V
-HSPLorg/chromium/chrome/browser/notifications/NotificationTriggerScheduler;->getInstance()Lorg/chromium/chrome/browser/notifications/NotificationTriggerScheduler;
-Lorg/chromium/chrome/browser/notifications/NotificationTriggerScheduler$LazyHolder;
-Lorg/chromium/chrome/browser/notifications/channels/ChannelsUpdater;
-HSPLorg/chromium/chrome/browser/notifications/channels/ChannelsUpdater;-><init>(ZLorg/chromium/chrome/browser/preferences/SharedPreferencesManager;Lorg/chromium/components/browser_ui/notifications/channels/ChannelsInitializer;I)V
-HSPLorg/chromium/chrome/browser/notifications/channels/ChannelsUpdater;->updateChannels()V
-Lorg/chromium/chrome/browser/notifications/channels/ChannelsUpdater$LazyHolder;
-Lorg/chromium/chrome/browser/notifications/channels/ChromeChannelDefinitions;
-Lorg/chromium/chrome/browser/notifications/channels/ChromeChannelDefinitions$PredefinedChannelGroups;
-Lorg/chromium/chrome/browser/notifications/channels/ChromeChannelDefinitions$PredefinedChannels;
-Lorg/chromium/chrome/browser/notifications/channels/SiteChannelsManager;
-HSPLorg/chromium/chrome/browser/notifications/channels/SiteChannelsManager;-><init>(Lorg/chromium/components/browser_ui/notifications/NotificationManagerProxyImpl;)V
-HSPLorg/chromium/chrome/browser/notifications/channels/SiteChannelsManager;->getSiteChannels()[Lorg/chromium/chrome/browser/notifications/NotificationSettingsBridge$SiteChannel;
-HSPLorg/chromium/chrome/browser/notifications/channels/SiteChannelsManager;->isValidSiteChannelId(Ljava/lang/String;)Z
-Lorg/chromium/chrome/browser/notifications/channels/SiteChannelsManager$LazyHolder;
-Lorg/chromium/chrome/browser/notifications/chime/ChimeFeatures;
-Lorg/chromium/chrome/browser/notifications/permissions/NotificationPermissionController;
-HSPLorg/chromium/chrome/browser/notifications/permissions/NotificationPermissionController;-><init>(Lorg/chromium/ui/base/ActivityWindowAndroid;Lorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator$$ExternalSyntheticLambda0;)V
-HSPLorg/chromium/chrome/browser/notifications/permissions/NotificationPermissionController;->requestPermissionIfNeeded()Z
-Lorg/chromium/chrome/browser/ntp/FeedPositionUtils$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/ntp/FeedPositionUtils$$ExternalSyntheticLambda0;-><init>()V
-HSPLorg/chromium/chrome/browser/ntp/FeedPositionUtils$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/ntp/IncognitoCookieControlsManager;
-HSPLorg/chromium/chrome/browser/ntp/IncognitoCookieControlsManager;-><init>()V
-Lorg/chromium/chrome/browser/ntp/IncognitoCookieControlsManager$Observer;
-Lorg/chromium/chrome/browser/ntp/NewTabPage;
-Lorg/chromium/chrome/browser/ntp/NewTabPageUtils;
-HSPLorg/chromium/chrome/browser/ntp/NewTabPageUtils;->decodeOriginFromNtpUrl(Ljava/lang/String;)I
-Lorg/chromium/chrome/browser/ntp/RecentlyClosedBridge;
-HSPLorg/chromium/chrome/browser/ntp/RecentlyClosedBridge;-><init>(Lorg/chromium/chrome/browser/profiles/Profile;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;)V
-Lorg/chromium/chrome/browser/ntp/search/SearchBoxContainerView;
-HSPLorg/chromium/chrome/browser/ntp/search/SearchBoxContainerView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-Lorg/chromium/chrome/browser/ntp/search/SearchBoxCoordinator;
-HSPLorg/chromium/chrome/browser/ntp/search/SearchBoxCoordinator;-><init>(Landroid/content/Context;Landroid/view/ViewGroup;)V
-HSPLorg/chromium/chrome/browser/ntp/search/SearchBoxCoordinator;->addLensButtonClickListener(Landroid/view/View$OnClickListener;)V
-HSPLorg/chromium/chrome/browser/ntp/search/SearchBoxCoordinator;->addVoiceSearchButtonClickListener(Landroid/view/View$OnClickListener;)V
-Lorg/chromium/chrome/browser/ntp/search/SearchBoxMediator;
-HSPLorg/chromium/chrome/browser/ntp/search/SearchBoxMediator;-><init>(Landroid/content/Context;Lorg/chromium/ui/modelutil/PropertyModel;Landroid/view/ViewGroup;)V
-HSPLorg/chromium/chrome/browser/ntp/search/SearchBoxMediator;->onAssistantVoiceSearchServiceChanged()V
-HSPLorg/chromium/chrome/browser/ntp/search/SearchBoxMediator;->onDestroy()V
-HSPLorg/chromium/chrome/browser/ntp/search/SearchBoxMediator;->onFinishNativeInitialization()V
-Lorg/chromium/chrome/browser/ntp/search/SearchBoxMediator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/ntp/search/SearchBoxMediator$$ExternalSyntheticLambda0;-><init>(ILjava/lang/Object;)V
-Lorg/chromium/chrome/browser/ntp/search/SearchBoxProperties;
-Lorg/chromium/chrome/browser/ntp/search/SearchBoxViewBinder;
-HSPLorg/chromium/chrome/browser/ntp/search/SearchBoxViewBinder;-><init>()V
-HSPLorg/chromium/chrome/browser/ntp/search/SearchBoxViewBinder;->bind(Lorg/chromium/ui/modelutil/PropertyObservable;Ljava/lang/Object;Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/offlinepages/AutoFetchNotifier;
-HSPLorg/chromium/chrome/browser/offlinepages/AutoFetchNotifier;->autoFetchInProgressNotificationCanceled()Z
-Lorg/chromium/chrome/browser/offlinepages/OfflinePageBridge;
-HSPLorg/chromium/chrome/browser/offlinepages/OfflinePageBridge;-><init>(J)V
-HSPLorg/chromium/chrome/browser/offlinepages/OfflinePageBridge;->create(J)Lorg/chromium/chrome/browser/offlinepages/OfflinePageBridge;
-HSPLorg/chromium/chrome/browser/offlinepages/OfflinePageBridge;->getForProfile(Lorg/chromium/chrome/browser/profiles/Profile;)Lorg/chromium/chrome/browser/offlinepages/OfflinePageBridge;
-HSPLorg/chromium/chrome/browser/offlinepages/OfflinePageBridge;->offlinePageModelLoaded()V
-Lorg/chromium/chrome/browser/offlinepages/OfflinePageBridge$SavePageCallback;
-Lorg/chromium/chrome/browser/offlinepages/OfflinePageTabData;
-HSPLorg/chromium/chrome/browser/offlinepages/OfflinePageTabData;-><init>()V
-Lorg/chromium/chrome/browser/offlinepages/OfflinePageTabObserver;
-HSPLorg/chromium/chrome/browser/offlinepages/OfflinePageTabObserver;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager;Lorg/chromium/chrome/browser/offlinepages/OfflinePageTabObserver$3;)V
-HSPLorg/chromium/chrome/browser/offlinepages/OfflinePageTabObserver;->maybeShowReloadSnackbar(Lorg/chromium/chrome/browser/tab/Tab;Z)V
-Lorg/chromium/chrome/browser/offlinepages/OfflinePageTabObserver$1;
-HSPLorg/chromium/chrome/browser/offlinepages/OfflinePageTabObserver$1;-><init>()V
-HSPLorg/chromium/chrome/browser/offlinepages/OfflinePageTabObserver$1;->onActivityStateChange(Landroid/app/Activity;I)V
-Lorg/chromium/chrome/browser/offlinepages/OfflinePageTabObserver$2;
-HSPLorg/chromium/chrome/browser/offlinepages/OfflinePageTabObserver$2;-><init>(Lorg/chromium/chrome/browser/offlinepages/OfflinePageTabObserver;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;)V
-Lorg/chromium/chrome/browser/offlinepages/OfflinePageTabObserver$3;
-HSPLorg/chromium/chrome/browser/offlinepages/OfflinePageTabObserver$3;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;)V
-Lorg/chromium/chrome/browser/offlinepages/OfflinePageUtils;
-HSPLorg/chromium/chrome/browser/offlinepages/OfflinePageUtils;->getInstance()Lorg/chromium/chrome/browser/offlinepages/OfflinePageUtils$1;
-HSPLorg/chromium/chrome/browser/offlinepages/OfflinePageUtils;->isOfflinePage(Lorg/chromium/chrome/browser/tab/Tab;)Z
-HSPLorg/chromium/chrome/browser/offlinepages/OfflinePageUtils;->isShowingTrustedOfflinePage(Lorg/chromium/content_public/browser/WebContents;)Z
-Lorg/chromium/chrome/browser/offlinepages/OfflinePageUtils$1;
-HSPLorg/chromium/chrome/browser/offlinepages/OfflinePageUtils$1;-><init>(I)V
-Lorg/chromium/chrome/browser/offlinepages/OfflinePageUtils$3;
-HSPLorg/chromium/chrome/browser/offlinepages/OfflinePageUtils$3;-><init>()V
-HSPLorg/chromium/chrome/browser/offlinepages/OfflinePageUtils$3;->onActivityStateChange(Landroid/app/Activity;I)V
-Lorg/chromium/chrome/browser/offlinepages/OfflinePageUtils$RecentTabTracker;
-HSPLorg/chromium/chrome/browser/offlinepages/OfflinePageUtils$RecentTabTracker;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;)V
-HSPLorg/chromium/chrome/browser/offlinepages/OfflinePageUtils$RecentTabTracker;->didAddTab(Lorg/chromium/chrome/browser/tab/Tab;IIZ)V
-Lorg/chromium/chrome/browser/offlinepages/OfflinePageUtils$TabRestoreTracker;
-HSPLorg/chromium/chrome/browser/offlinepages/OfflinePageUtils$TabRestoreTracker;-><init>()V
-HSPLorg/chromium/chrome/browser/offlinepages/OfflinePageUtils$TabRestoreTracker;->onPageLoadFinished(Lorg/chromium/chrome/browser/tab/Tab;Lorg/chromium/url/GURL;)V
-Lorg/chromium/chrome/browser/offlinepages/downloads/OfflinePageDownloadBridge;
-HSPLorg/chromium/chrome/browser/offlinepages/downloads/OfflinePageDownloadBridge;-><init>()V
-Lorg/chromium/chrome/browser/offlinepages/indicator/OfflineDetector;
-HSPLorg/chromium/chrome/browser/offlinepages/indicator/OfflineDetector;-><init>(Lorg/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2$$ExternalSyntheticLambda0;Lorg/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2$$ExternalSyntheticLambda0;)V
-HSPLorg/chromium/chrome/browser/offlinepages/indicator/OfflineDetector;->logToAdbConsoleNow(Ljava/lang/String;)V
-HSPLorg/chromium/chrome/browser/offlinepages/indicator/OfflineDetector;->onApplicationStateChange(I)V
-HSPLorg/chromium/chrome/browser/offlinepages/indicator/OfflineDetector;->updateState()V
-Lorg/chromium/chrome/browser/offlinepages/indicator/OfflineDetector$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/offlinepages/indicator/OfflineDetector$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/offlinepages/indicator/OfflineDetector;)V
-HSPLorg/chromium/chrome/browser/offlinepages/indicator/OfflineDetector$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2;
-HSPLorg/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2;-><init>(Landroidx/appcompat/app/AppCompatActivity;Lorg/chromium/chrome/browser/status_indicator/StatusIndicatorCoordinator;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/base/supplier/Supplier;)V
-HSPLorg/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2;->onApplicationStateChanged(Z)V
-HSPLorg/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2;->updateStatusIndicator(Z)V
-Lorg/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2;I)V
-HSPLorg/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2;I)V
-Lorg/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorInProductHelpController;
-HSPLorg/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorInProductHelpController;-><init>(Landroidx/appcompat/app/AppCompatActivity;Lorg/chromium/chrome/browser/toolbar/ToolbarManager;Lorg/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl;Lorg/chromium/chrome/browser/status_indicator/StatusIndicatorCoordinator;)V
-Lorg/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorMetricsDelegate;
-HSPLorg/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorMetricsDelegate;-><init>()V
-PLorg/chromium/chrome/browser/omaha/ExponentialBackoffScheduler;-><init>()V
-PLorg/chromium/chrome/browser/omaha/OmahaBase;-><init>(Lorg/chromium/chrome/browser/omaha/OmahaService$OmahaClientDelegate;)V
-PLorg/chromium/chrome/browser/omaha/OmahaDelegateBase;-><init>()V
-PLorg/chromium/chrome/browser/omaha/OmahaService;-><init>()V
-PLorg/chromium/chrome/browser/omaha/OmahaService;->onStartTask(Landroid/content/Context;Lorg/chromium/components/background_task_scheduler/TaskParameters;Lorg/chromium/components/background_task_scheduler/internal/BackgroundTaskJobService$TaskFinishedCallbackJobService;)Z
-PLorg/chromium/chrome/browser/omaha/OmahaService;->scheduleJobService(J)Z
-PLorg/chromium/chrome/browser/omaha/OmahaService$1;-><init>(Lorg/chromium/chrome/browser/omaha/OmahaService;Lorg/chromium/components/background_task_scheduler/internal/BackgroundTaskJobService$TaskFinishedCallbackJobService;)V
-PLorg/chromium/chrome/browser/omaha/OmahaService$1;->doInBackground()Ljava/lang/Object;
-PLorg/chromium/chrome/browser/omaha/OmahaService$1;->onPostExecute(Ljava/lang/Object;)V
-PLorg/chromium/chrome/browser/omaha/OmahaService$OmahaClientDelegate;-><init>()V
-Lorg/chromium/chrome/browser/omaha/UpdateConfigs;
-HSPLorg/chromium/chrome/browser/omaha/UpdateConfigs;->getStringParamValue(Ljava/lang/String;)Ljava/lang/String;
-Lorg/chromium/chrome/browser/omaha/UpdateMenuItemHelper;
-HSPLorg/chromium/chrome/browser/omaha/UpdateMenuItemHelper;-><init>()V
-HSPLorg/chromium/chrome/browser/omaha/UpdateMenuItemHelper;->getInstance()Lorg/chromium/chrome/browser/omaha/UpdateMenuItemHelper;
-HSPLorg/chromium/chrome/browser/omaha/UpdateMenuItemHelper;->handleStateChanged()V
-HSPLorg/chromium/chrome/browser/omaha/UpdateMenuItemHelper;->registerObserver(Ljava/lang/Runnable;)V
-Lorg/chromium/chrome/browser/omaha/UpdateMenuItemHelper$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/omaha/UpdateMenuItemHelper$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/omaha/UpdateMenuItemHelper;)V
-HSPLorg/chromium/chrome/browser/omaha/UpdateMenuItemHelper$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/omaha/UpdateMenuItemHelper$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/omaha/UpdateMenuItemHelper$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/omaha/UpdateMenuItemHelper;Ljava/lang/Runnable;)V
-HSPLorg/chromium/chrome/browser/omaha/UpdateMenuItemHelper$$ExternalSyntheticLambda1;->run()V
-Lorg/chromium/chrome/browser/omaha/UpdateStatusProvider;
-HSPLorg/chromium/chrome/browser/omaha/UpdateStatusProvider;-><init>()V
-Lorg/chromium/chrome/browser/omaha/UpdateStatusProvider$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/omaha/UpdateStatusProvider$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/omaha/UpdateStatusProvider;)V
-HSPLorg/chromium/chrome/browser/omaha/UpdateStatusProvider$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/omaha/UpdateStatusProvider$LazyHolder;
-Lorg/chromium/chrome/browser/omaha/UpdateStatusProvider$UpdateQuery;
-HSPLorg/chromium/chrome/browser/omaha/UpdateStatusProvider$UpdateQuery;-><init>(Lorg/chromium/chrome/browser/omaha/UpdateStatusProvider$$ExternalSyntheticLambda0;)V
-HSPLorg/chromium/chrome/browser/omaha/UpdateStatusProvider$UpdateQuery;->doInBackground()Ljava/lang/Object;
-HSPLorg/chromium/chrome/browser/omaha/UpdateStatusProvider$UpdateQuery;->onPostExecute(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/omaha/UpdateStatusProvider$UpdateStatus;
-HSPLorg/chromium/chrome/browser/omaha/UpdateStatusProvider$UpdateStatus;-><init>()V
-HSPLorg/chromium/chrome/browser/omaha/UpdateStatusProvider$UpdateStatus;-><init>(Lorg/chromium/chrome/browser/omaha/UpdateStatusProvider$UpdateStatus;)V
-Lorg/chromium/chrome/browser/omaha/VersionNumber;
-HSPLorg/chromium/chrome/browser/omaha/VersionNumber;->fromString(Ljava/lang/String;)Lorg/chromium/chrome/browser/omaha/VersionNumber;
-Lorg/chromium/chrome/browser/omaha/VersionNumberGetter;
-Lorg/chromium/chrome/browser/omaha/metrics/TrackingProvider;
-HSPLorg/chromium/chrome/browser/omaha/metrics/TrackingProvider;-><init>()V
-Lorg/chromium/chrome/browser/omaha/metrics/TrackingProvider$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/omaha/metrics/TrackingProvider$$ExternalSyntheticLambda0;-><init>(ILjava/lang/Object;)V
-HSPLorg/chromium/chrome/browser/omaha/metrics/TrackingProvider$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/omaha/metrics/TrackingProvider$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/omaha/metrics/TrackingProvider$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/base/Promise;Lorg/chromium/chrome/browser/omaha/metrics/UpdateProtos$Tracking;)V
-HSPLorg/chromium/chrome/browser/omaha/metrics/TrackingProvider$$ExternalSyntheticLambda1;->run()V
-Lorg/chromium/chrome/browser/omaha/metrics/UpdateProtos$Tracking;
-Lorg/chromium/chrome/browser/omaha/metrics/UpdateSuccessMetrics;
-HSPLorg/chromium/chrome/browser/omaha/metrics/UpdateSuccessMetrics;-><init>()V
-Lorg/chromium/chrome/browser/omaha/metrics/UpdateSuccessMetrics$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/omaha/metrics/UpdateSuccessMetrics$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/omaha/metrics/UpdateSuccessMetrics;I)V
-HSPLorg/chromium/chrome/browser/omaha/metrics/UpdateSuccessMetrics$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/omnibox/AutocompleteEditText;
-HSPLorg/chromium/chrome/browser/omnibox/AutocompleteEditText;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/chrome/browser/omnibox/AutocompleteEditText;->onPreDraw()Z
-HSPLorg/chromium/chrome/browser/omnibox/AutocompleteEditText;->onSelectionChanged(II)V
-HSPLorg/chromium/chrome/browser/omnibox/AutocompleteEditText;->onTextChanged(Ljava/lang/CharSequence;III)V
-HSPLorg/chromium/chrome/browser/omnibox/AutocompleteEditText;->sendAccessibilityEventUnchecked(Landroid/view/accessibility/AccessibilityEvent;)V
-HSPLorg/chromium/chrome/browser/omnibox/AutocompleteEditText;->setOnKeyListener(Landroid/view/View$OnKeyListener;)V
-HSPLorg/chromium/chrome/browser/omnibox/AutocompleteEditText;->setText(Ljava/lang/CharSequence;Landroid/widget/TextView$BufferType;)V
-Lorg/chromium/chrome/browser/omnibox/AutocompleteEditText$1;
-HSPLorg/chromium/chrome/browser/omnibox/AutocompleteEditText$1;-><init>(Lorg/chromium/chrome/browser/omnibox/AutocompleteEditText;)V
-HSPLorg/chromium/chrome/browser/omnibox/AutocompleteEditText$1;->afterTextChanged(Landroid/text/Editable;)V
-HSPLorg/chromium/chrome/browser/omnibox/AutocompleteEditText$1;->beforeTextChanged(Ljava/lang/CharSequence;III)V
-HSPLorg/chromium/chrome/browser/omnibox/AutocompleteEditText$1;->onTextChanged(Ljava/lang/CharSequence;III)V
-Lorg/chromium/chrome/browser/omnibox/AutocompleteEditTextModelBase$Delegate;
-Lorg/chromium/chrome/browser/omnibox/BackKeyBehaviorDelegate;
-Lorg/chromium/chrome/browser/omnibox/ChromeAutocompleteSchemeClassifier;
-HSPLorg/chromium/chrome/browser/omnibox/ChromeAutocompleteSchemeClassifier;-><init>(Lorg/chromium/chrome/browser/profiles/Profile;)V
-HSPLorg/chromium/chrome/browser/omnibox/ChromeAutocompleteSchemeClassifier;->destroy()V
-Lorg/chromium/chrome/browser/omnibox/KeyboardHideHelper;
-HSPLorg/chromium/chrome/browser/omnibox/KeyboardHideHelper;-><init>(Landroid/view/View;Lorg/chromium/chrome/browser/omnibox/UrlBar$$ExternalSyntheticLambda0;)V
-Lorg/chromium/chrome/browser/omnibox/KeyboardHideHelper$1;
-HSPLorg/chromium/chrome/browser/omnibox/KeyboardHideHelper$1;-><init>(Lorg/chromium/chrome/browser/omnibox/KeyboardHideHelper;)V
-Lorg/chromium/chrome/browser/omnibox/LocationBar;
-Lorg/chromium/chrome/browser/omnibox/LocationBarCoordinator;
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarCoordinator;-><init>(Landroid/view/View;Landroid/view/View;Lorg/chromium/base/supplier/ObservableSupplier;Lorg/chromium/chrome/browser/omnibox/LocationBarDataProvider;Landroid/view/ActionMode$Callback;Lorg/chromium/ui/base/WindowDelegate;Lorg/chromium/ui/base/ActivityWindowAndroid;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/base/supplier/ObservableSupplier;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/chrome/browser/tabmodel/IncognitoStateProvider;Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;Lorg/chromium/chrome/browser/omnibox/OverrideUrlLoadingDelegate;Lorg/chromium/chrome/browser/omnibox/BackKeyBehaviorDelegate;Lorg/chromium/chrome/browser/omnibox/SearchEngineLogoUtils;Ljava/lang/Runnable;Lorg/chromium/chrome/browser/omnibox/status/StatusCoordinator$PageInfoAction;Lorg/chromium/base/Callback;Lorg/chromium/chrome/browser/omnibox/LocationBarMediator$SaveOfflineButtonState;Lorg/chromium/chrome/browser/omnibox/LocationBarMediator$OmniboxUma;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/chrome/browser/omnibox/suggestions/basic/BasicSuggestionProcessor$BookmarkState;Ljava/util/function/BooleanSupplier;Lorg/chromium/base/jank_tracker/JankTracker;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/chrome/browser/app/omnibox/OmniboxPedalDelegateImpl;Lorg/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate;Lorg/chromium/base/Callback;Lorg/chromium/chrome/browser/back_press/BackPressManager;Lorg/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownScrollListener;)V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarCoordinator;->destroy()V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarCoordinator;->getOmniboxStub()Lorg/chromium/chrome/browser/omnibox/OmniboxStub;
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarCoordinator;->getSecurityIconView()Landroid/view/View;
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarCoordinator;->getVoiceRecognitionHandler()Lorg/chromium/chrome/browser/omnibox/voice/VoiceRecognitionHandler;
-PLorg/chromium/chrome/browser/omnibox/LocationBarCoordinator;->onDeferredStartup()V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarCoordinator;->onFinishNativeInitialization()V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarCoordinator;->updateVisualsForState()V
-Lorg/chromium/chrome/browser/omnibox/LocationBarCoordinator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarCoordinator$$ExternalSyntheticLambda0;-><init>(ILjava/lang/Object;)V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarCoordinator$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/omnibox/LocationBarCoordinator$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarCoordinator$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/omnibox/LocationBarMediator;I)V
-Lorg/chromium/chrome/browser/omnibox/LocationBarCoordinator$1;
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarCoordinator$1;-><init>(Lorg/chromium/base/supplier/OneshotSupplierImpl;Lorg/chromium/base/supplier/ObservableSupplier;)V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarCoordinator$1;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/omnibox/LocationBarCoordinator$SubCoordinator;
-Lorg/chromium/chrome/browser/omnibox/LocationBarCoordinatorPhone;
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarCoordinatorPhone;-><init>(Lorg/chromium/chrome/browser/omnibox/LocationBarPhone;Lorg/chromium/chrome/browser/omnibox/status/StatusCoordinator;)V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarCoordinatorPhone;->destroy()V
-Lorg/chromium/chrome/browser/omnibox/LocationBarDataProvider;
-Lorg/chromium/chrome/browser/omnibox/LocationBarDataProvider$Observer;
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarDataProvider$Observer;->hintZeroSuggestRefresh()V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarDataProvider$Observer;->onPrimaryColorChanged()V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarDataProvider$Observer;->onSecurityStateChanged()V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarDataProvider$Observer;->onTitleChanged()V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarDataProvider$Observer;->onUrlChanged()V
-Lorg/chromium/chrome/browser/omnibox/LocationBarLayout;
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarLayout;->initialize(Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator;Lorg/chromium/chrome/browser/omnibox/UrlBarCoordinator;Lorg/chromium/chrome/browser/omnibox/status/StatusCoordinator;Lorg/chromium/chrome/browser/omnibox/LocationBarDataProvider;Lorg/chromium/chrome/browser/omnibox/SearchEngineLogoUtils;)V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarLayout;->onFinishInflate()V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarLayout;->onFinishNativeInitialization()V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarLayout;->onMeasure(II)V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarLayout;->setUnfocusedWidth(I)V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarLayout;->setUrlFocusChangePercent(F)V
-Lorg/chromium/chrome/browser/omnibox/LocationBarMediator;
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarMediator;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/omnibox/LocationBarLayout;Lorg/chromium/chrome/browser/omnibox/LocationBarDataProvider;Lorg/chromium/base/supplier/ObservableSupplier;Lorg/chromium/chrome/browser/omnibox/OverrideUrlLoadingDelegate;Lorg/chromium/chrome/browser/locale/LocaleManager;Lorg/chromium/base/supplier/OneshotSupplierImpl;Lorg/chromium/chrome/browser/omnibox/BackKeyBehaviorDelegate;Lorg/chromium/ui/base/ActivityWindowAndroid;ZLorg/chromium/chrome/browser/omnibox/SearchEngineLogoUtils;Lorg/chromium/chrome/browser/lens/LensController;Ljava/lang/Runnable;Lorg/chromium/chrome/browser/omnibox/LocationBarMediator$SaveOfflineButtonState;Lorg/chromium/chrome/browser/omnibox/LocationBarMediator$OmniboxUma;Ljava/util/function/BooleanSupplier;)V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarMediator;->addUrlFocusChangeListener(Lorg/chromium/chrome/browser/omnibox/UrlFocusChangeListener;)V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarMediator;->getVoiceRecognitionHandler()Lorg/chromium/chrome/browser/omnibox/voice/VoiceRecognitionHandler;
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarMediator;->hintZeroSuggestRefresh()V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarMediator;->isLensEnabled()V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarMediator;->onAssistantVoiceSearchServiceChanged()V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarMediator;->onPrimaryColorChanged()V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarMediator;->onUrlChanged()V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarMediator;->onVoiceAvailabilityImpacted()V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarMediator;->removeUrlFocusChangeListener(Lorg/chromium/chrome/browser/omnibox/UrlFocusChangeListener;)V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarMediator;->setUrl(Ljava/lang/String;Lorg/chromium/chrome/browser/omnibox/UrlBarData;)V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarMediator;->setUrlBarFocus(Ljava/lang/String;IZ)V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarMediator;->setUrlFocusChangeFraction(F)V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarMediator;->shouldShowDeleteButton()Z
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarMediator;->shouldShowLensButton()Z
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarMediator;->updateAssistantVoiceSearchDrawableAndColors()V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarMediator;->updateButtonVisibility()V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarMediator;->updateShouldAnimateIconChanges()V
-Lorg/chromium/chrome/browser/omnibox/LocationBarMediator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarMediator$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/omnibox/LocationBarMediator;I)V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarMediator$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/omnibox/LocationBarMediator$2;
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarMediator$2;-><init>(Lorg/chromium/chrome/browser/omnibox/LocationBarMediator;I)V
-Lorg/chromium/chrome/browser/omnibox/LocationBarMediator$OmniboxUma;
-Lorg/chromium/chrome/browser/omnibox/LocationBarMediator$SaveOfflineButtonState;
-Lorg/chromium/chrome/browser/omnibox/LocationBarPhone;
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarPhone;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarPhone;->drawChild(Landroid/graphics/Canvas;Landroid/view/View;J)Z
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarPhone;->onFinishInflate()V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarPhone;->onLayout(ZIIII)V
-HSPLorg/chromium/chrome/browser/omnibox/LocationBarPhone;->onMeasure(II)V
-Lorg/chromium/chrome/browser/omnibox/NewTabPageDelegate;
-Lorg/chromium/chrome/browser/omnibox/NewTabPageDelegate$1;
-HSPLorg/chromium/chrome/browser/omnibox/NewTabPageDelegate$1;-><init>()V
-Lorg/chromium/chrome/browser/omnibox/OmniboxFeatures;
-HSPLorg/chromium/chrome/browser/omnibox/OmniboxFeatures;->shouldMatchToolbarAndStatusBarColor()Z
-HSPLorg/chromium/chrome/browser/omnibox/OmniboxFeatures;->shouldShowModernizeVisualUpdate(Landroid/content/Context;)Z
-Lorg/chromium/chrome/browser/omnibox/OmniboxPrerender;
-HSPLorg/chromium/chrome/browser/omnibox/OmniboxPrerender;-><init>()V
-Lorg/chromium/chrome/browser/omnibox/OmniboxStub;
-Lorg/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl;
-HSPLorg/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl;-><init>(Lorg/chromium/ui/base/ActivityWindowAndroid;Lorg/chromium/ui/base/WindowDelegate;Landroid/view/View;Lorg/chromium/chrome/browser/omnibox/LocationBarLayout;)V
-HSPLorg/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl;->recalculateOmniboxAlignment()V
-Lorg/chromium/chrome/browser/omnibox/OverrideUrlLoadingDelegate;
-Lorg/chromium/chrome/browser/omnibox/SearchEngineLogoUtils;
-HSPLorg/chromium/chrome/browser/omnibox/SearchEngineLogoUtils;-><init>()V
-HSPLorg/chromium/chrome/browser/omnibox/SearchEngineLogoUtils;->getInstance()Lorg/chromium/chrome/browser/omnibox/SearchEngineLogoUtils;
-Lorg/chromium/chrome/browser/omnibox/UrlBar;
-HSPLorg/chromium/chrome/browser/omnibox/UrlBar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/chrome/browser/omnibox/UrlBar;->bringPointIntoView(I)Z
-PLorg/chromium/chrome/browser/omnibox/UrlBar;->getAccessibilityClassName()Ljava/lang/CharSequence;
-HSPLorg/chromium/chrome/browser/omnibox/UrlBar;->getText()Landroid/text/Editable;
-HSPLorg/chromium/chrome/browser/omnibox/UrlBar;->getText()Ljava/lang/CharSequence;
-HSPLorg/chromium/chrome/browser/omnibox/UrlBar;->onDraw(Landroid/graphics/Canvas;)V
-HSPLorg/chromium/chrome/browser/omnibox/UrlBar;->onFinishInflate()V
-HSPLorg/chromium/chrome/browser/omnibox/UrlBar;->onLayout(ZIIII)V
-HSPLorg/chromium/chrome/browser/omnibox/UrlBar;->onTextChanged(Ljava/lang/CharSequence;III)V
-HSPLorg/chromium/chrome/browser/omnibox/UrlBar;->onWindowFocusChanged(Z)V
-HSPLorg/chromium/chrome/browser/omnibox/UrlBar;->scrollDisplayTextInternal(I)V
-HSPLorg/chromium/chrome/browser/omnibox/UrlBar;->setIgnoreTextChangesForAutocomplete(Z)V
-HSPLorg/chromium/chrome/browser/omnibox/UrlBar;->setText(Ljava/lang/CharSequence;Landroid/widget/TextView$BufferType;)V
-Lorg/chromium/chrome/browser/omnibox/UrlBar$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/omnibox/UrlBar$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/omnibox/UrlBar;I)V
-HSPLorg/chromium/chrome/browser/omnibox/UrlBar$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/omnibox/UrlBar$1;
-HSPLorg/chromium/chrome/browser/omnibox/UrlBar$1;-><init>(Lorg/chromium/chrome/browser/omnibox/UrlBar;)V
-Lorg/chromium/chrome/browser/omnibox/UrlBar$UrlBarDelegate;
-Lorg/chromium/chrome/browser/omnibox/UrlBar$UrlBarTextContextMenuDelegate;
-Lorg/chromium/chrome/browser/omnibox/UrlBar$UrlTextChangeListener;
-Lorg/chromium/chrome/browser/omnibox/UrlBarApi26;
-HSPLorg/chromium/chrome/browser/omnibox/UrlBarApi26;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/chrome/browser/omnibox/UrlBarApi26;->getAutofillType()I
-Lorg/chromium/chrome/browser/omnibox/UrlBarCoordinator;
-HSPLorg/chromium/chrome/browser/omnibox/UrlBarCoordinator;-><init>(Lorg/chromium/chrome/browser/omnibox/UrlBar;Lorg/chromium/ui/base/WindowDelegate;Landroid/view/ActionMode$Callback;Lorg/chromium/base/Callback;Lorg/chromium/chrome/browser/omnibox/UrlBar$UrlBarDelegate;Lorg/chromium/ui/KeyboardVisibilityDelegate;ZLorg/chromium/base/Callback;)V
-HSPLorg/chromium/chrome/browser/omnibox/UrlBarCoordinator;->getTextWithAutocomplete()Ljava/lang/String;
-HSPLorg/chromium/chrome/browser/omnibox/UrlBarCoordinator;->setUrlBarData(Lorg/chromium/chrome/browser/omnibox/UrlBarData;II)Z
-Lorg/chromium/chrome/browser/omnibox/UrlBarCoordinator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/omnibox/UrlBarCoordinator$$ExternalSyntheticLambda0;-><init>()V
-HSPLorg/chromium/chrome/browser/omnibox/UrlBarCoordinator$$ExternalSyntheticLambda0;->bind(Lorg/chromium/ui/modelutil/PropertyObservable;Ljava/lang/Object;Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/omnibox/UrlBarCoordinator$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/omnibox/UrlBarCoordinator$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/omnibox/UrlBarCoordinator;)V
-Lorg/chromium/chrome/browser/omnibox/UrlBarData;
-HSPLorg/chromium/chrome/browser/omnibox/UrlBarData;-><init>(Ljava/lang/String;Ljava/lang/CharSequence;IILjava/lang/String;)V
-HSPLorg/chromium/chrome/browser/omnibox/UrlBarData;->create(Ljava/lang/String;Ljava/lang/CharSequence;IILjava/lang/String;)Lorg/chromium/chrome/browser/omnibox/UrlBarData;
-HSPLorg/chromium/chrome/browser/omnibox/UrlBarData;->forNonUrlText(Ljava/lang/String;)Lorg/chromium/chrome/browser/omnibox/UrlBarData;
-HSPLorg/chromium/chrome/browser/omnibox/UrlBarData;->forUrlAndText(Ljava/lang/String;Landroid/text/SpannableStringBuilder;Ljava/lang/String;)Lorg/chromium/chrome/browser/omnibox/UrlBarData;
-Lorg/chromium/chrome/browser/omnibox/UrlBarEditingTextStateProvider;
-Lorg/chromium/chrome/browser/omnibox/UrlBarMediator;
-HSPLorg/chromium/chrome/browser/omnibox/UrlBarMediator;-><init>(Lorg/chromium/chrome/browser/omnibox/UrlBarCoordinator$$ExternalSyntheticLambda1;Lorg/chromium/ui/modelutil/PropertyModel;)V
-HSPLorg/chromium/chrome/browser/omnibox/UrlBarMediator;->afterTextChanged(Landroid/text/Editable;)V
-HSPLorg/chromium/chrome/browser/omnibox/UrlBarMediator;->beforeTextChanged(Ljava/lang/CharSequence;III)V
-HSPLorg/chromium/chrome/browser/omnibox/UrlBarMediator;->onTextChanged(Ljava/lang/CharSequence;III)V
-HSPLorg/chromium/chrome/browser/omnibox/UrlBarMediator;->pushTextToModel()V
-Lorg/chromium/chrome/browser/omnibox/UrlBarMediator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/omnibox/UrlBarMediator$$ExternalSyntheticLambda0;-><init>()V
-Lorg/chromium/chrome/browser/omnibox/UrlBarMediator$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/omnibox/UrlBarMediator$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/omnibox/UrlBarMediator;)V
-Lorg/chromium/chrome/browser/omnibox/UrlBarProperties;
-Lorg/chromium/chrome/browser/omnibox/UrlBarProperties$UrlBarTextState;
-HSPLorg/chromium/chrome/browser/omnibox/UrlBarProperties$UrlBarTextState;-><init>(IIILjava/lang/CharSequence;Ljava/lang/CharSequence;)V
-Lorg/chromium/chrome/browser/omnibox/UrlBarViewBinder$$ExternalSyntheticApiModelOutline0;
-HSPLorg/chromium/chrome/browser/omnibox/UrlBarViewBinder$$ExternalSyntheticApiModelOutline0;->m$1(Lorg/chromium/chrome/browser/omnibox/UrlBar;)Landroid/graphics/drawable/Drawable;
-HSPLorg/chromium/chrome/browser/omnibox/UrlBarViewBinder$$ExternalSyntheticApiModelOutline0;->m$2(Lorg/chromium/chrome/browser/omnibox/UrlBar;)Landroid/graphics/drawable/Drawable;
-HSPLorg/chromium/chrome/browser/omnibox/UrlBarViewBinder$$ExternalSyntheticApiModelOutline0;->m$3(Lorg/chromium/chrome/browser/omnibox/UrlBar;)Landroid/graphics/drawable/Drawable;
-HSPLorg/chromium/chrome/browser/omnibox/UrlBarViewBinder$$ExternalSyntheticApiModelOutline0;->m(Lorg/chromium/chrome/browser/omnibox/UrlBar;)Landroid/graphics/drawable/Drawable;
-Lorg/chromium/chrome/browser/omnibox/UrlBarViewBinder$$ExternalSyntheticLambda4;
-HSPLorg/chromium/chrome/browser/omnibox/UrlBarViewBinder$$ExternalSyntheticLambda4;-><init>(Lorg/chromium/chrome/browser/omnibox/UrlBar;Lorg/chromium/base/Callback;)V
-Lorg/chromium/chrome/browser/omnibox/UrlFocusChangeListener;
-Lorg/chromium/chrome/browser/omnibox/status/PageInfoIPHController;
-HSPLorg/chromium/chrome/browser/omnibox/status/PageInfoIPHController;-><init>(Landroid/app/Activity;Landroid/widget/ImageView;)V
-Lorg/chromium/chrome/browser/omnibox/status/StatusCoordinator;
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusCoordinator;-><init>(ZLorg/chromium/chrome/browser/omnibox/status/StatusView;Lorg/chromium/chrome/browser/omnibox/LocationBarDataProvider;Lorg/chromium/base/supplier/OneshotSupplierImpl;Lorg/chromium/chrome/browser/omnibox/SearchEngineLogoUtils;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/ui/base/ActivityWindowAndroid;Lorg/chromium/chrome/browser/omnibox/status/StatusCoordinator$PageInfoAction;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate;)V
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusCoordinator;->onSecurityStateChanged()V
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusCoordinator;->updateSecurityIcon()V
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusCoordinator;->updateVerboseStatusVisibility()V
-Lorg/chromium/chrome/browser/omnibox/status/StatusCoordinator$PageInfoAction;
-Lorg/chromium/chrome/browser/omnibox/status/StatusIconView;
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusIconView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusIconView;->onFinishInflate()V
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusIconView;->setVisibility(I)V
-Lorg/chromium/chrome/browser/omnibox/status/StatusMediator;
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusMediator;-><init>(Lorg/chromium/ui/modelutil/PropertyModel;Landroid/content/res/Resources;Landroid/content/Context;ZLorg/chromium/chrome/browser/omnibox/LocationBarDataProvider;Lorg/chromium/components/permissions/PermissionDialogController;Lorg/chromium/chrome/browser/omnibox/SearchEngineLogoUtils;Lorg/chromium/base/supplier/OneshotSupplierImpl;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/chrome/browser/omnibox/status/PageInfoIPHController;Lorg/chromium/ui/base/ActivityWindowAndroid;Lorg/chromium/base/supplier/ObservableSupplierImpl;)V
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusMediator;->isNTPOrStartSurfaceVisible()Z
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusMediator;->shouldDisplaySearchEngineIcon()Z
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusMediator;->updateColorTheme()V
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusMediator;->updateLocationBarIcon(I)V
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusMediator;->updateStatusVisibility()V
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusMediator;->updateVerbaseStatusTextVisibility()V
-Lorg/chromium/chrome/browser/omnibox/status/StatusMediator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusMediator$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/omnibox/status/StatusMediator;I)V
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusMediator$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/omnibox/status/StatusProperties;
-Lorg/chromium/chrome/browser/omnibox/status/StatusProperties$StatusIconResource;
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusProperties$StatusIconResource;-><init>(II)V
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusProperties$StatusIconResource;->equals(Ljava/lang/Object;)Z
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusProperties$StatusIconResource;->getDrawable(Landroid/content/Context;Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
-Lorg/chromium/chrome/browser/omnibox/status/StatusView;
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusView;->allowBrowserControlsHide()V
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusView;->keepControlsShownForAnimation()V
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusView;->onFinishInflate()V
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusView;->setStatusIconResources(Landroid/graphics/drawable/Drawable;ILjava/lang/Runnable;)V
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusView;->updateTouchDelegate()V
-Lorg/chromium/chrome/browser/omnibox/status/StatusView$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusView$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/omnibox/status/StatusView;)V
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusView$$ExternalSyntheticLambda0;->onLayoutChange(Landroid/view/View;IIIIIIII)V
-Lorg/chromium/chrome/browser/omnibox/status/StatusView$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusView$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/omnibox/status/StatusView;I)V
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusView$$ExternalSyntheticLambda1;->run()V
-Lorg/chromium/chrome/browser/omnibox/status/StatusView$1;
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusView$1;-><init>(Lorg/chromium/chrome/browser/omnibox/status/StatusView;)V
-Lorg/chromium/chrome/browser/omnibox/status/StatusView$2;
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusView$2;-><init>(Lorg/chromium/chrome/browser/omnibox/status/StatusView;)V
-Lorg/chromium/chrome/browser/omnibox/status/StatusViewBinder;
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusViewBinder;-><init>()V
-HSPLorg/chromium/chrome/browser/omnibox/status/StatusViewBinder;->bind(Lorg/chromium/ui/modelutil/PropertyObservable;Ljava/lang/Object;Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/omnibox/styles/OmniboxResourceProvider;
-HSPLorg/chromium/chrome/browser/omnibox/styles/OmniboxResourceProvider;->getBrandedColorScheme(ILandroid/content/Context;Z)I
-HSPLorg/chromium/chrome/browser/omnibox/styles/OmniboxResourceProvider;->getUrlBarPrimaryTextColor(Landroid/content/Context;I)I
-HSPLorg/chromium/chrome/browser/omnibox/styles/OmniboxResourceProvider;->getUrlBarSecondaryTextColor(Landroid/content/Context;I)I
-Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteController;
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteController;-><init>(Lorg/chromium/chrome/browser/profiles/Profile;)V
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteController;->destroy()V
-Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteController$OnSuggestionsReceivedListener;
-Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteControllerProvider;
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteControllerProvider;-><init>()V
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteControllerProvider;->from(Lorg/chromium/ui/base/WindowAndroid;)Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteControllerProvider;
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteControllerProvider;->get(Lorg/chromium/chrome/browser/profiles/Profile;)Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteController;
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteControllerProvider;->onDetachedFromHost()V
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteControllerProvider;->onProfileAdded(Lorg/chromium/chrome/browser/profiles/Profile;)V
-Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator;
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator;-><init>(Lorg/chromium/chrome/browser/omnibox/LocationBarLayout;Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteControllerProvider;Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteDelegate;Lorg/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl;Lorg/chromium/chrome/browser/omnibox/UrlBarCoordinator;Lorg/chromium/base/supplier/ObservableSupplier;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/chrome/browser/omnibox/LocationBarDataProvider;Lorg/chromium/base/supplier/ObservableSupplier;Lorg/chromium/base/Callback;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/chrome/browser/omnibox/suggestions/basic/BasicSuggestionProcessor$BookmarkState;Lorg/chromium/base/jank_tracker/JankTracker;Lorg/chromium/chrome/browser/app/omnibox/OmniboxPedalDelegateImpl;Lorg/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownScrollListener;)V
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator;->prefetchZeroSuggestResults()V
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator;->updateSuggestionListLayoutDirection()V
-Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator;I)V
-Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator$$ExternalSyntheticLambda1;-><init>(ILjava/lang/Object;)V
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator$$ExternalSyntheticLambda1;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator$$ExternalSyntheticLambda2;
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator$$ExternalSyntheticLambda2;-><init>(I)V
-Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator$1;
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator$1;-><init>(Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator;Landroid/content/Context;Lorg/chromium/ui/modelutil/MVCListAdapter$ModelList;)V
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator$1;->whenLoaded(Lorg/chromium/base/Callback;)V
-Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteDelegate;
-Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator;
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteControllerProvider;Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteDelegate;Lorg/chromium/chrome/browser/omnibox/UrlBarCoordinator;Lorg/chromium/ui/modelutil/PropertyModel;Landroid/os/Handler;Lorg/chromium/base/supplier/ObservableSupplier;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/chrome/browser/omnibox/LocationBarDataProvider;Lorg/chromium/base/Callback;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/chrome/browser/omnibox/suggestions/basic/BasicSuggestionProcessor$BookmarkState;Lorg/chromium/base/jank_tracker/JankTracker;Lorg/chromium/chrome/browser/app/omnibox/OmniboxPedalDelegateImpl;)V
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator;->cancelAutocompleteRequests()V
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator;->postAutocompleteRequest(Ljava/lang/Runnable;J)V
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator;->runPendingAutocompleteRequests()V
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator;->stopAutocomplete(Z)V
-Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator;I)V
-Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator$$ExternalSyntheticLambda2;
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator$$ExternalSyntheticLambda2;-><init>(Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator;II)V
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator$$ExternalSyntheticLambda2;->run()V
-Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator$2;
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator$2;-><init>(Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator;Ljava/lang/Runnable;)V
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator$2;->run()V
-Lorg/chromium/chrome/browser/omnibox/suggestions/DropdownItemProcessor;
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/DropdownItemProcessor;->onNativeInitialized()V
-Lorg/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder;
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder;-><init>(Lorg/chromium/base/supplier/Supplier;Lorg/chromium/chrome/browser/omnibox/suggestions/basic/BasicSuggestionProcessor$BookmarkState;Lorg/chromium/chrome/browser/app/omnibox/OmniboxPedalDelegateImpl;)V
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder;->registerSuggestionProcessor(Lorg/chromium/chrome/browser/omnibox/suggestions/SuggestionProcessor;)V
-Lorg/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder;I)V
-Lorg/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManager;
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManager;-><init>(Landroid/content/Context;Lorg/chromium/ui/modelutil/MVCListAdapter$ModelList;)V
-Lorg/chromium/chrome/browser/omnibox/suggestions/FaviconFetcher;
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/FaviconFetcher;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder$$ExternalSyntheticLambda0;)V
-Lorg/chromium/chrome/browser/omnibox/suggestions/OmniboxPedalDelegate;
-Lorg/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown$GestureObserver;
-Lorg/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder$OmniboxAlignment;
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder$OmniboxAlignment;-><init>(IIIII)V
-Lorg/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownScrollListener;
-Lorg/chromium/chrome/browser/omnibox/suggestions/SuggestionHost;
-Lorg/chromium/chrome/browser/omnibox/suggestions/SuggestionListProperties;
-Lorg/chromium/chrome/browser/omnibox/suggestions/SuggestionProcessor;
-Lorg/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionProcessor;
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionProcessor;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator;Lorg/chromium/chrome/browser/omnibox/UrlBarEditingTextStateProvider;Lorg/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder$$ExternalSyntheticLambda0;)V
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionProcessor;->onNativeInitialized()V
-Lorg/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewProcessor;
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewProcessor;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator;Lorg/chromium/chrome/browser/omnibox/suggestions/FaviconFetcher;)V
-Lorg/chromium/chrome/browser/omnibox/suggestions/basic/BasicSuggestionProcessor;
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/basic/BasicSuggestionProcessor;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator;Lorg/chromium/chrome/browser/omnibox/UrlBarEditingTextStateProvider;Lorg/chromium/chrome/browser/omnibox/suggestions/FaviconFetcher;Lorg/chromium/chrome/browser/omnibox/suggestions/basic/BasicSuggestionProcessor$BookmarkState;)V
-Lorg/chromium/chrome/browser/omnibox/suggestions/basic/BasicSuggestionProcessor$BookmarkState;
-Lorg/chromium/chrome/browser/omnibox/suggestions/carousel/BaseCarouselSuggestionProcessor;
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/carousel/BaseCarouselSuggestionProcessor;-><init>(Landroid/content/Context;)V
-Lorg/chromium/chrome/browser/omnibox/suggestions/clipboard/ClipboardSuggestionProcessor;
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/clipboard/ClipboardSuggestionProcessor;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator;Lorg/chromium/chrome/browser/omnibox/suggestions/FaviconFetcher;)V
-Lorg/chromium/chrome/browser/omnibox/suggestions/editurl/EditUrlSuggestionProcessor;
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/editurl/EditUrlSuggestionProcessor;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator;Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteDelegate;Lorg/chromium/chrome/browser/omnibox/suggestions/FaviconFetcher;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder$$ExternalSyntheticLambda0;)V
-Lorg/chromium/chrome/browser/omnibox/suggestions/entity/EntitySuggestionProcessor;
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/entity/EntitySuggestionProcessor;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator;Lorg/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder$$ExternalSyntheticLambda0;)V
-Lorg/chromium/chrome/browser/omnibox/suggestions/header/HeaderProcessor;
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/header/HeaderProcessor;-><init>(Landroid/content/Context;)V
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/header/HeaderProcessor;->onNativeInitialized()V
-Lorg/chromium/chrome/browser/omnibox/suggestions/mostvisited/MostVisitedTilesProcessor;
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/mostvisited/MostVisitedTilesProcessor;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator;Lorg/chromium/chrome/browser/omnibox/suggestions/FaviconFetcher;)V
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/mostvisited/MostVisitedTilesProcessor;->onNativeInitialized()V
-Lorg/chromium/chrome/browser/omnibox/suggestions/pedal/PedalSuggestionProcessor;
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/pedal/PedalSuggestionProcessor;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator;Lorg/chromium/chrome/browser/omnibox/UrlBarEditingTextStateProvider;Lorg/chromium/chrome/browser/omnibox/suggestions/FaviconFetcher;Lorg/chromium/chrome/browser/omnibox/suggestions/basic/BasicSuggestionProcessor$BookmarkState;Lorg/chromium/chrome/browser/omnibox/suggestions/OmniboxPedalDelegate;Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteDelegate;)V
-Lorg/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionProcessor;
-HSPLorg/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionProcessor;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator;)V
-Lorg/chromium/chrome/browser/omnibox/voice/AssistantVoiceSearchService;
-HSPLorg/chromium/chrome/browser/omnibox/voice/AssistantVoiceSearchService;-><init>(Landroid/content/Context;Lorg/chromium/components/externalauth/ExternalAuthUtils;Lorg/chromium/components/search_engines/TemplateUrlService;Lorg/chromium/chrome/browser/gsa/GSAState;Lorg/chromium/chrome/browser/omnibox/voice/AssistantVoiceSearchService$Observer;Lorg/chromium/chrome/browser/preferences/SharedPreferencesManager;Lorg/chromium/components/signin/identitymanager/IdentityManager;Lorg/chromium/components/signin/AccountManagerFacade;)V
-HSPLorg/chromium/chrome/browser/omnibox/voice/AssistantVoiceSearchService;->isColorfulMicEnabled()Z
-PLorg/chromium/chrome/browser/omnibox/voice/AssistantVoiceSearchService;->isDeviceEligibleForAssistant(Ljava/util/ArrayList;Z)Z
-PLorg/chromium/chrome/browser/omnibox/voice/AssistantVoiceSearchService;->reportUserEligibility(Ljava/lang/String;)V
-Lorg/chromium/chrome/browser/omnibox/voice/AssistantVoiceSearchService$Observer;
-Lorg/chromium/chrome/browser/omnibox/voice/VoiceRecognitionHandler;
-HSPLorg/chromium/chrome/browser/omnibox/voice/VoiceRecognitionHandler;-><init>(Lorg/chromium/chrome/browser/omnibox/voice/VoiceRecognitionHandler$Delegate;Lorg/chromium/base/supplier/OneshotSupplierImpl;Ljava/lang/Runnable;Lorg/chromium/base/supplier/ObservableSupplier;)V
-HSPLorg/chromium/chrome/browser/omnibox/voice/VoiceRecognitionHandler;->isVoiceSearchEnabled()Z
-HSPLorg/chromium/chrome/browser/omnibox/voice/VoiceRecognitionHandler;->notifyVoiceAvailabilityImpacted()V
-Lorg/chromium/chrome/browser/omnibox/voice/VoiceRecognitionHandler$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/omnibox/voice/VoiceRecognitionHandler$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/omnibox/voice/VoiceRecognitionHandler;)V
-HSPLorg/chromium/chrome/browser/omnibox/voice/VoiceRecognitionHandler$$ExternalSyntheticLambda1;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/omnibox/voice/VoiceRecognitionHandler$$ExternalSyntheticLambda2;
-HSPLorg/chromium/chrome/browser/omnibox/voice/VoiceRecognitionHandler$$ExternalSyntheticLambda2;-><init>(Lorg/chromium/chrome/browser/omnibox/voice/VoiceRecognitionHandler;)V
-HSPLorg/chromium/chrome/browser/omnibox/voice/VoiceRecognitionHandler$$ExternalSyntheticLambda2;->onApplicationStateChange(I)V
-Lorg/chromium/chrome/browser/omnibox/voice/VoiceRecognitionHandler$Delegate;
-Lorg/chromium/chrome/browser/omnibox/voice/VoiceRecognitionHandler$Observer;
-Lorg/chromium/chrome/browser/omnibox/voice/VoiceRecognitionHandler$TranslateBridgeWrapper;
-HSPLorg/chromium/chrome/browser/omnibox/voice/VoiceRecognitionHandler$TranslateBridgeWrapper;-><init>()V
-Lorg/chromium/chrome/browser/omnibox/voice/VoiceRecognitionUtil;
-HSPLorg/chromium/chrome/browser/omnibox/voice/VoiceRecognitionUtil;->isRecognitionIntentPresent(Z)Z
-HSPLorg/chromium/chrome/browser/omnibox/voice/VoiceRecognitionUtil;->isVoiceSearchEnabled(Lorg/chromium/ui/permissions/AndroidPermissionDelegate;)Z
-HSPLorg/chromium/chrome/browser/omnibox/voice/VoiceRecognitionUtil;->isVoiceSearchPermittedByPolicy(Z)Z
-PLorg/chromium/chrome/browser/optimization_guide/OptimizationGuideBridge;-><init>()V
-PLorg/chromium/chrome/browser/optimization_guide/OptimizationGuideBridgeFactory;-><init>(Ljava/util/List;)V
-PLorg/chromium/chrome/browser/optimization_guide/OptimizationGuideBridgeFactory;->create()Lorg/chromium/chrome/browser/optimization_guide/OptimizationGuideBridge;
-PLorg/chromium/chrome/browser/optimization_guide/OptimizationGuideBridgeFactory$1;-><init>(Lorg/chromium/chrome/browser/optimization_guide/OptimizationGuideBridgeFactory;)V
-Lorg/chromium/chrome/browser/optimization_guide/OptimizationGuidePushNotificationManager;
-Lorg/chromium/chrome/browser/page_annotations/PageAnnotationsServiceConfig;
-PLorg/chromium/chrome/browser/page_annotations/PageAnnotationsServiceFactory;-><init>()V
-PLorg/chromium/chrome/browser/page_annotations/PageAnnotationsServiceFactory$1;-><init>()V
-Lorg/chromium/chrome/browser/page_info/ChromePageInfo;
-HSPLorg/chromium/chrome/browser/page_info/ChromePageInfo;-><init>(Lorg/chromium/base/supplier/ObservableSupplier;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda12;Lorg/chromium/base/supplier/Supplier;)V
-Lorg/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper;
-HSPLorg/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper;-><init>(Lorg/chromium/ui/base/ActivityWindowAndroid;JLorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;ZLorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda4;)V
-Lorg/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper$1;
-HSPLorg/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper$1;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;Lorg/chromium/ui/base/ActivityWindowAndroid;)V
-HSPLorg/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper$1;->onTabStateInitialized()V
-Lorg/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelperSupplier;
-HSPLorg/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelperSupplier;-><init>()V
-Lorg/chromium/chrome/browser/paint_preview/TabbedPaintPreview;
-HSPLorg/chromium/chrome/browser/paint_preview/TabbedPaintPreview;-><init>(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/paint_preview/TabbedPaintPreview;->destroy()V
-HSPLorg/chromium/chrome/browser/paint_preview/TabbedPaintPreview;->get(Lorg/chromium/chrome/browser/tab/Tab;)Lorg/chromium/chrome/browser/paint_preview/TabbedPaintPreview;
-HSPLorg/chromium/chrome/browser/paint_preview/TabbedPaintPreview;->isShowing()Z
-Lorg/chromium/chrome/browser/paint_preview/TabbedPaintPreview$1;
-HSPLorg/chromium/chrome/browser/paint_preview/TabbedPaintPreview$1;-><init>(Lorg/chromium/chrome/browser/paint_preview/TabbedPaintPreview;)V
-Lorg/chromium/chrome/browser/paint_preview/TabbedPaintPreview$TabbedPaintPreviewViewProvider;
-HSPLorg/chromium/chrome/browser/paint_preview/TabbedPaintPreview$TabbedPaintPreviewViewProvider;-><init>(Lorg/chromium/chrome/browser/paint_preview/TabbedPaintPreview;)V
-Lorg/chromium/chrome/browser/paint_preview/services/PaintPreviewTabService;
-HSPLorg/chromium/chrome/browser/paint_preview/services/PaintPreviewTabService;-><init>(JJ)V
-Lorg/chromium/chrome/browser/paint_preview/services/PaintPreviewTabService$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/paint_preview/services/PaintPreviewTabService$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/paint_preview/services/PaintPreviewTabService;[I)V
-Lorg/chromium/chrome/browser/paint_preview/services/PaintPreviewTabService$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/paint_preview/services/PaintPreviewTabService$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/paint_preview/services/PaintPreviewTabService;)V
-Lorg/chromium/chrome/browser/paint_preview/services/PaintPreviewTabService$CaptureTriggerListener;
-HSPLorg/chromium/chrome/browser/paint_preview/services/PaintPreviewTabService$CaptureTriggerListener;-><init>(Lorg/chromium/chrome/browser/paint_preview/services/PaintPreviewTabService;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;)V
-HSPLorg/chromium/chrome/browser/paint_preview/services/PaintPreviewTabService$CaptureTriggerListener;->onApplicationStateChange(I)V
-HSPLorg/chromium/chrome/browser/paint_preview/services/PaintPreviewTabService$CaptureTriggerListener;->onHidden(Lorg/chromium/chrome/browser/tab/Tab;I)V
-Lorg/chromium/chrome/browser/partnerbookmarks/PartnerBookmark;
-HSPLorg/chromium/chrome/browser/partnerbookmarks/PartnerBookmark;-><init>()V
-Lorg/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksFaviconThrottle;
-HSPLorg/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksFaviconThrottle;-><init>()V
-HSPLorg/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksFaviconThrottle;->commit()V
-Lorg/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator;
-HSPLorg/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator;-><init>(Landroid/database/Cursor;)V
-HSPLorg/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator;->hasNext()Z
-Lorg/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksReader;
-HSPLorg/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksReader;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations;)V
-HSPLorg/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksReader;->shutDown()V
-Lorg/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksReader$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksReader$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksReader;Lorg/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations;)V
-HSPLorg/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksReader$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksReader$ReadBookmarksTask;
-HSPLorg/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksReader$ReadBookmarksTask;-><init>(Lorg/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksReader;)V
-HSPLorg/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksReader$ReadBookmarksTask;->doInBackground()Ljava/lang/Object;
-HSPLorg/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksReader$ReadBookmarksTask;->onPostExecute(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksShim;
-Lorg/chromium/chrome/browser/partnercustomizations/CustomizationProviderDelegateImpl;
-HSPLorg/chromium/chrome/browser/partnercustomizations/CustomizationProviderDelegateImpl;-><init>()V
-HSPLorg/chromium/chrome/browser/partnercustomizations/CustomizationProviderDelegateImpl;->isValid()Z
-Lorg/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations;
-HSPLorg/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations;-><init>()V
-HSPLorg/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations;->getHomePageUrl()Lorg/chromium/url/GURL;
-HSPLorg/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations;->getInstance()Lorg/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations;
-HSPLorg/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations;->initializeAsync(Landroid/content/Context;)V
-HSPLorg/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations;->isHomepageProviderAvailableAndEnabled()Z
-HSPLorg/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations;->isIncognitoDisabled()Z
-HSPLorg/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations;->refreshBookmarksEditingDisabled(Lorg/chromium/chrome/browser/partnercustomizations/CustomizationProviderDelegateImpl;)V
-HSPLorg/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations;->refreshHomepage(Lorg/chromium/chrome/browser/partnercustomizations/CustomizationProviderDelegateImpl;)Z
-HSPLorg/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations;->refreshIncognitoModeDisabled(Lorg/chromium/chrome/browser/partnercustomizations/CustomizationProviderDelegateImpl;)V
-HSPLorg/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations;->setOnInitializeAsyncFinished(Ljava/lang/Runnable;)V
-Lorg/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations$1;)V
-PLorg/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations$1;
-HSPLorg/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations$1;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations;)V
-HSPLorg/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations$1;->doInBackground()Ljava/lang/Object;
-HSPLorg/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations$1;->onFinalized()V
-HSPLorg/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations$1;->onPostExecute(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/password_check/PasswordCheckUkmRecorder;
-HSPLorg/chromium/chrome/browser/password_check/PasswordCheckUkmRecorder;-><init>(Lorg/chromium/chrome/browser/tab/TabImpl;)V
-HSPLorg/chromium/chrome/browser/password_check/PasswordCheckUkmRecorder;->onDestroyed(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/password_check/PasswordCheckUkmRecorder;->onPageLoadFinished(Lorg/chromium/chrome/browser/tab/Tab;Lorg/chromium/url/GURL;)V
-Lorg/chromium/chrome/browser/password_manager/ConfirmationDialogHelper;
-HSPLorg/chromium/chrome/browser/password_manager/ConfirmationDialogHelper;-><init>(Ljava/lang/ref/WeakReference;)V
-Lorg/chromium/chrome/browser/password_manager/PasswordManagerLifecycleHelper;
-HSPLorg/chromium/chrome/browser/password_manager/PasswordManagerLifecycleHelper;-><init>()V
-HSPLorg/chromium/chrome/browser/password_manager/PasswordManagerLifecycleHelper;->getInstance()Lorg/chromium/chrome/browser/password_manager/PasswordManagerLifecycleHelper;
-Lorg/chromium/chrome/browser/password_manager/PasswordSettingsAccessorFactoryImpl;
-HSPLorg/chromium/chrome/browser/password_manager/PasswordSettingsAccessorFactoryImpl;-><init>()V
-Lorg/chromium/chrome/browser/password_manager/PasswordSettingsUpdaterDispatcherBridge;
-HSPLorg/chromium/chrome/browser/password_manager/PasswordSettingsUpdaterDispatcherBridge;->canCreateAccessor()Z
-Lorg/chromium/chrome/browser/password_manager/PasswordStoreAndroidBackendDispatcherBridgeImpl;
-HSPLorg/chromium/chrome/browser/password_manager/PasswordStoreAndroidBackendDispatcherBridgeImpl;->canCreateBackend()Z
-Lorg/chromium/chrome/browser/password_manager/PasswordStoreAndroidBackendFactoryImpl;
-HSPLorg/chromium/chrome/browser/password_manager/PasswordStoreAndroidBackendFactoryImpl;-><init>()V
-Lorg/chromium/chrome/browser/policy/CloudManagementSharedPreferences;
-HSPLorg/chromium/chrome/browser/policy/CloudManagementSharedPreferences;->readDmToken()Ljava/lang/String;
-Lorg/chromium/chrome/browser/policy/PolicyAuditorBridge;
-HSPLorg/chromium/chrome/browser/policy/PolicyAuditorBridge;->getPolicyAuditor()Lorg/chromium/chrome/browser/policy/PolicyAuditor;
-Lorg/chromium/chrome/browser/preferences/BaseChromePreferenceKeyChecker;
-HSPLorg/chromium/chrome/browser/preferences/BaseChromePreferenceKeyChecker;-><init>()V
-HSPLorg/chromium/chrome/browser/preferences/BaseChromePreferenceKeyChecker;->checkIsKeyInUse(Ljava/lang/String;)V
-Lorg/chromium/chrome/browser/preferences/ChromePreferenceKeys;
-Lorg/chromium/chrome/browser/preferences/KeyPrefix;
-HSPLorg/chromium/chrome/browser/preferences/KeyPrefix;-><init>(Ljava/lang/String;)V
-HSPLorg/chromium/chrome/browser/preferences/KeyPrefix;->createKey(Ljava/lang/String;)Ljava/lang/String;
-Lorg/chromium/chrome/browser/preferences/PrefChangeRegistrar;
-HSPLorg/chromium/chrome/browser/preferences/PrefChangeRegistrar;-><init>()V
-HSPLorg/chromium/chrome/browser/preferences/PrefChangeRegistrar;->addObserver(Ljava/lang/String;Lorg/chromium/chrome/browser/preferences/PrefChangeRegistrar$PrefObserver;)V
-Lorg/chromium/chrome/browser/preferences/PrefChangeRegistrar$PrefObserver;
-Lorg/chromium/chrome/browser/preferences/SharedPreferencesManager;
-HSPLorg/chromium/chrome/browser/preferences/SharedPreferencesManager;-><init>()V
-HSPLorg/chromium/chrome/browser/preferences/SharedPreferencesManager;->addObserver(Lorg/chromium/chrome/browser/preferences/SharedPreferencesManager$Observer;)V
-HSPLorg/chromium/chrome/browser/preferences/SharedPreferencesManager;->contains(Ljava/lang/String;)Z
-HSPLorg/chromium/chrome/browser/preferences/SharedPreferencesManager;->getInstance()Lorg/chromium/chrome/browser/preferences/SharedPreferencesManager;
-HSPLorg/chromium/chrome/browser/preferences/SharedPreferencesManager;->incrementInt(Ljava/lang/String;)V
-HSPLorg/chromium/chrome/browser/preferences/SharedPreferencesManager;->readBoolean(Ljava/lang/String;Z)Z
-HSPLorg/chromium/chrome/browser/preferences/SharedPreferencesManager;->readInt(ILjava/lang/String;)I
-HSPLorg/chromium/chrome/browser/preferences/SharedPreferencesManager;->readLong(JLjava/lang/String;)J
-HSPLorg/chromium/chrome/browser/preferences/SharedPreferencesManager;->readString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-PLorg/chromium/chrome/browser/preferences/SharedPreferencesManager;->readStringSet(Ljava/lang/String;)Ljava/util/Set;
-HSPLorg/chromium/chrome/browser/preferences/SharedPreferencesManager;->readStringSet(Ljava/lang/String;Ljava/util/Set;)Ljava/util/Set;
-HSPLorg/chromium/chrome/browser/preferences/SharedPreferencesManager;->removeKey(Ljava/lang/String;)V
-HSPLorg/chromium/chrome/browser/preferences/SharedPreferencesManager;->removeObserver(Lorg/chromium/chrome/browser/preferences/SharedPreferencesManager$Observer;)V
-HSPLorg/chromium/chrome/browser/preferences/SharedPreferencesManager;->writeBoolean(Ljava/lang/String;Z)V
-HSPLorg/chromium/chrome/browser/preferences/SharedPreferencesManager;->writeInt(ILjava/lang/String;)V
-HSPLorg/chromium/chrome/browser/preferences/SharedPreferencesManager;->writeLong(JLjava/lang/String;)V
-HSPLorg/chromium/chrome/browser/preferences/SharedPreferencesManager;->writeString(Ljava/lang/String;Ljava/lang/String;)V
-Lorg/chromium/chrome/browser/preferences/SharedPreferencesManager$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/preferences/SharedPreferencesManager$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/preferences/SharedPreferencesManager$Observer;)V
-HSPLorg/chromium/chrome/browser/preferences/SharedPreferencesManager$$ExternalSyntheticLambda0;->onSharedPreferenceChanged(Landroid/content/SharedPreferences;Ljava/lang/String;)V
-Lorg/chromium/chrome/browser/preferences/SharedPreferencesManager$LazyHolder;
-Lorg/chromium/chrome/browser/preferences/SharedPreferencesManager$Observer;
-Lorg/chromium/chrome/browser/price_tracking/PriceTrackingButtonController;
-HSPLorg/chromium/chrome/browser/price_tracking/PriceTrackingButtonController;-><init>(Landroidx/appcompat/app/AppCompatActivity;Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/ui/modaldialog/ModalDialogManager;Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerImpl;Landroid/graphics/drawable/Drawable;Lorg/chromium/base/supplier/ObservableSupplier;)V
-Lorg/chromium/chrome/browser/price_tracking/PriceTrackingButtonController$1;
-HSPLorg/chromium/chrome/browser/price_tracking/PriceTrackingButtonController$1;-><init>(Lorg/chromium/chrome/browser/price_tracking/PriceTrackingButtonController;)V
-Lorg/chromium/chrome/browser/price_tracking/PriceTrackingFeatures;
-HSPLorg/chromium/chrome/browser/price_tracking/PriceTrackingFeatures;->getPriceTrackingNotificationsEnabled()Z
-HSPLorg/chromium/chrome/browser/price_tracking/PriceTrackingFeatures;->isPriceTrackingEligible()Z
-HSPLorg/chromium/chrome/browser/price_tracking/PriceTrackingFeatures;->isPriceTrackingEnabled()Z
-Lorg/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl;
-HSPLorg/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl;-><init>(Landroid/content/Context;)V
-HSPLorg/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl;->getInstance()Lorg/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl;
-HSPLorg/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl;->isUploadEnabledForTests()Z
-HSPLorg/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl;->isUsageAndCrashReportingPermittedByUser()Z
-HSPLorg/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl;->syncUsageAndCrashReportingPermittedByPolicy()V
-Lorg/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl$1;
-HSPLorg/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl$1;-><init>(Lorg/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl;)V
-Lorg/chromium/chrome/browser/profiles/Profile;
-HSPLorg/chromium/chrome/browser/profiles/Profile;-><init>(J)V
-HSPLorg/chromium/chrome/browser/profiles/Profile;->create(J)Lorg/chromium/chrome/browser/profiles/Profile;
-HSPLorg/chromium/chrome/browser/profiles/Profile;->fromWebContents(Lorg/chromium/content_public/browser/WebContents;)Lorg/chromium/chrome/browser/profiles/Profile;
-HSPLorg/chromium/chrome/browser/profiles/Profile;->getLastUsedRegularProfile()Lorg/chromium/chrome/browser/profiles/Profile;
-HSPLorg/chromium/chrome/browser/profiles/Profile;->getNativeBrowserContextPointer()J
-HSPLorg/chromium/chrome/browser/profiles/Profile;->getNativePointer()J
-HSPLorg/chromium/chrome/browser/profiles/Profile;->getProfileKey()Lorg/chromium/chrome/browser/profiles/ProfileKey;
-HSPLorg/chromium/chrome/browser/profiles/Profile;->isOffTheRecord()Z
-Lorg/chromium/chrome/browser/profiles/ProfileKey;
-HSPLorg/chromium/chrome/browser/profiles/ProfileKey;-><init>(J)V
-HSPLorg/chromium/chrome/browser/profiles/ProfileKey;->create(J)Lorg/chromium/chrome/browser/profiles/ProfileKey;
-HSPLorg/chromium/chrome/browser/profiles/ProfileKey;->getLastUsedRegularProfileKey()Lorg/chromium/chrome/browser/profiles/ProfileKey;
-HSPLorg/chromium/chrome/browser/profiles/ProfileKey;->getNativePointer()J
-Lorg/chromium/chrome/browser/profiles/ProfileManager;
-HSPLorg/chromium/chrome/browser/profiles/ProfileManager;->addObserver(Lorg/chromium/chrome/browser/profiles/ProfileManager$Observer;)V
-HSPLorg/chromium/chrome/browser/profiles/ProfileManager;->onProfileAdded(Lorg/chromium/chrome/browser/profiles/Profile;)V
-HSPLorg/chromium/chrome/browser/profiles/ProfileManager;->removeObserver(Lorg/chromium/chrome/browser/profiles/ProfileManager$Observer;)V
-Lorg/chromium/chrome/browser/profiles/ProfileManager$Observer;
-Lorg/chromium/chrome/browser/profiles/ProfileResolver;
-HSPLorg/chromium/chrome/browser/profiles/ProfileResolver;-><init>()V
-Lorg/chromium/chrome/browser/provider/ChromeBrowserProvider;
-HSPLorg/chromium/chrome/browser/provider/ChromeBrowserProvider;-><init>()V
-PLorg/chromium/chrome/browser/query_tiles/QueryTileUtils;->isQueryTilesEnabledOnNTP()Z
-Lorg/chromium/chrome/browser/query_tiles/QueryTileUtils$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/query_tiles/QueryTileUtils$$ExternalSyntheticLambda0;-><init>()V
-HSPLorg/chromium/chrome/browser/query_tiles/QueryTileUtils$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/quickactionsearchwidget/QuickActionSearchWidgetProvider;
-HSPLorg/chromium/chrome/browser/quickactionsearchwidget/QuickActionSearchWidgetProvider;-><init>()V
-HSPLorg/chromium/chrome/browser/quickactionsearchwidget/QuickActionSearchWidgetProvider;->updateWidgets(Landroid/content/Context;Landroid/appwidget/AppWidgetManager;Lorg/chromium/chrome/browser/ui/searchactivityutils/SearchActivityPreferencesManager$SearchActivityPreferences;[I)V
-Lorg/chromium/chrome/browser/quickactionsearchwidget/QuickActionSearchWidgetProvider$$ExternalSyntheticLambda2;
-HSPLorg/chromium/chrome/browser/quickactionsearchwidget/QuickActionSearchWidgetProvider$$ExternalSyntheticLambda2;-><init>()V
-HSPLorg/chromium/chrome/browser/quickactionsearchwidget/QuickActionSearchWidgetProvider$$ExternalSyntheticLambda2;->run()V
-Lorg/chromium/chrome/browser/quickactionsearchwidget/QuickActionSearchWidgetProvider$$ExternalSyntheticLambda3;
-HSPLorg/chromium/chrome/browser/quickactionsearchwidget/QuickActionSearchWidgetProvider$$ExternalSyntheticLambda3;-><init>(Lorg/chromium/chrome/browser/quickactionsearchwidget/QuickActionSearchWidgetProvider$QuickActionSearchWidgetProviderDino;Lorg/chromium/chrome/browser/quickactionsearchwidget/QuickActionSearchWidgetProvider$QuickActionSearchWidgetProviderSearch;)V
-HSPLorg/chromium/chrome/browser/quickactionsearchwidget/QuickActionSearchWidgetProvider$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/quickactionsearchwidget/QuickActionSearchWidgetProvider$QuickActionSearchWidgetProviderDino;
-HSPLorg/chromium/chrome/browser/quickactionsearchwidget/QuickActionSearchWidgetProvider$QuickActionSearchWidgetProviderDino;-><init>()V
-Lorg/chromium/chrome/browser/quickactionsearchwidget/QuickActionSearchWidgetProvider$QuickActionSearchWidgetProviderSearch;
-HSPLorg/chromium/chrome/browser/quickactionsearchwidget/QuickActionSearchWidgetProvider$QuickActionSearchWidgetProviderSearch;-><init>()V
-Lorg/chromium/chrome/browser/read_later/ReadLaterIPHController;
-HSPLorg/chromium/chrome/browser/read_later/ReadLaterIPHController;-><init>(Landroidx/appcompat/app/AppCompatActivity;Landroid/widget/ImageButton;Lorg/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl;)V
-Lorg/chromium/chrome/browser/read_later/ReadLaterIPHController$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/read_later/ReadLaterIPHController$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/read_later/ReadLaterIPHController;I)V
-Lorg/chromium/chrome/browser/rlz/RevenueStats;
-HSPLorg/chromium/chrome/browser/rlz/RevenueStats;-><init>()V
-Lorg/chromium/chrome/browser/search_engines/TemplateUrlServiceFactory;
-HSPLorg/chromium/chrome/browser/search_engines/TemplateUrlServiceFactory;->get()Lorg/chromium/components/search_engines/TemplateUrlService;
-HSPLorg/chromium/chrome/browser/search_engines/TemplateUrlServiceFactory;->getForProfile(Lorg/chromium/chrome/browser/profiles/Profile;)Lorg/chromium/components/search_engines/TemplateUrlService;
-Lorg/chromium/chrome/browser/searchwidget/SearchActivity;
-Lorg/chromium/chrome/browser/searchwidget/SearchActivity$2$1;
-Lorg/chromium/chrome/browser/searchwidget/SearchWidgetProvider;
-HSPLorg/chromium/chrome/browser/searchwidget/SearchWidgetProvider;->getDelegate()Lorg/chromium/chrome/browser/searchwidget/SearchWidgetProvider$SearchWidgetProviderDelegate;
-HSPLorg/chromium/chrome/browser/searchwidget/SearchWidgetProvider;->performUpdate([ILorg/chromium/chrome/browser/ui/searchactivityutils/SearchActivityPreferencesManager$SearchActivityPreferences;)V
-Lorg/chromium/chrome/browser/searchwidget/SearchWidgetProvider$SearchWidgetProviderDelegate;
-HSPLorg/chromium/chrome/browser/searchwidget/SearchWidgetProvider$SearchWidgetProviderDelegate;-><init>()V
-HSPLorg/chromium/chrome/browser/searchwidget/SearchWidgetProvider$SearchWidgetProviderDelegate;->accept(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/segmentation_platform/ContextualPageActionController;
-HSPLorg/chromium/chrome/browser/segmentation_platform/ContextualPageActionController;-><init>(Lorg/chromium/base/supplier/ObservableSupplier;Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController;Lorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda1;Lorg/chromium/base/supplier/ObservableSupplier;)V
-HSPLorg/chromium/chrome/browser/segmentation_platform/ContextualPageActionController;->getValidActiveTab()Lorg/chromium/chrome/browser/tab/Tab;
-HSPLorg/chromium/chrome/browser/segmentation_platform/ContextualPageActionController;->maybeShowContextualPageAction()V
-HSPLorg/chromium/chrome/browser/segmentation_platform/ContextualPageActionController;->showDynamicAction(I)V
-Lorg/chromium/chrome/browser/segmentation_platform/ContextualPageActionController$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/segmentation_platform/ContextualPageActionController$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/segmentation_platform/ContextualPageActionController;Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda1;Lorg/chromium/base/supplier/ObservableSupplier;)V
-HSPLorg/chromium/chrome/browser/segmentation_platform/ContextualPageActionController$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/segmentation_platform/ContextualPageActionController$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/segmentation_platform/ContextualPageActionController$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/segmentation_platform/ContextualPageActionController;)V
-HSPLorg/chromium/chrome/browser/segmentation_platform/ContextualPageActionController$$ExternalSyntheticLambda1;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/segmentation_platform/ContextualPageActionController$$ExternalSyntheticLambda2;
-HSPLorg/chromium/chrome/browser/segmentation_platform/ContextualPageActionController$$ExternalSyntheticLambda2;-><init>(Lorg/chromium/chrome/browser/segmentation_platform/ContextualPageActionController;Lorg/chromium/chrome/browser/segmentation_platform/SignalAccumulator;)V
-HSPLorg/chromium/chrome/browser/segmentation_platform/ContextualPageActionController$$ExternalSyntheticLambda2;->run()V
-Lorg/chromium/chrome/browser/segmentation_platform/ContextualPageActionController$$ExternalSyntheticLambda3;
-HSPLorg/chromium/chrome/browser/segmentation_platform/ContextualPageActionController$$ExternalSyntheticLambda3;-><init>(Lorg/chromium/chrome/browser/segmentation_platform/ContextualPageActionController;Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/segmentation_platform/ContextualPageActionController$$ExternalSyntheticLambda3;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/segmentation_platform/ContextualPageActionController$1;
-HSPLorg/chromium/chrome/browser/segmentation_platform/ContextualPageActionController$1;-><init>(Lorg/chromium/chrome/browser/segmentation_platform/ContextualPageActionController;)V
-HSPLorg/chromium/chrome/browser/segmentation_platform/ContextualPageActionController$1;->didFirstVisuallyNonEmptyPaint(Lorg/chromium/chrome/browser/tab/TabImpl;)V
-Lorg/chromium/chrome/browser/segmentation_platform/ContextualPageActionController$ActionProvider;
-HSPLorg/chromium/chrome/browser/segmentation_platform/ContextualPageActionController$ActionProvider;->onActionShown(Lorg/chromium/chrome/browser/tab/Tab;I)V
-Lorg/chromium/chrome/browser/segmentation_platform/PriceTrackingActionProvider;
-HSPLorg/chromium/chrome/browser/segmentation_platform/PriceTrackingActionProvider;-><init>(Lorg/chromium/base/supplier/Supplier;Lorg/chromium/base/supplier/Supplier;)V
-HSPLorg/chromium/chrome/browser/segmentation_platform/PriceTrackingActionProvider;->getAction(Lorg/chromium/chrome/browser/tab/Tab;Lorg/chromium/chrome/browser/segmentation_platform/SignalAccumulator;)V
-Lorg/chromium/chrome/browser/segmentation_platform/PriceTrackingActionProvider$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/segmentation_platform/PriceTrackingActionProvider$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/segmentation_platform/PriceTrackingActionProvider;Lorg/chromium/chrome/browser/segmentation_platform/SignalAccumulator;Lorg/chromium/chrome/browser/bookmarks/BookmarkModel;Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/segmentation_platform/PriceTrackingActionProvider$$ExternalSyntheticLambda1;->run()V
-Lorg/chromium/chrome/browser/segmentation_platform/SignalAccumulator;
-HSPLorg/chromium/chrome/browser/segmentation_platform/SignalAccumulator;-><init>(Landroid/os/Handler;Lorg/chromium/chrome/browser/tab/Tab;Ljava/util/ArrayList;)V
-HSPLorg/chromium/chrome/browser/segmentation_platform/SignalAccumulator;->proceedToNextStepIfReady()V
-Lorg/chromium/chrome/browser/segmentation_platform/SignalAccumulator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/segmentation_platform/SignalAccumulator$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/segmentation_platform/SignalAccumulator;)V
-HSPLorg/chromium/chrome/browser/segmentation_platform/SignalAccumulator$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/settings/SettingsLauncherImpl;
-HSPLorg/chromium/chrome/browser/settings/SettingsLauncherImpl;-><init>()V
-Lorg/chromium/chrome/browser/share/ShareButtonController;
-HSPLorg/chromium/chrome/browser/share/ShareButtonController;-><init>(Landroidx/appcompat/app/AppCompatActivity;Landroid/graphics/drawable/Drawable;Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/base/supplier/ObservableSupplier;Lorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda1;Lorg/chromium/chrome/browser/share/ShareUtils;Lorg/chromium/ui/modaldialog/ModalDialogManager;Lorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda2;)V
-Lorg/chromium/chrome/browser/share/ShareDelegateImpl;
-HSPLorg/chromium/chrome/browser/share/ShareDelegateImpl;-><init>(Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerImpl;Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/chrome/browser/share/ShareDelegateImpl$ShareSheetDelegate;Z)V
-Lorg/chromium/chrome/browser/share/ShareDelegateImpl$ShareSheetDelegate;
-HSPLorg/chromium/chrome/browser/share/ShareDelegateImpl$ShareSheetDelegate;-><init>()V
-Lorg/chromium/chrome/browser/share/ShareDelegateSupplier;
-HSPLorg/chromium/chrome/browser/share/ShareDelegateSupplier;-><init>()V
-Lorg/chromium/chrome/browser/share/ShareUtils;
-HSPLorg/chromium/chrome/browser/share/ShareUtils;-><init>()V
-Lorg/chromium/chrome/browser/share/crow/CrowButtonDelegate;
-Lorg/chromium/chrome/browser/share/crow/CrowButtonDelegateImpl;
-HSPLorg/chromium/chrome/browser/share/crow/CrowButtonDelegateImpl;-><init>()V
-HSPLorg/chromium/chrome/browser/share/crow/CrowButtonDelegateImpl;->isEnabledForSite(Lorg/chromium/url/GURL;Lorg/chromium/base/Callback;)V
-Lorg/chromium/chrome/browser/share/crow/CrowIphController;
-HSPLorg/chromium/chrome/browser/share/crow/CrowIphController;-><init>(Landroidx/appcompat/app/AppCompatActivity;Lorg/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl;Lorg/chromium/chrome/browser/share/crow/CrowButtonDelegateImpl;Lorg/chromium/chrome/browser/ActivityTabProvider;Landroid/widget/ImageButton;)V
-Lorg/chromium/chrome/browser/share/crow/CrowIphController$1;
-HSPLorg/chromium/chrome/browser/share/crow/CrowIphController$1;-><init>(Lorg/chromium/chrome/browser/share/crow/CrowIphController;)V
-HSPLorg/chromium/chrome/browser/share/crow/CrowIphController$1;->onPageLoadFinished(Lorg/chromium/chrome/browser/tab/Tab;Lorg/chromium/url/GURL;)V
-Lorg/chromium/chrome/browser/share/crow/CrowIphController$1$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/share/crow/CrowIphController$1$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/share/crow/CrowIphController$1;Lorg/chromium/url/GURL;)V
-HSPLorg/chromium/chrome/browser/share/crow/CrowIphController$1$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/share/link_to_text/LinkToTextIPHController;
-HSPLorg/chromium/chrome/browser/share/link_to_text/LinkToTextIPHController;-><init>(Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/base/supplier/ObservableSupplier;)V
-Lorg/chromium/chrome/browser/share/link_to_text/LinkToTextIPHController$1;
-HSPLorg/chromium/chrome/browser/share/link_to_text/LinkToTextIPHController$1;-><init>(Lorg/chromium/chrome/browser/share/link_to_text/LinkToTextIPHController;Lorg/chromium/base/supplier/ObservableSupplier;)V
-HSPLorg/chromium/chrome/browser/share/link_to_text/LinkToTextIPHController$1;->onPageLoadFinished(Lorg/chromium/chrome/browser/tab/Tab;Lorg/chromium/url/GURL;)V
-PLorg/chromium/chrome/browser/signin/SigninCheckerProvider;->get()Lorg/chromium/chrome/browser/signin/services/SigninChecker;
-Lorg/chromium/chrome/browser/signin/SigninManagerImpl;
-HSPLorg/chromium/chrome/browser/signin/SigninManagerImpl;-><init>(JLorg/chromium/components/signin/identitymanager/AccountTrackerService;Lorg/chromium/components/signin/identitymanager/IdentityManager;Lorg/chromium/components/signin/identitymanager/IdentityMutator;)V
-HSPLorg/chromium/chrome/browser/signin/SigninManagerImpl;->create(JLorg/chromium/components/signin/identitymanager/AccountTrackerService;Lorg/chromium/components/signin/identitymanager/IdentityManager;Lorg/chromium/components/signin/identitymanager/IdentityMutator;)Lorg/chromium/chrome/browser/signin/services/SigninManager;
-PLorg/chromium/chrome/browser/signin/SigninManagerImpl;->getIdentityManager()Lorg/chromium/components/signin/identitymanager/IdentityManager;
-PLorg/chromium/chrome/browser/signin/SigninManagerImpl;->isForceSigninEnabled()Z
-HSPLorg/chromium/chrome/browser/signin/SigninManagerImpl;->isSigninSupported()Z
-HSPLorg/chromium/chrome/browser/signin/SigninManagerImpl;->isSyncOptInAllowed()Z
-HSPLorg/chromium/chrome/browser/signin/SigninManagerImpl;->reloadAllAccountsFromSystem(Lorg/chromium/components/signin/base/CoreAccountId;)V
-PLorg/chromium/chrome/browser/signin/SigninManagerImpl;->runAfterOperationInProgress(Ljava/lang/Runnable;)V
-Lorg/chromium/chrome/browser/signin/services/FREMobileIdentityConsistencyFieldTrial;
-HSPLorg/chromium/chrome/browser/signin/services/FREMobileIdentityConsistencyFieldTrial;->generateFirstRunTrialGroup(II)Ljava/lang/String;
-HSPLorg/chromium/chrome/browser/signin/services/FREMobileIdentityConsistencyFieldTrial;->getFirstRunTrialGroup()Ljava/lang/String;
-HSPLorg/chromium/chrome/browser/signin/services/FREMobileIdentityConsistencyFieldTrial;->getFirstRunTrialVariationId(II)I
-Lorg/chromium/chrome/browser/signin/services/IdentityServicesProvider;
-HSPLorg/chromium/chrome/browser/signin/services/IdentityServicesProvider;-><init>()V
-HSPLorg/chromium/chrome/browser/signin/services/IdentityServicesProvider;->get()Lorg/chromium/chrome/browser/signin/services/IdentityServicesProvider;
-HSPLorg/chromium/chrome/browser/signin/services/IdentityServicesProvider;->getIdentityManager(Lorg/chromium/chrome/browser/profiles/Profile;)Lorg/chromium/components/signin/identitymanager/IdentityManager;
-HSPLorg/chromium/chrome/browser/signin/services/IdentityServicesProvider;->getSigninManager(Lorg/chromium/chrome/browser/profiles/Profile;)Lorg/chromium/chrome/browser/signin/services/SigninManager;
-Lorg/chromium/chrome/browser/signin/services/ProfileDataCache$Observer;
-PLorg/chromium/chrome/browser/signin/services/SigninChecker;-><init>(Lorg/chromium/chrome/browser/signin/services/SigninManager;Lorg/chromium/components/signin/identitymanager/AccountTrackerService;)V
-PLorg/chromium/chrome/browser/signin/services/SigninChecker;->validatePrimaryAccountExists(Ljava/util/List;Z)V
-PLorg/chromium/chrome/browser/signin/services/SigninChecker$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/signin/services/SigninChecker;)V
-PLorg/chromium/chrome/browser/signin/services/SigninChecker$$ExternalSyntheticLambda1;->onResult(Ljava/lang/Object;)V
-PLorg/chromium/chrome/browser/signin/services/SigninChecker$$ExternalSyntheticLambda2;-><init>(Lorg/chromium/chrome/browser/signin/services/SigninChecker;Ljava/lang/Object;I)V
-PLorg/chromium/chrome/browser/signin/services/SigninChecker$$ExternalSyntheticLambda2;->run()V
-PLorg/chromium/chrome/browser/signin/services/SigninChecker$$ExternalSyntheticLambda4;-><init>(Lorg/chromium/chrome/browser/signin/services/SigninChecker;)V
-PLorg/chromium/chrome/browser/signin/services/SigninChecker$$ExternalSyntheticLambda4;->onStatusReady(ZLandroid/accounts/Account;)V
-Lorg/chromium/chrome/browser/signin/services/SigninManager;
-Lorg/chromium/chrome/browser/status_indicator/StatusIndicatorCoordinator;
-HSPLorg/chromium/chrome/browser/status_indicator/StatusIndicatorCoordinator;-><init>(Landroidx/appcompat/app/AppCompatActivity;Lorg/chromium/ui/resources/ResourceManager;Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;Lorg/chromium/chrome/browser/tab/TabObscuringHandler;Lorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator$$ExternalSyntheticLambda0;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator$$ExternalSyntheticLambda4;)V
-Lorg/chromium/chrome/browser/status_indicator/StatusIndicatorCoordinator$StatusIndicatorObserver;
-Lorg/chromium/chrome/browser/status_indicator/StatusIndicatorMediator;
-HSPLorg/chromium/chrome/browser/status_indicator/StatusIndicatorMediator;-><init>(Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;Lorg/chromium/chrome/browser/tab/TabObscuringHandler;Lorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator$$ExternalSyntheticLambda0;Lorg/chromium/base/supplier/Supplier;)V
-Lorg/chromium/chrome/browser/status_indicator/StatusIndicatorSceneLayer;
-HSPLorg/chromium/chrome/browser/status_indicator/StatusIndicatorSceneLayer;-><init>(Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;)V
-HSPLorg/chromium/chrome/browser/status_indicator/StatusIndicatorSceneLayer;->initializeNative()V
-HSPLorg/chromium/chrome/browser/status_indicator/StatusIndicatorSceneLayer;->isSceneOverlayTreeShowing()Z
-HSPLorg/chromium/chrome/browser/status_indicator/StatusIndicatorSceneLayer;->onSizeChanged(FFFI)V
-HSPLorg/chromium/chrome/browser/status_indicator/StatusIndicatorSceneLayer;->shouldHideAndroidBrowserControls()Z
-HSPLorg/chromium/chrome/browser/status_indicator/StatusIndicatorSceneLayer;->updateOverlay(J)Z
-Lorg/chromium/chrome/browser/stylus_handwriting/StylusWritingCoordinator;
-HSPLorg/chromium/chrome/browser/stylus_handwriting/StylusWritingCoordinator;-><init>(Landroid/app/Activity;Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;Lorg/chromium/chrome/browser/ActivityTabProvider;)V
-HSPLorg/chromium/chrome/browser/stylus_handwriting/StylusWritingCoordinator;->onWindowFocusChanged(Z)V
-Lorg/chromium/chrome/browser/stylus_handwriting/StylusWritingCoordinator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/stylus_handwriting/StylusWritingCoordinator$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/stylus_handwriting/StylusWritingCoordinator;)V
-HSPLorg/chromium/chrome/browser/stylus_handwriting/StylusWritingCoordinator$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/stylus_handwriting/StylusWritingCoordinator$1;
-HSPLorg/chromium/chrome/browser/stylus_handwriting/StylusWritingCoordinator$1;-><init>(Lorg/chromium/chrome/browser/stylus_handwriting/StylusWritingCoordinator;)V
-Lorg/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCarouselLayout;
-HSPLorg/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCarouselLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-Lorg/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator;
-HSPLorg/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator;-><init>(Landroid/app/Activity;Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;Landroid/view/View;Lorg/chromium/ui/base/WindowAndroid;ZZILorg/chromium/chrome/browser/ntp/NewTabPageLayout$$ExternalSyntheticLambda3;Lorg/chromium/chrome/browser/ntp/NewTabPageLayout$$ExternalSyntheticLambda3;)V
-HSPLorg/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator;->destroyMvtiles()V
-Lorg/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator$$ExternalSyntheticLambda1;-><init>()V
-Lorg/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator;
-HSPLorg/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator;-><init>(Landroid/content/res/Resources;Lorg/chromium/components/browser_ui/widget/displaystyle/UiConfig;Landroid/view/ViewGroup;Landroid/view/ViewStub;Lorg/chromium/chrome/browser/suggestions/tile/TileRenderer;Lorg/chromium/ui/modelutil/PropertyModel;ZZZLorg/chromium/chrome/browser/ntp/NewTabPageLayout$$ExternalSyntheticLambda3;Lorg/chromium/chrome/browser/ntp/NewTabPageLayout$$ExternalSyntheticLambda3;)V
-HSPLorg/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator;->maybeSetPortraitIntervalPaddingsForCarousel()V
-Lorg/chromium/chrome/browser/suggestions/tile/MostVisitedTilesProperties;
-Lorg/chromium/chrome/browser/suggestions/tile/MostVisitedTilesViewBinder$ViewHolder;
-HSPLorg/chromium/chrome/browser/suggestions/tile/MostVisitedTilesViewBinder$ViewHolder;-><init>(Landroid/view/View;Landroid/view/ViewGroup;)V
-Lorg/chromium/chrome/browser/suggestions/tile/TileRenderer;
-HSPLorg/chromium/chrome/browser/suggestions/tile/TileRenderer;-><init>(Landroid/content/Context;ILorg/chromium/chrome/browser/suggestions/ImageFetcher;)V
-PLorg/chromium/chrome/browser/sync/SyncErrorNotifier;-><init>()V
-Lorg/chromium/chrome/browser/sync/SyncService;
-HSPLorg/chromium/chrome/browser/sync/SyncService;-><init>()V
-HSPLorg/chromium/chrome/browser/sync/SyncService;->get()Lorg/chromium/chrome/browser/sync/SyncService;
-Lorg/chromium/chrome/browser/sync/SyncService$SyncStateChangedListener;
-Lorg/chromium/chrome/browser/sync/SyncServiceImpl;
-HSPLorg/chromium/chrome/browser/sync/SyncServiceImpl;-><init>()V
-PLorg/chromium/chrome/browser/sync/SyncServiceImpl;->addSyncStateChangedListener(Lorg/chromium/chrome/browser/sync/SyncService$SyncStateChangedListener;)V
-PLorg/chromium/chrome/browser/sync/SyncServiceImpl;->isEngineInitialized()Z
-HSPLorg/chromium/chrome/browser/sync/SyncServiceImpl;->isSyncRequested()Z
-Lorg/chromium/chrome/browser/sync/TrustedVaultClient;
-HSPLorg/chromium/chrome/browser/sync/TrustedVaultClient;-><init>(Lorg/chromium/chrome/browser/sync/TrustedVaultClient$EmptyBackend;)V
-HSPLorg/chromium/chrome/browser/sync/TrustedVaultClient;->get()Lorg/chromium/chrome/browser/sync/TrustedVaultClient;
-HSPLorg/chromium/chrome/browser/sync/TrustedVaultClient;->registerNative(J)V
-Lorg/chromium/chrome/browser/sync/TrustedVaultClient$EmptyBackend;
-HSPLorg/chromium/chrome/browser/sync/TrustedVaultClient$EmptyBackend;-><init>()V
-Lorg/chromium/chrome/browser/sync/settings/SyncSettingsUtils;
-HSPLorg/chromium/chrome/browser/sync/settings/SyncSettingsUtils;->getSyncError()I
-Lorg/chromium/chrome/browser/sync/ui/SyncErrorMessage;
-HSPLorg/chromium/chrome/browser/sync/ui/SyncErrorMessage;->getMessageType(I)I
-HSPLorg/chromium/chrome/browser/sync/ui/SyncErrorMessage;->maybeShowMessageUi(Lorg/chromium/ui/base/ActivityWindowAndroid;)V
-Lorg/chromium/chrome/browser/tab/AccessibilityVisibilityHandler;
-HSPLorg/chromium/chrome/browser/tab/AccessibilityVisibilityHandler;-><init>(Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/chrome/browser/tab/TabObscuringHandler;)V
-HSPLorg/chromium/chrome/browser/tab/AccessibilityVisibilityHandler;->onDestroy()V
-Lorg/chromium/chrome/browser/tab/AccessibilityVisibilityHandler$1;
-HSPLorg/chromium/chrome/browser/tab/AccessibilityVisibilityHandler$1;-><init>(Lorg/chromium/chrome/browser/tab/AccessibilityVisibilityHandler;Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/chrome/browser/tab/TabObscuringHandler;)V
-HSPLorg/chromium/chrome/browser/tab/AccessibilityVisibilityHandler$1;->onObservingDifferentTab(Lorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/tab/AutofillSessionLifetimeController;
-HSPLorg/chromium/chrome/browser/tab/AutofillSessionLifetimeController;-><init>(Landroid/app/Activity;Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;Lorg/chromium/chrome/browser/ActivityTabProvider;)V
-HSPLorg/chromium/chrome/browser/tab/AutofillSessionLifetimeController;->onDestroy()V
-Lorg/chromium/chrome/browser/tab/AutofillSessionLifetimeController$1;
-HSPLorg/chromium/chrome/browser/tab/AutofillSessionLifetimeController$1;-><init>(Lorg/chromium/chrome/browser/tab/AutofillSessionLifetimeController;Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;)V
-HSPLorg/chromium/chrome/browser/tab/AutofillSessionLifetimeController$1;->onInteractabilityChanged(Lorg/chromium/chrome/browser/tab/Tab;Z)V
-Lorg/chromium/chrome/browser/tab/CurrentTabObserver;
-HSPLorg/chromium/chrome/browser/tab/CurrentTabObserver;-><init>(Lorg/chromium/base/supplier/ObservableSupplier;Lorg/chromium/chrome/browser/tab/EmptyTabObserver;Lorg/chromium/base/Callback;)V
-HSPLorg/chromium/chrome/browser/tab/CurrentTabObserver;->destroy()V
-Lorg/chromium/chrome/browser/tab/CurrentTabObserver$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/tab/CurrentTabObserver$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/tab/CurrentTabObserver;Lorg/chromium/base/Callback;)V
-HSPLorg/chromium/chrome/browser/tab/CurrentTabObserver$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/tab/EmptyTabObserver;
-HSPLorg/chromium/chrome/browser/tab/EmptyTabObserver;-><init>()V
-HSPLorg/chromium/chrome/browser/tab/EmptyTabObserver;->didFirstVisuallyNonEmptyPaint(Lorg/chromium/chrome/browser/tab/TabImpl;)V
-HSPLorg/chromium/chrome/browser/tab/EmptyTabObserver;->onBackgroundColorChanged(Lorg/chromium/chrome/browser/tab/TabImpl;)V
-HSPLorg/chromium/chrome/browser/tab/EmptyTabObserver;->onBrowserControlsOffsetChanged(Lorg/chromium/chrome/browser/tab/TabImpl;IIIII)V
-HSPLorg/chromium/chrome/browser/tab/EmptyTabObserver;->onContentChanged(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tab/EmptyTabObserver;->onDestroyed(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tab/EmptyTabObserver;->onDidFinishNavigationInPrimaryMainFrame(Lorg/chromium/chrome/browser/tab/TabImpl;Lorg/chromium/content_public/browser/NavigationHandle;)V
-HSPLorg/chromium/chrome/browser/tab/EmptyTabObserver;->onDidStartNavigationInPrimaryMainFrame(Lorg/chromium/chrome/browser/tab/TabImpl;Lorg/chromium/content_public/browser/NavigationHandle;)V
-HSPLorg/chromium/chrome/browser/tab/EmptyTabObserver;->onHidden(Lorg/chromium/chrome/browser/tab/Tab;I)V
-HSPLorg/chromium/chrome/browser/tab/EmptyTabObserver;->onInitialized(Ljava/lang/String;)V
-HSPLorg/chromium/chrome/browser/tab/EmptyTabObserver;->onInteractabilityChanged(Lorg/chromium/chrome/browser/tab/Tab;Z)V
-HSPLorg/chromium/chrome/browser/tab/EmptyTabObserver;->onLoadProgressChanged(Lorg/chromium/chrome/browser/tab/Tab;F)V
-HSPLorg/chromium/chrome/browser/tab/EmptyTabObserver;->onLoadStarted(Lorg/chromium/chrome/browser/tab/TabImpl;Z)V
-HSPLorg/chromium/chrome/browser/tab/EmptyTabObserver;->onLoadStopped(Lorg/chromium/chrome/browser/tab/TabImpl;Z)V
-HSPLorg/chromium/chrome/browser/tab/EmptyTabObserver;->onLoadUrl(ILorg/chromium/chrome/browser/tab/Tab;Lorg/chromium/content_public/browser/LoadUrlParams;)V
-HSPLorg/chromium/chrome/browser/tab/EmptyTabObserver;->onPageLoadFinished(Lorg/chromium/chrome/browser/tab/Tab;Lorg/chromium/url/GURL;)V
-HSPLorg/chromium/chrome/browser/tab/EmptyTabObserver;->onPageLoadStarted(Lorg/chromium/chrome/browser/tab/Tab;Lorg/chromium/url/GURL;)V
-HSPLorg/chromium/chrome/browser/tab/EmptyTabObserver;->onSSLStateUpdated(Lorg/chromium/chrome/browser/tab/TabImpl;)V
-HSPLorg/chromium/chrome/browser/tab/EmptyTabObserver;->onShown(Lorg/chromium/chrome/browser/tab/Tab;I)V
-HSPLorg/chromium/chrome/browser/tab/EmptyTabObserver;->onTitleUpdated(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tab/EmptyTabObserver;->onUpdateUrl(Lorg/chromium/url/GURL;)V
-HSPLorg/chromium/chrome/browser/tab/EmptyTabObserver;->onUrlUpdated(Lorg/chromium/chrome/browser/tab/TabImpl;)V
-Lorg/chromium/chrome/browser/tab/InterceptNavigationDelegateClientImpl;
-HSPLorg/chromium/chrome/browser/tab/InterceptNavigationDelegateClientImpl;-><init>(Lorg/chromium/chrome/browser/tab/TabImpl;)V
-HSPLorg/chromium/chrome/browser/tab/InterceptNavigationDelegateClientImpl;->getOrCreateRedirectHandler()Lorg/chromium/components/external_intents/RedirectHandler;
-Lorg/chromium/chrome/browser/tab/InterceptNavigationDelegateClientImpl$1;
-HSPLorg/chromium/chrome/browser/tab/InterceptNavigationDelegateClientImpl$1;-><init>(Lorg/chromium/chrome/browser/tab/InterceptNavigationDelegateClientImpl;)V
-HSPLorg/chromium/chrome/browser/tab/InterceptNavigationDelegateClientImpl$1;->onContentChanged(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tab/InterceptNavigationDelegateClientImpl$1;->onDestroyed(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tab/InterceptNavigationDelegateClientImpl$1;->onDidFinishNavigationInPrimaryMainFrame(Lorg/chromium/chrome/browser/tab/TabImpl;Lorg/chromium/content_public/browser/NavigationHandle;)V
-Lorg/chromium/chrome/browser/tab/InterceptNavigationDelegateTabHelper;
-HSPLorg/chromium/chrome/browser/tab/InterceptNavigationDelegateTabHelper;-><init>(Lorg/chromium/chrome/browser/tab/TabImpl;)V
-HSPLorg/chromium/chrome/browser/tab/InterceptNavigationDelegateTabHelper;->destroy()V
-Lorg/chromium/chrome/browser/tab/RedirectHandlerTabHelper;
-HSPLorg/chromium/chrome/browser/tab/RedirectHandlerTabHelper;-><init>(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tab/RedirectHandlerTabHelper;->destroy()V
-HSPLorg/chromium/chrome/browser/tab/RedirectHandlerTabHelper;->getOrCreateHandlerFor(Lorg/chromium/chrome/browser/tab/Tab;)Lorg/chromium/components/external_intents/RedirectHandler;
-HSPLorg/chromium/chrome/browser/tab/RedirectHandlerTabHelper;->onDidFinishNavigationInPrimaryMainFrame(Lorg/chromium/chrome/browser/tab/TabImpl;Lorg/chromium/content_public/browser/NavigationHandle;)V
-HSPLorg/chromium/chrome/browser/tab/RedirectHandlerTabHelper;->onHidden(Lorg/chromium/chrome/browser/tab/Tab;I)V
-HSPLorg/chromium/chrome/browser/tab/RedirectHandlerTabHelper;->updateIntentInTab(Lorg/chromium/chrome/browser/tab/Tab;Landroid/content/Intent;)V
-Lorg/chromium/chrome/browser/tab/RequestDesktopUtils;
-HSPLorg/chromium/chrome/browser/tab/RequestDesktopUtils;->maybeShowDefaultEnableGlobalSettingMessage(Lorg/chromium/chrome/browser/profiles/Profile;Lorg/chromium/components/messages/ManagedMessageDispatcher;Landroidx/appcompat/app/AppCompatActivity;)Z
-Lorg/chromium/chrome/browser/tab/SadTab;
-HSPLorg/chromium/chrome/browser/tab/SadTab;->isShowing(Lorg/chromium/chrome/browser/tab/Tab;)Z
-Lorg/chromium/chrome/browser/tab/Tab;
-Lorg/chromium/chrome/browser/tab/TabAssociatedApp;
-HSPLorg/chromium/chrome/browser/tab/TabAssociatedApp;-><init>(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tab/TabAssociatedApp;->cleanupWebContents(Lorg/chromium/content_public/browser/WebContents;)V
-HSPLorg/chromium/chrome/browser/tab/TabAssociatedApp;->from(Lorg/chromium/chrome/browser/tab/Tab;)Lorg/chromium/chrome/browser/tab/TabAssociatedApp;
-HSPLorg/chromium/chrome/browser/tab/TabAssociatedApp;->initWebContents(Lorg/chromium/content_public/browser/WebContents;)V
-Lorg/chromium/chrome/browser/tab/TabAssociatedApp$1;
-HSPLorg/chromium/chrome/browser/tab/TabAssociatedApp$1;-><init>(Lorg/chromium/chrome/browser/tab/TabAssociatedApp;)V
-HSPLorg/chromium/chrome/browser/tab/TabAssociatedApp$1;->onDestroyed(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tab/TabAssociatedApp$1;->onInitialized(Ljava/lang/String;)V
-HSPLorg/chromium/chrome/browser/tab/TabAssociatedApp$1;->onLoadUrl(ILorg/chromium/chrome/browser/tab/Tab;Lorg/chromium/content_public/browser/LoadUrlParams;)V
-Lorg/chromium/chrome/browser/tab/TabAttributes;
-HSPLorg/chromium/chrome/browser/tab/TabAttributes;-><init>()V
-HSPLorg/chromium/chrome/browser/tab/TabAttributes;->from(Lorg/chromium/chrome/browser/tab/Tab;)Lorg/chromium/chrome/browser/tab/TabAttributes;
-HSPLorg/chromium/chrome/browser/tab/TabAttributes;->get(Ljava/lang/String;)Ljava/lang/Object;
-HSPLorg/chromium/chrome/browser/tab/TabAttributes;->set(Ljava/lang/Object;Ljava/lang/String;)V
-Lorg/chromium/chrome/browser/tab/TabBrowserControlsConstraintsHelper;
-HSPLorg/chromium/chrome/browser/tab/TabBrowserControlsConstraintsHelper;-><init>(Lorg/chromium/chrome/browser/tab/TabImpl;)V
-HSPLorg/chromium/chrome/browser/tab/TabBrowserControlsConstraintsHelper;->destroy()V
-HSPLorg/chromium/chrome/browser/tab/TabBrowserControlsConstraintsHelper;->get(Lorg/chromium/chrome/browser/tab/Tab;)Lorg/chromium/chrome/browser/tab/TabBrowserControlsConstraintsHelper;
-HSPLorg/chromium/chrome/browser/tab/TabBrowserControlsConstraintsHelper;->getConstraints()I
-HSPLorg/chromium/chrome/browser/tab/TabBrowserControlsConstraintsHelper;->update(IZ)V
-HSPLorg/chromium/chrome/browser/tab/TabBrowserControlsConstraintsHelper;->updateEnabledState()V
-HSPLorg/chromium/chrome/browser/tab/TabBrowserControlsConstraintsHelper;->updateVisibilityDelegate()V
-Lorg/chromium/chrome/browser/tab/TabBrowserControlsConstraintsHelper$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/tab/TabBrowserControlsConstraintsHelper$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/tab/TabBrowserControlsConstraintsHelper;)V
-HSPLorg/chromium/chrome/browser/tab/TabBrowserControlsConstraintsHelper$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/tab/TabBrowserControlsConstraintsHelper$1;
-HSPLorg/chromium/chrome/browser/tab/TabBrowserControlsConstraintsHelper$1;-><init>(Lorg/chromium/chrome/browser/tab/TabBrowserControlsConstraintsHelper;)V
-HSPLorg/chromium/chrome/browser/tab/TabBrowserControlsConstraintsHelper$1;->onDestroyed(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tab/TabBrowserControlsConstraintsHelper$1;->onDidFinishNavigationInPrimaryMainFrame(Lorg/chromium/chrome/browser/tab/TabImpl;Lorg/chromium/content_public/browser/NavigationHandle;)V
-HSPLorg/chromium/chrome/browser/tab/TabBrowserControlsConstraintsHelper$1;->onInitialized(Ljava/lang/String;)V
-Lorg/chromium/chrome/browser/tab/TabBrowserControlsOffsetHelper;
-HSPLorg/chromium/chrome/browser/tab/TabBrowserControlsOffsetHelper;-><init>(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tab/TabBrowserControlsOffsetHelper;->destroy()V
-HSPLorg/chromium/chrome/browser/tab/TabBrowserControlsOffsetHelper;->get(Lorg/chromium/chrome/browser/tab/Tab;)Lorg/chromium/chrome/browser/tab/TabBrowserControlsOffsetHelper;
-HSPLorg/chromium/chrome/browser/tab/TabBrowserControlsOffsetHelper;->notifyControlsOffsetChanged()V
-Lorg/chromium/chrome/browser/tab/TabBuilder;
-HSPLorg/chromium/chrome/browser/tab/TabBuilder;-><init>()V
-HSPLorg/chromium/chrome/browser/tab/TabBuilder;->build()Lorg/chromium/chrome/browser/tab/TabImpl;
-HSPLorg/chromium/chrome/browser/tab/TabBuilder;->setLaunchType(I)V
-Lorg/chromium/chrome/browser/tab/TabContextMenuItemDelegate;
-HSPLorg/chromium/chrome/browser/tab/TabContextMenuItemDelegate;-><init>(Lorg/chromium/chrome/browser/tab/Tab;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/base/supplier/Supplier;Ljava/lang/Runnable;Lorg/chromium/base/supplier/Supplier;)V
-Lorg/chromium/chrome/browser/tab/TabContextMenuPopulatorFactory;
-HSPLorg/chromium/chrome/browser/tab/TabContextMenuPopulatorFactory;-><init>(Lorg/chromium/chrome/browser/contextmenu/ContextMenuPopulatorFactory;Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tab/TabContextMenuPopulatorFactory;->onDestroy()V
-Lorg/chromium/chrome/browser/tab/TabDelegateFactory;
-Lorg/chromium/chrome/browser/tab/TabFavicon;
-HSPLorg/chromium/chrome/browser/tab/TabFavicon;-><init>(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tab/TabFavicon;->cleanupWebContents(Lorg/chromium/content_public/browser/WebContents;)V
-HSPLorg/chromium/chrome/browser/tab/TabFavicon;->destroyInternal()V
-HSPLorg/chromium/chrome/browser/tab/TabFavicon;->initWebContents(Lorg/chromium/content_public/browser/WebContents;)V
-Lorg/chromium/chrome/browser/tab/TabGestureStateListener;
-HSPLorg/chromium/chrome/browser/tab/TabGestureStateListener;-><init>(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tab/TabGestureStateListener;->cleanupWebContents(Lorg/chromium/content_public/browser/WebContents;)V
-HSPLorg/chromium/chrome/browser/tab/TabGestureStateListener;->initWebContents(Lorg/chromium/content_public/browser/WebContents;)V
-Lorg/chromium/chrome/browser/tab/TabGestureStateListener$1;
-HSPLorg/chromium/chrome/browser/tab/TabGestureStateListener$1;-><init>(Lorg/chromium/chrome/browser/tab/TabGestureStateListener;Lorg/chromium/content/browser/GestureListenerManagerImpl;)V
-Lorg/chromium/chrome/browser/tab/TabHelpers;
-HSPLorg/chromium/chrome/browser/tab/TabHelpers;->initTabHelpers(Lorg/chromium/chrome/browser/tab/TabImpl;Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tab/TabHelpers;->initWebContentsHelpers(Lorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/tab/TabIdManager;
-HSPLorg/chromium/chrome/browser/tab/TabIdManager;-><init>()V
-HSPLorg/chromium/chrome/browser/tab/TabIdManager;->getInstance()Lorg/chromium/chrome/browser/tab/TabIdManager;
-Lorg/chromium/chrome/browser/tab/TabImpl;
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->addObserver(Lorg/chromium/chrome/browser/tab/EmptyTabObserver;)V
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->calculateUserAgentOverrideOption(Lorg/chromium/url/GURL;)I
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->canGoBack()Z
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->canGoForward()Z
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->clearNativePtr()V
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->destroy()V
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->destroyWebContents(Z)V
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->didFinishPageLoad(Lorg/chromium/url/GURL;)V
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->didStartPageLoad(Lorg/chromium/url/GURL;)V
-PLorg/chromium/chrome/browser/tab/TabImpl;->freezeNativePage()V
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->getActivity()Lorg/chromium/chrome/browser/app/ChromeActivity;
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->getContentView$1()Lorg/chromium/components/embedder_support/view/ContentView;
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->getContext()Landroid/content/Context;
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->getId()I
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->getLaunchType()I
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->getNativePage()Lorg/chromium/chrome/browser/ui/native_page/NativePage;
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->getNativePtr()J
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->getPendingLoadParams()Lorg/chromium/content_public/browser/LoadUrlParams;
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->getProgress()F
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->getTabObservers()Lorg/chromium/base/ObserverList$ObserverListIterator;
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->getTabViewManager()Lorg/chromium/chrome/browser/tab/TabViewManagerImpl;
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->getThemeColor()I
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->getUrl()Lorg/chromium/url/GURL;
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->getUserDataHost()Lorg/chromium/base/UserDataHost;
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->getView()Landroid/view/View;
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->getWebContents()Lorg/chromium/content_public/browser/WebContents;
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->getWindowAndroid()Lorg/chromium/ui/base/WindowAndroid;
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->hide(I)V
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->hideNativePage(Ljava/lang/Runnable;Z)V
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->initWebContents(Lorg/chromium/content_public/browser/WebContents;)V
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->isBeingRestored()Z
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->isClosing()Z
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->isCustomTab()Z
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->isDestroyed()Z
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->isDetached(Lorg/chromium/chrome/browser/tab/Tab;)Z
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->isFrozen()Z
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->isHidden()Z
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->isIncognito()Z
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->isInitialized()Z
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->isLoading()Z
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->isNativePage()Z
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->isShowingCustomView()Z
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->isShowingErrorPage()Z
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->isThemingAllowed()Z
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->isUserInteractable()Z
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->loadIfNeeded(I)Z
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->loadUrl(Lorg/chromium/content_public/browser/LoadUrlParams;)I
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->maybeShowNativePage(Ljava/lang/String;Z)Z
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->needsReload()Z
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->notifyContentChanged()V
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->removeObserver(Lorg/chromium/chrome/browser/tab/EmptyTabObserver;)V
-PLorg/chromium/chrome/browser/tab/TabImpl;->restoreFieldsFromState(Lorg/chromium/chrome/browser/tab/TabState;)V
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->setIsTabSaveEnabled(Z)V
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->setNativePtr(J)V
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->show(II)V
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->switchUserAgentIfNeeded(I)V
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->updateInteractableState()V
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->updateThemeColor(I)V
-HSPLorg/chromium/chrome/browser/tab/TabImpl;->updateTitle()V
-Lorg/chromium/chrome/browser/tab/TabImpl$$ExternalSyntheticLambda2;
-HSPLorg/chromium/chrome/browser/tab/TabImpl$$ExternalSyntheticLambda2;-><init>(Lorg/chromium/chrome/browser/tab/TabImpl;)V
-HSPLorg/chromium/chrome/browser/tab/TabImpl$$ExternalSyntheticLambda2;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/tab/TabImpl$1;
-HSPLorg/chromium/chrome/browser/tab/TabImpl$1;-><init>(Lorg/chromium/chrome/browser/tab/TabImpl;)V
-HSPLorg/chromium/chrome/browser/tab/TabImpl$1;->onViewAttachedToWindow(Landroid/view/View;)V
-HSPLorg/chromium/chrome/browser/tab/TabImpl$1;->onViewDetachedFromWindow(Landroid/view/View;)V
-Lorg/chromium/chrome/browser/tab/TabImportanceManager;
-HSPLorg/chromium/chrome/browser/tab/TabImportanceManager;->tabShown(Lorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/tab/TabObscuringHandler;
-HSPLorg/chromium/chrome/browser/tab/TabObscuringHandler;-><init>()V
-HSPLorg/chromium/chrome/browser/tab/TabObscuringHandler;->addObserver(Lorg/chromium/chrome/browser/tab/TabObscuringHandler$Observer;)V
-HSPLorg/chromium/chrome/browser/tab/TabObscuringHandler;->removeObserver(Lorg/chromium/chrome/browser/tab/TabObscuringHandler$Observer;)V
-Lorg/chromium/chrome/browser/tab/TabObscuringHandler$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/tab/TabObscuringHandler$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/tab/TabObscuringHandler;I)V
-Lorg/chromium/chrome/browser/tab/TabObscuringHandler$Observer;
-Lorg/chromium/chrome/browser/tab/TabObscuringHandlerSupplier;
-HSPLorg/chromium/chrome/browser/tab/TabObscuringHandlerSupplier;-><init>()V
-Lorg/chromium/chrome/browser/tab/TabState;
-HSPLorg/chromium/chrome/browser/tab/TabState;-><init>()V
-Lorg/chromium/chrome/browser/tab/TabStateAttributes;
-HSPLorg/chromium/chrome/browser/tab/TabStateAttributes;-><init>(Lorg/chromium/chrome/browser/tab/TabImpl;Ljava/lang/Integer;)V
-HSPLorg/chromium/chrome/browser/tab/TabStateAttributes;->cleanupWebContents(Lorg/chromium/content_public/browser/WebContents;)V
-HSPLorg/chromium/chrome/browser/tab/TabStateAttributes;->destroyInternal()V
-HSPLorg/chromium/chrome/browser/tab/TabStateAttributes;->from(Lorg/chromium/chrome/browser/tab/Tab;)Lorg/chromium/chrome/browser/tab/TabStateAttributes;
-HSPLorg/chromium/chrome/browser/tab/TabStateAttributes;->initWebContents(Lorg/chromium/content_public/browser/WebContents;)V
-HSPLorg/chromium/chrome/browser/tab/TabStateAttributes;->updateIsDirty(I)V
-Lorg/chromium/chrome/browser/tab/TabStateAttributes$1;
-HSPLorg/chromium/chrome/browser/tab/TabStateAttributes$1;-><init>(Lorg/chromium/chrome/browser/tab/TabStateAttributes;)V
-HSPLorg/chromium/chrome/browser/tab/TabStateAttributes$1;->onHidden(Lorg/chromium/chrome/browser/tab/Tab;I)V
-HSPLorg/chromium/chrome/browser/tab/TabStateAttributes$1;->onLoadStopped(Lorg/chromium/chrome/browser/tab/TabImpl;Z)V
-HSPLorg/chromium/chrome/browser/tab/TabStateAttributes$1;->onPageLoadFinished(Lorg/chromium/chrome/browser/tab/Tab;Lorg/chromium/url/GURL;)V
-HSPLorg/chromium/chrome/browser/tab/TabStateAttributes$1;->onTitleUpdated(Lorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/tab/TabStateAttributes$2;
-HSPLorg/chromium/chrome/browser/tab/TabStateAttributes$2;-><init>(Lorg/chromium/chrome/browser/tab/TabStateAttributes;)V
-Lorg/chromium/chrome/browser/tab/TabStateAttributes$3;
-HSPLorg/chromium/chrome/browser/tab/TabStateAttributes$3;-><init>(Lorg/chromium/chrome/browser/tab/TabStateAttributes;Lorg/chromium/content_public/browser/WebContents;)V
-HSPLorg/chromium/chrome/browser/tab/TabStateAttributes$3;->didFinishNavigationInPrimaryMainFrame(Lorg/chromium/content_public/browser/NavigationHandle;)V
-HSPLorg/chromium/chrome/browser/tab/TabStateAttributes$3;->navigationEntriesChanged()V
-Lorg/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate;
-HSPLorg/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate;-><init>(Lorg/chromium/chrome/browser/tab/TabImpl;)V
-HSPLorg/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate;->calculateVisibilityConstraints()I
-HSPLorg/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate;->updateVisibilityConstraints()V
-Lorg/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate$1;
-HSPLorg/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate$1;-><init>(Lorg/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate;)V
-HSPLorg/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate$1;->onDestroyed(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate$1;->onDidFinishNavigationInPrimaryMainFrame(Lorg/chromium/chrome/browser/tab/TabImpl;Lorg/chromium/content_public/browser/NavigationHandle;)V
-HSPLorg/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate$1;->onHidden(Lorg/chromium/chrome/browser/tab/Tab;I)V
-HSPLorg/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate$1;->onPageLoadFinished(Lorg/chromium/chrome/browser/tab/Tab;Lorg/chromium/url/GURL;)V
-HSPLorg/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate$1;->onPageLoadStarted(Lorg/chromium/chrome/browser/tab/Tab;Lorg/chromium/url/GURL;)V
-HSPLorg/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate$1;->onSSLStateUpdated(Lorg/chromium/chrome/browser/tab/TabImpl;)V
-HSPLorg/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate$1;->onShown(Lorg/chromium/chrome/browser/tab/Tab;I)V
-Lorg/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate$1$1;
-HSPLorg/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate$1$1;-><init>(Lorg/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate$1;)V
-PLorg/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate$1$1;->handleMessage(Landroid/os/Message;)V
-Lorg/chromium/chrome/browser/tab/TabStateExtractor;
-HSPLorg/chromium/chrome/browser/tab/TabStateExtractor;->from(Lorg/chromium/chrome/browser/tab/Tab;)Lorg/chromium/chrome/browser/tab/TabState;
-Lorg/chromium/chrome/browser/tab/TabThemeColorHelper;
-HSPLorg/chromium/chrome/browser/tab/TabThemeColorHelper;-><init>(Lorg/chromium/chrome/browser/tab/TabImpl$$ExternalSyntheticLambda2;Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tab/TabThemeColorHelper;->onDestroyed(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tab/TabThemeColorHelper;->onDidFinishNavigationInPrimaryMainFrame(Lorg/chromium/chrome/browser/tab/TabImpl;Lorg/chromium/content_public/browser/NavigationHandle;)V
-HSPLorg/chromium/chrome/browser/tab/TabThemeColorHelper;->onSSLStateUpdated(Lorg/chromium/chrome/browser/tab/TabImpl;)V
-HSPLorg/chromium/chrome/browser/tab/TabThemeColorHelper;->onUrlUpdated(Lorg/chromium/chrome/browser/tab/TabImpl;)V
-HSPLorg/chromium/chrome/browser/tab/TabThemeColorHelper;->updateIfNeeded(Lorg/chromium/chrome/browser/tab/TabImpl;Z)V
-Lorg/chromium/chrome/browser/tab/TabUma;
-HSPLorg/chromium/chrome/browser/tab/TabUma;-><init>(Lorg/chromium/chrome/browser/tab/TabImpl;I)V
-HSPLorg/chromium/chrome/browser/tab/TabUma;->onDestroyed(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tab/TabUma;->onHidden(Lorg/chromium/chrome/browser/tab/Tab;I)V
-HSPLorg/chromium/chrome/browser/tab/TabUma;->onPageLoadFinished(Lorg/chromium/chrome/browser/tab/Tab;Lorg/chromium/url/GURL;)V
-HSPLorg/chromium/chrome/browser/tab/TabUma;->onShown(Lorg/chromium/chrome/browser/tab/Tab;I)V
-HSPLorg/chromium/chrome/browser/tab/TabUma;->updateTabState(I)V
-Lorg/chromium/chrome/browser/tab/TabUtils;
-HSPLorg/chromium/chrome/browser/tab/TabUtils;->getActivity(Lorg/chromium/chrome/browser/tab/Tab;)Landroid/app/Activity;
-HSPLorg/chromium/chrome/browser/tab/TabUtils;->getTabThumbnailAspectRatio(Landroid/content/Context;)F
-Lorg/chromium/chrome/browser/tab/TabViewAndroidDelegate;
-HSPLorg/chromium/chrome/browser/tab/TabViewAndroidDelegate;-><init>(Lorg/chromium/chrome/browser/tab/Tab;Lorg/chromium/components/embedder_support/view/ContentView;)V
-HSPLorg/chromium/chrome/browser/tab/TabViewAndroidDelegate;->getViewportInsetBottom()I
-HSPLorg/chromium/chrome/browser/tab/TabViewAndroidDelegate;->onBackgroundColorChanged(I)V
-HSPLorg/chromium/chrome/browser/tab/TabViewAndroidDelegate;->onBottomControlsChanged(II)V
-HSPLorg/chromium/chrome/browser/tab/TabViewAndroidDelegate;->onTopControlsChanged(III)V
-HSPLorg/chromium/chrome/browser/tab/TabViewAndroidDelegate;->updateInsetViewportBottom()V
-Lorg/chromium/chrome/browser/tab/TabViewAndroidDelegate$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/tab/TabViewAndroidDelegate$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/tab/TabViewAndroidDelegate;)V
-HSPLorg/chromium/chrome/browser/tab/TabViewAndroidDelegate$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/tab/TabViewAndroidDelegate$1;
-HSPLorg/chromium/chrome/browser/tab/TabViewAndroidDelegate$1;-><init>(Lorg/chromium/chrome/browser/tab/TabViewAndroidDelegate;Lorg/chromium/chrome/browser/tab/TabViewAndroidDelegate$$ExternalSyntheticLambda0;)V
-HSPLorg/chromium/chrome/browser/tab/TabViewAndroidDelegate$1;->onHidden(Lorg/chromium/chrome/browser/tab/Tab;I)V
-HSPLorg/chromium/chrome/browser/tab/TabViewAndroidDelegate$1;->onShown(Lorg/chromium/chrome/browser/tab/Tab;I)V
-Lorg/chromium/chrome/browser/tab/TabViewManagerImpl;
-HSPLorg/chromium/chrome/browser/tab/TabViewManagerImpl;-><init>(Lorg/chromium/chrome/browser/tab/TabImpl;)V
-HSPLorg/chromium/chrome/browser/tab/TabViewManagerImpl;->isShowing(Lorg/chromium/chrome/browser/tab/TabViewProvider;)Z
-Lorg/chromium/chrome/browser/tab/TabViewProvider;
-Lorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid;
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid;-><init>()V
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid;->canShowAppBanners()Z
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid;->getManifestScope()Ljava/lang/String;
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid;->shouldEnableEmbeddedMediaExperience()Z
-Lorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroidImpl;
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroidImpl;-><init>(Lorg/chromium/chrome/browser/tab/TabImpl;Lorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid;)V
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroidImpl;->canShowAppBanners()Z
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroidImpl;->controlsResizeView()Z
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroidImpl;->getBottomControlsHeight()I
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroidImpl;->getBottomControlsMinHeight()I
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroidImpl;->getDisplayMode()I
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroidImpl;->getManifestScope()Ljava/lang/String;
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroidImpl;->getTopControlsHeight()I
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroidImpl;->getTopControlsMinHeight()I
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroidImpl;->isCustomTab()Z
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroidImpl;->isForceDarkWebContentEnabled()Z
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroidImpl;->isFullscreenForTabOrPending()Z
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroidImpl;->isModalContextMenu()Z
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroidImpl;->isNightModeEnabled()Z
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroidImpl;->isPictureInPictureEnabled()Z
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroidImpl;->loadingStateChanged(Z)V
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroidImpl;->navigationStateChanged(I)V
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroidImpl;->onUpdateUrl(Lorg/chromium/url/GURL;)V
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroidImpl;->shouldAnimateBrowserControlsHeightChanges()Z
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroidImpl;->shouldEnableEmbeddedMediaExperience()Z
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroidImpl;->visibleSSLStateChanged()V
-Lorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroidImpl$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroidImpl$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/tab/TabWebContentsDelegateAndroidImpl;)V
-Lorg/chromium/chrome/browser/tab/TabWebContentsObserver;
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsObserver;-><init>(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsObserver;->cleanupWebContents(Lorg/chromium/content_public/browser/WebContents;)V
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsObserver;->destroyInternal()V
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsObserver;->from(Lorg/chromium/chrome/browser/tab/Tab;)Lorg/chromium/chrome/browser/tab/TabWebContentsObserver;
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsObserver;->initWebContents(Lorg/chromium/content_public/browser/WebContents;)V
-Lorg/chromium/chrome/browser/tab/TabWebContentsObserver$Observer;
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsObserver$Observer;-><init>(Lorg/chromium/chrome/browser/tab/TabWebContentsObserver;Lorg/chromium/content_public/browser/WebContents;)V
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsObserver$Observer;->destroy()V
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsObserver$Observer;->didFinishLoadInPrimaryMainFrame(Lorg/chromium/content_public/browser/GlobalRenderFrameHostId;Lorg/chromium/url/GURL;ZI)V
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsObserver$Observer;->didFinishNavigationInPrimaryMainFrame(Lorg/chromium/content_public/browser/NavigationHandle;)V
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsObserver$Observer;->didFirstVisuallyNonEmptyPaint()V
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsObserver$Observer;->didStartNavigationInPrimaryMainFrame(Lorg/chromium/content_public/browser/NavigationHandle;)V
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsObserver$Observer;->loadProgressChanged(F)V
-Lorg/chromium/chrome/browser/tab/TabWebContentsUserData;
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsUserData;-><init>(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsUserData;->destroy()V
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsUserData;->destroyInternal()V
-Lorg/chromium/chrome/browser/tab/TabWebContentsUserData$1;
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsUserData$1;-><init>(Lorg/chromium/chrome/browser/tab/TabWebContentsUserData;)V
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsUserData$1;->onContentChanged(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tab/TabWebContentsUserData$1;->onDestroyed(Lorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/tab/TrustedCdn;
-HSPLorg/chromium/chrome/browser/tab/TrustedCdn;-><init>(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tab/TrustedCdn;->cleanupWebContents(Lorg/chromium/content_public/browser/WebContents;)V
-HSPLorg/chromium/chrome/browser/tab/TrustedCdn;->destroyInternal()V
-HSPLorg/chromium/chrome/browser/tab/TrustedCdn;->getPublisherUrl(Lorg/chromium/chrome/browser/tab/Tab;)Ljava/lang/String;
-HSPLorg/chromium/chrome/browser/tab/TrustedCdn;->initWebContents(Lorg/chromium/content_public/browser/WebContents;)V
-HSPLorg/chromium/chrome/browser/tab/TrustedCdn;->setPublisherUrl(Ljava/lang/String;)V
-Lorg/chromium/chrome/browser/tab/TrustedCdn$PublisherUrlVisibility;
-Lorg/chromium/chrome/browser/tab/WebContentsState;
-HSPLorg/chromium/chrome/browser/tab/WebContentsState;-><init>(Ljava/nio/ByteBuffer;)V
-Lorg/chromium/chrome/browser/tab/state/CouponPersistedTabData;
-Lorg/chromium/chrome/browser/tab/state/FilePersistedTabDataStorage;
-HSPLorg/chromium/chrome/browser/tab/state/FilePersistedTabDataStorage;-><init>()V
-Lorg/chromium/chrome/browser/tab/state/FilePersistedTabDataStorage$1;
-HSPLorg/chromium/chrome/browser/tab/state/FilePersistedTabDataStorage$1;-><init>()V
-Lorg/chromium/chrome/browser/tab/state/LevelDBPersistedTabDataStorageFactory;
-HSPLorg/chromium/chrome/browser/tab/state/LevelDBPersistedTabDataStorageFactory;-><init>()V
-Lorg/chromium/chrome/browser/tab/state/LevelDBPersistedTabDataStorageFactory$1;
-HSPLorg/chromium/chrome/browser/tab/state/LevelDBPersistedTabDataStorageFactory$1;-><init>()V
-Lorg/chromium/chrome/browser/tab/state/MockPersistedTabData;
-Lorg/chromium/chrome/browser/tab/state/PersistedTabData;
-HSPLorg/chromium/chrome/browser/tab/state/PersistedTabData;-><init>(Lorg/chromium/chrome/browser/tab/Tab;Lorg/chromium/chrome/browser/tab/state/PersistedTabDataStorage;Ljava/lang/String;)V
-HSPLorg/chromium/chrome/browser/tab/state/PersistedTabData;->from(Lorg/chromium/chrome/browser/tab/Tab;Ljava/lang/Class;)Lorg/chromium/chrome/browser/tab/state/PersistedTabData;
-Lorg/chromium/chrome/browser/tab/state/PersistedTabData$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/tab/state/PersistedTabData$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/tab/state/PersistedTabData;)V
-HSPLorg/chromium/chrome/browser/tab/state/PersistedTabData$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/tab/state/PersistedTabDataConfiguration;
-HSPLorg/chromium/chrome/browser/tab/state/PersistedTabDataConfiguration;-><init>(ILjava/lang/String;Ljava/lang/String;)V
-HSPLorg/chromium/chrome/browser/tab/state/PersistedTabDataConfiguration;->get(Ljava/lang/Class;Z)Lorg/chromium/chrome/browser/tab/state/PersistedTabDataConfiguration;
-HSPLorg/chromium/chrome/browser/tab/state/PersistedTabDataConfiguration;->getFilePersistedTabDataStorage()Lorg/chromium/chrome/browser/tab/state/FilePersistedTabDataStorage;
-HSPLorg/chromium/chrome/browser/tab/state/PersistedTabDataConfiguration;->getStorage()Lorg/chromium/chrome/browser/tab/state/PersistedTabDataStorage;
-Lorg/chromium/chrome/browser/tab/state/PersistedTabDataConfiguration$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/tab/state/PersistedTabDataConfiguration$$ExternalSyntheticLambda0;-><init>(I)V
-HSPLorg/chromium/chrome/browser/tab/state/PersistedTabDataConfiguration$$ExternalSyntheticLambda0;->create()Lorg/chromium/chrome/browser/tab/state/PersistedTabDataStorage;
-Lorg/chromium/chrome/browser/tab/state/PersistedTabDataStorage;
-Lorg/chromium/chrome/browser/tab/state/PersistedTabDataStorageFactory;
-Lorg/chromium/chrome/browser/tab/state/ShoppingPersistedTabData;
-PLorg/chromium/chrome/browser/tab/state/ShoppingPersistedTabData;->isPriceTrackingWithOptimizationGuideEnabled()Z
-Lorg/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver;
-HSPLorg/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModel;)V
-Lorg/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver;
-Lorg/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl;
-HSPLorg/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModel;)V
-Lorg/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate;
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/chrome/browser/multiwindow/MultiWindowModeStateDispatcherImpl;Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;Lorg/chromium/chrome/browser/toolbar/ToolbarManager;Landroid/view/View;Lorg/chromium/base/supplier/OneshotSupplierImpl;Lorg/chromium/base/supplier/OneshotSupplierImpl;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda19;Lorg/chromium/ui/modaldialog/ModalDialogManager;Lorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager;Lorg/chromium/base/supplier/OneshotSupplierImpl;)V
-Lorg/chromium/chrome/browser/tabbed_mode/TabbedNavigationBarColorController;
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedNavigationBarColorController;-><init>(Landroid/view/Window;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/chrome/browser/fullscreen/FullscreenManager;)V
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedNavigationBarColorController;->updateNavigationBarColor()V
-Lorg/chromium/chrome/browser/tabbed_mode/TabbedNavigationBarColorController$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedNavigationBarColorController$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/tabbed_mode/TabbedNavigationBarColorController;)V
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedNavigationBarColorController$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/tabbed_mode/TabbedNavigationBarColorController$1;
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedNavigationBarColorController$1;-><init>(Lorg/chromium/chrome/browser/tabbed_mode/TabbedNavigationBarColorController;)V
-Lorg/chromium/chrome/browser/tabbed_mode/TabbedNavigationBarColorController$2;
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedNavigationBarColorController$2;-><init>(Lorg/chromium/chrome/browser/tabbed_mode/TabbedNavigationBarColorController;)V
-Lorg/chromium/chrome/browser/tabbed_mode/TabbedNavigationBarColorController$3;
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedNavigationBarColorController$3;-><init>(Lorg/chromium/chrome/browser/tabbed_mode/TabbedNavigationBarColorController;)V
-Lorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator;
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator;-><init>(Landroidx/appcompat/app/AppCompatActivity;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda11;Lorg/chromium/chrome/browser/share/ShareDelegateSupplier;Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorProfileSupplier;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorSupplier;Lorg/chromium/base/supplier/OneshotSupplierImpl;Lorg/chromium/base/supplier/OneshotSupplierImpl;Lorg/chromium/base/supplier/OneshotSupplierImpl;Lorg/chromium/base/supplier/OneshotSupplierImpl;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;Lorg/chromium/ui/base/ActivityWindowAndroid;Lorg/chromium/base/jank_tracker/JankTrackerImpl;Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/components/browser_ui/widget/MenuOrKeyboardActionController;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda4;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/chrome/browser/ui/appmenu/AppMenuBlocker;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda14;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda14;Lorg/chromium/chrome/browser/tabmodel/TabCreatorManagerSupplier;Lorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda4;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda4;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda4;Lorg/chromium/chrome/browser/ui/appmenu/AppMenuDelegate;Lorg/chromium/chrome/browser/ui/system/StatusBarColorController$StatusBarColorProvider;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/ui/base/IntentRequestTrackerImpl;Lorg/chromium/components/browser_ui/widget/InsetObserverViewSupplier;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda15;Lorg/chromium/base/supplier/OneshotSupplierImpl;ZLorg/chromium/chrome/browser/back_press/BackPressManager;)V
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator;->buildScrimWidget()Lorg/chromium/components/browser_ui/widget/scrim/ScrimCoordinator;
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator;->onDestroy()V
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator;->onFinishNativeInitialization()V
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator;->onLayoutManagerAvailable(Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;)V
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator;->onPostInflationStartup()V
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator;->setLayoutStateProvider(Lorg/chromium/chrome/browser/layouts/LayoutStateProvider;)V
-Lorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/lifecycle/DestroyObserver;I)V
-Lorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator$$ExternalSyntheticLambda2;
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator$$ExternalSyntheticLambda2;-><init>(Lorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator;I)V
-Lorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator$$ExternalSyntheticLambda3;
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator$$ExternalSyntheticLambda3;-><init>(Lorg/chromium/chrome/browser/compositor/CompositorViewHolder;I)V
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator$$ExternalSyntheticLambda3;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator$$ExternalSyntheticLambda4;
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator$$ExternalSyntheticLambda4;-><init>(ILjava/lang/Object;)V
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator$$ExternalSyntheticLambda4;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator$2;
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator$2;-><init>(Lorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator;)V
-Lorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator$3;
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator$3;-><init>(Lorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator;)V
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator$3;->onStartedShowing(IZ)V
-Lorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator$6;
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator$6;-><init>(Lorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator;)V
-Lorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator$7;
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator$7;-><init>(Lorg/chromium/base/supplier/ObservableSupplierImpl;)V
-Lorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator$RootUiTabObserver;
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator$RootUiTabObserver;-><init>(Lorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator;Lorg/chromium/chrome/browser/ActivityTabProvider;)V
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator$RootUiTabObserver;->destroy()V
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator$RootUiTabObserver;->onObservingDifferentTab(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator$RootUiTabObserver;->swapToTab(Lorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/tabbed_mode/TabbedSystemUiCoordinator;
-HSPLorg/chromium/chrome/browser/tabbed_mode/TabbedSystemUiCoordinator;-><init>(Landroid/view/Window;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/chrome/browser/fullscreen/FullscreenManager;)V
-Lorg/chromium/chrome/browser/tabmodel/AsyncTabParams;
-Lorg/chromium/chrome/browser/tabmodel/AsyncTabParamsManagerImpl;
-HSPLorg/chromium/chrome/browser/tabmodel/AsyncTabParamsManagerImpl;-><init>()V
-HSPLorg/chromium/chrome/browser/tabmodel/AsyncTabParamsManagerImpl;->hasParamsWithTabToReparent()Z
-HSPLorg/chromium/chrome/browser/tabmodel/AsyncTabParamsManagerImpl;->remove(I)Lorg/chromium/chrome/browser/tabmodel/AsyncTabParams;
-Lorg/chromium/chrome/browser/tabmodel/ChromeTabCreator;
-HSPLorg/chromium/chrome/browser/tabmodel/ChromeTabCreator;-><init>(Landroid/app/Activity;Lorg/chromium/ui/base/WindowAndroid;Lorg/chromium/base/supplier/Supplier;ZLorg/chromium/chrome/browser/ChromeTabbedActivity$7;Lorg/chromium/chrome/browser/tabmodel/AsyncTabParamsManagerImpl;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/base/supplier/Supplier;)V
-HSPLorg/chromium/chrome/browser/tabmodel/ChromeTabCreator;->createDefaultTabDelegateFactory()Lorg/chromium/chrome/browser/tab/TabDelegateFactory;
-HSPLorg/chromium/chrome/browser/tabmodel/ChromeTabCreator;->createNewTab(Lorg/chromium/content_public/browser/LoadUrlParams;ILorg/chromium/chrome/browser/tab/Tab;ILandroid/content/Intent;)Lorg/chromium/chrome/browser/tab/Tab;
-HSPLorg/chromium/chrome/browser/tabmodel/ChromeTabCreator;->createNewTab(Lorg/chromium/content_public/browser/LoadUrlParams;ILorg/chromium/chrome/browser/tab/Tab;Landroid/content/Intent;)Lorg/chromium/chrome/browser/tab/Tab;
-HSPLorg/chromium/chrome/browser/tabmodel/ChromeTabCreator;->tabLaunchTypeToHistogramKey(Ljava/lang/Integer;)Ljava/lang/String;
-PLorg/chromium/chrome/browser/tabmodel/ChromeTabCreator$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;)V
-Lorg/chromium/chrome/browser/tabmodel/EmptyTabModel;
-HSPLorg/chromium/chrome/browser/tabmodel/EmptyTabModel;-><init>()V
-HSPLorg/chromium/chrome/browser/tabmodel/EmptyTabModel;->addObserver(Lorg/chromium/chrome/browser/tabmodel/TabModelObserver;)V
-HSPLorg/chromium/chrome/browser/tabmodel/EmptyTabModel;->destroy()V
-HSPLorg/chromium/chrome/browser/tabmodel/EmptyTabModel;->getComprehensiveModel()Lorg/chromium/chrome/browser/tabmodel/TabList;
-HSPLorg/chromium/chrome/browser/tabmodel/EmptyTabModel;->getCount()I
-HSPLorg/chromium/chrome/browser/tabmodel/EmptyTabModel;->index()I
-HSPLorg/chromium/chrome/browser/tabmodel/EmptyTabModel;->removeObserver(Lorg/chromium/chrome/browser/tabmodel/TabModelObserver;)V
-HSPLorg/chromium/chrome/browser/tabmodel/EmptyTabModel;->setActive(Z)V
-Lorg/chromium/chrome/browser/tabmodel/EmptyTabModel$LazyHolder;
-Lorg/chromium/chrome/browser/tabmodel/IncognitoStateProvider;
-HSPLorg/chromium/chrome/browser/tabmodel/IncognitoStateProvider;-><init>()V
-HSPLorg/chromium/chrome/browser/tabmodel/IncognitoStateProvider;->addIncognitoStateObserverAndTrigger(Lorg/chromium/chrome/browser/tabmodel/IncognitoStateProvider$IncognitoStateObserver;)V
-HSPLorg/chromium/chrome/browser/tabmodel/IncognitoStateProvider;->isIncognitoSelected()Z
-Lorg/chromium/chrome/browser/tabmodel/IncognitoStateProvider$1;
-HSPLorg/chromium/chrome/browser/tabmodel/IncognitoStateProvider$1;-><init>(Lorg/chromium/chrome/browser/tabmodel/IncognitoStateProvider;)V
-Lorg/chromium/chrome/browser/tabmodel/IncognitoStateProvider$IncognitoStateObserver;
-Lorg/chromium/chrome/browser/tabmodel/IncognitoTabHost;
-Lorg/chromium/chrome/browser/tabmodel/IncognitoTabHostRegistry;
-HSPLorg/chromium/chrome/browser/tabmodel/IncognitoTabHostRegistry;-><init>()V
-HSPLorg/chromium/chrome/browser/tabmodel/IncognitoTabHostRegistry;->getInstance()Lorg/chromium/chrome/browser/tabmodel/IncognitoTabHostRegistry;
-Lorg/chromium/chrome/browser/tabmodel/IncognitoTabHostUtils;
-HSPLorg/chromium/chrome/browser/tabmodel/IncognitoTabHostUtils;->doIncognitoTabsExist()Z
-Lorg/chromium/chrome/browser/tabmodel/IncognitoTabModel;
-Lorg/chromium/chrome/browser/tabmodel/IncognitoTabModelImpl;
-HSPLorg/chromium/chrome/browser/tabmodel/IncognitoTabModelImpl;-><init>(Lorg/chromium/chrome/browser/tabmodel/IncognitoTabModelImplCreator;)V
-HSPLorg/chromium/chrome/browser/tabmodel/IncognitoTabModelImpl;->addObserver(Lorg/chromium/chrome/browser/tabmodel/TabModelObserver;)V
-HSPLorg/chromium/chrome/browser/tabmodel/IncognitoTabModelImpl;->commitAllTabClosures()V
-HSPLorg/chromium/chrome/browser/tabmodel/IncognitoTabModelImpl;->destroy()V
-HSPLorg/chromium/chrome/browser/tabmodel/IncognitoTabModelImpl;->destroyIncognitoIfNecessary()V
-HSPLorg/chromium/chrome/browser/tabmodel/IncognitoTabModelImpl;->getComprehensiveModel()Lorg/chromium/chrome/browser/tabmodel/TabList;
-HSPLorg/chromium/chrome/browser/tabmodel/IncognitoTabModelImpl;->getCount()I
-HSPLorg/chromium/chrome/browser/tabmodel/IncognitoTabModelImpl;->index()I
-HSPLorg/chromium/chrome/browser/tabmodel/IncognitoTabModelImpl;->isIncognito()Z
-HSPLorg/chromium/chrome/browser/tabmodel/IncognitoTabModelImpl;->removeObserver(Lorg/chromium/chrome/browser/tabmodel/TabModelObserver;)V
-HSPLorg/chromium/chrome/browser/tabmodel/IncognitoTabModelImpl;->setActive(Z)V
-Lorg/chromium/chrome/browser/tabmodel/IncognitoTabModelImpl$IncognitoTabModelDelegate;
-Lorg/chromium/chrome/browser/tabmodel/IncognitoTabModelImplCreator;
-HSPLorg/chromium/chrome/browser/tabmodel/IncognitoTabModelImplCreator;-><init>(Lorg/chromium/base/supplier/Supplier;Lorg/chromium/chrome/browser/tabmodel/ChromeTabCreator;Lorg/chromium/chrome/browser/tabmodel/ChromeTabCreator;Lorg/chromium/chrome/browser/tabmodel/TabModelOrderControllerImpl;Lorg/chromium/chrome/browser/compositor/layouts/content/TabContentManager;Lorg/chromium/chrome/browser/tabmodel/NextTabPolicy$NextTabPolicySupplier;Lorg/chromium/chrome/browser/tabmodel/AsyncTabParamsManagerImpl;ILorg/chromium/chrome/browser/tabmodel/TabModelSelectorImpl;)V
-Lorg/chromium/chrome/browser/tabmodel/IncognitoTabModelObserver;
-Lorg/chromium/chrome/browser/tabmodel/NextTabPolicy$NextTabPolicySupplier;
-Lorg/chromium/chrome/browser/tabmodel/PendingTabClosureManager;
-HSPLorg/chromium/chrome/browser/tabmodel/PendingTabClosureManager;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabList;Lorg/chromium/chrome/browser/tabmodel/TabModelImpl$1;)V
-HSPLorg/chromium/chrome/browser/tabmodel/PendingTabClosureManager;->resetState()V
-Lorg/chromium/chrome/browser/tabmodel/PendingTabClosureManager$RewoundList;
-HSPLorg/chromium/chrome/browser/tabmodel/PendingTabClosureManager$RewoundList;-><init>(Lorg/chromium/chrome/browser/tabmodel/PendingTabClosureManager;)V
-HSPLorg/chromium/chrome/browser/tabmodel/PendingTabClosureManager$RewoundList;->getCount()I
-HSPLorg/chromium/chrome/browser/tabmodel/PendingTabClosureManager$RewoundList;->getTabAt(I)Lorg/chromium/chrome/browser/tab/Tab;
-Lorg/chromium/chrome/browser/tabmodel/PendingTabClosureManager$TabClosureEvent;
-Lorg/chromium/chrome/browser/tabmodel/TabCreator;
-HSPLorg/chromium/chrome/browser/tabmodel/TabCreator;-><init>()V
-Lorg/chromium/chrome/browser/tabmodel/TabCreatorManager;
-Lorg/chromium/chrome/browser/tabmodel/TabCreatorManagerSupplier;
-HSPLorg/chromium/chrome/browser/tabmodel/TabCreatorManagerSupplier;-><init>()V
-Lorg/chromium/chrome/browser/tabmodel/TabList;
-Lorg/chromium/chrome/browser/tabmodel/TabModel;
-Lorg/chromium/chrome/browser/tabmodel/TabModelDelegate;
-Lorg/chromium/chrome/browser/tabmodel/TabModelFilter;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelFilter;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModel;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelFilter;->allTabsClosureCommitted(Z)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelFilter;->didAddTab(Lorg/chromium/chrome/browser/tab/Tab;IIZ)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelFilter;->didSelectTab(IILorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelFilter;->restoreCompleted()V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelFilter;->willAddTab(Lorg/chromium/chrome/browser/tab/Tab;I)V
-Lorg/chromium/chrome/browser/tabmodel/TabModelFilterProvider;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelFilterProvider;-><init>()V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelFilterProvider;->addTabModelFilterObserver(Lorg/chromium/chrome/browser/tabmodel/TabModelObserver;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelFilterProvider;->getCurrentTabModelFilter()Lorg/chromium/chrome/browser/tabmodel/TabModelFilter;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelFilterProvider;->getTabModelFilter(Z)Lorg/chromium/chrome/browser/tabmodel/TabModelFilter;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelFilterProvider;->onTabStateInitialized()V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelFilterProvider;->removeTabModelFilterObserver(Lorg/chromium/chrome/browser/tabmodel/TabModelObserver;)V
-Lorg/chromium/chrome/browser/tabmodel/TabModelImpl;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelImpl;-><init>(Lorg/chromium/chrome/browser/profiles/Profile;ILorg/chromium/chrome/browser/tabmodel/TabCreator;Lorg/chromium/chrome/browser/tabmodel/TabCreator;Lorg/chromium/chrome/browser/tabmodel/TabModelOrderController;Lorg/chromium/chrome/browser/compositor/layouts/content/TabContentManager;Lorg/chromium/chrome/browser/tabmodel/NextTabPolicy$NextTabPolicySupplier;Lorg/chromium/chrome/browser/tabmodel/AsyncTabParamsManagerImpl;Lorg/chromium/chrome/browser/tabmodel/TabModelDelegate;Z)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelImpl;->addObserver(Lorg/chromium/chrome/browser/tabmodel/TabModelObserver;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelImpl;->addTab(Lorg/chromium/chrome/browser/tab/Tab;III)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelImpl;->commitAllTabClosures()V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelImpl;->destroy()V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelImpl;->getComprehensiveModel()Lorg/chromium/chrome/browser/tabmodel/TabList;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelImpl;->getCount()I
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelImpl;->getTabAt(I)Lorg/chromium/chrome/browser/tab/Tab;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelImpl;->hasValidTab()Z
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelImpl;->index()I
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelImpl;->indexOf(Lorg/chromium/chrome/browser/tab/Tab;)I
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelImpl;->isActiveModel()Z
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelImpl;->removeObserver(Lorg/chromium/chrome/browser/tabmodel/TabModelObserver;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelImpl;->setIndex(IIZ)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelImpl;->supportsPendingClosures()Z
-Lorg/chromium/chrome/browser/tabmodel/TabModelImpl$1;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelImpl$1;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModelImpl;)V
-Lorg/chromium/chrome/browser/tabmodel/TabModelInitializer;
-Lorg/chromium/chrome/browser/tabmodel/TabModelJniBridge;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelJniBridge;-><init>(Lorg/chromium/chrome/browser/profiles/Profile;I)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelJniBridge;->destroy()V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelJniBridge;->getProfile()Lorg/chromium/chrome/browser/profiles/Profile;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelJniBridge;->hasOtherRelatedTabs(Lorg/chromium/chrome/browser/tab/Tab;)Z
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelJniBridge;->isIncognito()Z
-Lorg/chromium/chrome/browser/tabmodel/TabModelObserver;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelObserver;->allTabsClosureCommitted(Z)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelObserver;->didAddTab(Lorg/chromium/chrome/browser/tab/Tab;IIZ)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelObserver;->didSelectTab(IILorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelObserver;->restoreCompleted()V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelObserver;->willAddTab(Lorg/chromium/chrome/browser/tab/Tab;I)V
-Lorg/chromium/chrome/browser/tabmodel/TabModelObserverJniBridge;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelObserverJniBridge;-><init>(JLorg/chromium/chrome/browser/tabmodel/TabModel;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelObserverJniBridge;->allTabsClosureCommitted(Z)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelObserverJniBridge;->create(JLorg/chromium/chrome/browser/tabmodel/TabModel;)Lorg/chromium/chrome/browser/tabmodel/TabModelObserverJniBridge;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelObserverJniBridge;->detachFromTabModel()V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelObserverJniBridge;->didAddTab(Lorg/chromium/chrome/browser/tab/Tab;IIZ)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelObserverJniBridge;->didSelectTab(IILorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelObserverJniBridge;->willAddTab(Lorg/chromium/chrome/browser/tab/Tab;I)V
-Lorg/chromium/chrome/browser/tabmodel/TabModelOrderController;
-Lorg/chromium/chrome/browser/tabmodel/TabModelOrderControllerImpl;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelOrderControllerImpl;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelOrderControllerImpl;->determineInsertionIndex(IILorg/chromium/chrome/browser/tab/Tab;)I
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelOrderControllerImpl;->willOpenInForeground(IZ)Z
-Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;
-Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabCreatorManager;Lorg/chromium/chrome/browser/app/tabmodel/ChromeTabModelFilterFactory;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;->addObserver(Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorObserver;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;->getCurrentModel()Lorg/chromium/chrome/browser/tabmodel/TabModel;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;->getCurrentTab()Lorg/chromium/chrome/browser/tab/Tab;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;->getCurrentTabId()I
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;->getModel(Z)Lorg/chromium/chrome/browser/tabmodel/TabModel;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;->getModelForTabId(I)Lorg/chromium/chrome/browser/tabmodel/TabModel;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;->getModelIndex(Z)I
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;->getTabById(I)Lorg/chromium/chrome/browser/tab/Tab;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;->getTotalTabCount()I
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;->isIncognitoSelected()Z
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;->notifyChanged()V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;->removeObserver(Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorObserver;)V
-Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase$1;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase$1;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorImpl;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase$1;->didAddTab(Lorg/chromium/chrome/browser/tab/Tab;IIZ)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase$1;->didSelectTab(IILorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorImpl;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorImpl;-><init>(Lorg/chromium/chrome/browser/customtabs/content/CustomTabActivityTabFactory$$ExternalSyntheticLambda0;Lorg/chromium/chrome/browser/tabmodel/TabCreatorManager;Lorg/chromium/chrome/browser/app/tabmodel/ChromeTabModelFilterFactory;Lorg/chromium/chrome/browser/tabmodel/NextTabPolicy$NextTabPolicySupplier;Lorg/chromium/chrome/browser/tabmodel/AsyncTabParamsManagerImpl;ZI)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorImpl;->commitAllTabClosures()V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorImpl;->markTabStateInitialized()V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorImpl;->requestToShowTab(Lorg/chromium/chrome/browser/tab/Tab;I)V
-Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorImpl$1;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorImpl$1;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorImpl;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorImpl$1;->onNewTabCreated(Lorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorImpl$2;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorImpl$2;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorImpl;Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorImpl;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorImpl$2;->onUrlUpdated(Lorg/chromium/chrome/browser/tab/TabImpl;)V
-Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorObserver;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorObserver;->onChange()V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorObserver;->onNewTabCreated(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorObserver;->onTabHidden()V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorObserver;->onTabStateInitialized()V
-Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorProfileSupplier;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorProfileSupplier;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorSupplier;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorProfileSupplier;->onChange()V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorProfileSupplier;->onNewTabCreated(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorProfileSupplier;->onTabHidden()V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorProfileSupplier;->onTabStateInitialized()V
-Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorProfileSupplier$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorProfileSupplier$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorProfileSupplier;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorProfileSupplier$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorSupplier;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorSupplier;-><init>()V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorSupplier;->from(Lorg/chromium/ui/base/WindowAndroid;)Lorg/chromium/base/supplier/ObservableSupplier;
-Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabModelObserver;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabModelObserver;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabModelObserver;->destroy()V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabModelObserver;->onRegistrationComplete()V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabModelObserver;->registerModelObservers()V
-Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabModelObserver$1;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabModelObserver$1;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabModelObserver;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabModelObserver$1;->onChange()V
-Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabObserver;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabObserver;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabObserver;->destroy()V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabObserver;->onTabRegistered(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabObserver;->onTabUnregistered(Lorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabObserver$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabObserver$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabObserver;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabObserver$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabObserver$1;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabObserver$1;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabObserver;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabObserver$1;->onTabRegistered(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabObserver$1;->onTabUnregistered(Lorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabRegistrationObserver;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabRegistrationObserver;->-$$Nest$monTabRegistered(Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabRegistrationObserver;Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabRegistrationObserver;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabRegistrationObserver;->addObserverAndNotifyExistingTabRegistration(Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabRegistrationObserver$Observer;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabRegistrationObserver;->onTabUnregistered(Lorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabRegistrationObserver$1;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabRegistrationObserver$1;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabRegistrationObserver;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabRegistrationObserver$1;->didAddTab(Lorg/chromium/chrome/browser/tab/Tab;IIZ)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabRegistrationObserver$1;->onRegistrationComplete()V
-Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorTabRegistrationObserver$Observer;
-Lorg/chromium/chrome/browser/tabmodel/TabModelUtils;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelUtils;->getCurrentTab(Lorg/chromium/chrome/browser/tabmodel/TabList;)Lorg/chromium/chrome/browser/tab/Tab;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelUtils;->getTabById(Lorg/chromium/chrome/browser/tabmodel/TabList;I)Lorg/chromium/chrome/browser/tab/Tab;
-HSPLorg/chromium/chrome/browser/tabmodel/TabModelUtils;->getTabIndexById(Lorg/chromium/chrome/browser/tabmodel/TabList;I)I
-Lorg/chromium/chrome/browser/tabmodel/TabPersistencePolicy;
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistencePolicy;->setTaskRunner(Lorg/chromium/base/task/SequencedTaskRunner;)V
-Lorg/chromium/chrome/browser/tabmodel/TabPersistentStore;
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabPersistencePolicy;Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;Lorg/chromium/chrome/browser/tabmodel/TabCreatorManager;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore;->addTabToSaveQueueIfApplicable(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore;->checkAndUpdateMaxTabId()V
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore;->getStateDirectory()Ljava/io/File;
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore;->loadNextTab()V
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore;->onStateLoaded()V
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore;->readSavedStateFile(Ljava/io/DataInputStream;Lorg/chromium/chrome/browser/tabmodel/TabPersistentStore$OnTabStateReadCallback;Landroid/util/SparseBooleanArray;)I
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore;->saveListToFile([B)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore;->saveNextTab()V
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore;->saveTabListAsynchronously()V
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore;->serializeTabMetadata()Lorg/chromium/chrome/browser/tabmodel/TabPersistentStore$TabModelSelectorMetadata;
-Lorg/chromium/chrome/browser/tabmodel/TabPersistentStore$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/app/tabmodel/TabModelOrchestrator$1;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/tabmodel/TabPersistentStore$1;
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore$1;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabPersistentStore;)V
-PLorg/chromium/chrome/browser/tabmodel/TabPersistentStore$12;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabPersistentStore;I)V
-PLorg/chromium/chrome/browser/tabmodel/TabPersistentStore$12;->doInBackground()Ljava/lang/Object;
-Lorg/chromium/chrome/browser/tabmodel/TabPersistentStore$2;
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore$2;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabPersistentStore;Lorg/chromium/chrome/browser/tabmodel/TabPersistentStore$1;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore$2;->onTabRegistered(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore$2;->onTabUnregistered(Lorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/tabmodel/TabPersistentStore$3;
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore$3;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabPersistentStore;)V
-PLorg/chromium/chrome/browser/tabmodel/TabPersistentStore$5;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabPersistentStore;ZZ)V
-PLorg/chromium/chrome/browser/tabmodel/TabPersistentStore$5;->onDetailsRead(IILjava/lang/Boolean;Ljava/lang/String;ZZ)V
-Lorg/chromium/chrome/browser/tabmodel/TabPersistentStore$7;
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore$7;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabPersistentStore;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore$7;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/tabmodel/TabPersistentStore$9;
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore$9;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabPersistentStore;Ljava/lang/String;I)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore$9;->doInBackground()Ljava/lang/Object;
-PLorg/chromium/chrome/browser/tabmodel/TabPersistentStore$LoadTabTask;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabPersistentStore;Lorg/chromium/chrome/browser/tabmodel/TabPersistentStore$TabRestoreDetails;)V
-PLorg/chromium/chrome/browser/tabmodel/TabPersistentStore$LoadTabTask;->doInBackground()Ljava/lang/Object;
-PLorg/chromium/chrome/browser/tabmodel/TabPersistentStore$LoadTabTask;->onPostExecute(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/tabmodel/TabPersistentStore$SaveListTask;
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore$SaveListTask;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabPersistentStore;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore$SaveListTask;->doInBackground()Ljava/lang/Object;
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore$SaveListTask;->onPostExecute(Ljava/lang/Object;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore$SaveListTask;->onPreExecute()V
-Lorg/chromium/chrome/browser/tabmodel/TabPersistentStore$SaveTabTask;
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore$SaveTabTask;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabPersistentStore;Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore$SaveTabTask;->doInBackground()Ljava/lang/Object;
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore$SaveTabTask;->onPostExecute(Ljava/lang/Object;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore$SaveTabTask;->onPreExecute()V
-Lorg/chromium/chrome/browser/tabmodel/TabPersistentStore$TabLoader;
-PLorg/chromium/chrome/browser/tabmodel/TabPersistentStore$TabLoader;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabPersistentStore;Lorg/chromium/chrome/browser/tabmodel/TabPersistentStore$TabRestoreDetails;)V
-PLorg/chromium/chrome/browser/tabmodel/TabPersistentStore$TabLoader;->loadTabState()V
-Lorg/chromium/chrome/browser/tabmodel/TabPersistentStore$TabModelSelectorMetadata;
-HSPLorg/chromium/chrome/browser/tabmodel/TabPersistentStore$TabModelSelectorMetadata;-><init>([B)V
-Lorg/chromium/chrome/browser/tabmodel/TabPersistentStore$TabRestoreDetails;
-PLorg/chromium/chrome/browser/tabmodel/TabPersistentStore$TabRestoreDetails;-><init>(IILjava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;)V
-Lorg/chromium/chrome/browser/tabmodel/TabSwitchMetrics;
-Lorg/chromium/chrome/browser/tabmodel/TabWindowManagerImpl;
-HSPLorg/chromium/chrome/browser/tabmodel/TabWindowManagerImpl;-><init>(Lorg/chromium/chrome/browser/app/tabmodel/DefaultTabModelSelectorFactory;Lorg/chromium/chrome/browser/tabmodel/AsyncTabParamsManagerImpl;I)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabWindowManagerImpl;->getIndexForWindow(Landroid/app/Activity;)I
-HSPLorg/chromium/chrome/browser/tabmodel/TabWindowManagerImpl;->getTabById(I)Lorg/chromium/chrome/browser/tab/Tab;
-HSPLorg/chromium/chrome/browser/tabmodel/TabWindowManagerImpl;->onActivityStateChange(Landroid/app/Activity;I)V
-Lorg/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy;
-HSPLorg/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy;-><init>(IIZZ)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy;->cancelCleanupInProgress()V
-HSPLorg/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy;->cleanupUnusedFiles(Lorg/chromium/chrome/browser/tabmodel/TabPersistentStore$7;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy;->destroy()V
-HSPLorg/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy;->getOrCreateStateDirectory()Ljava/io/File;
-HSPLorg/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy;->getOtherTabsId(I)Landroid/util/SparseBooleanArray;
-HSPLorg/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy;->getStateFileName()Ljava/lang/String;
-HSPLorg/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy;->getStateFileName(I)Ljava/lang/String;
-HSPLorg/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy;->getStateToBeMergedFileNames()Ljava/util/List;
-HSPLorg/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy;->isMergeInProgress()Z
-HSPLorg/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy;->notifyStateLoaded(I)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy;->performInitialization(Lorg/chromium/base/task/SequencedTaskRunner;)Z
-HSPLorg/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy;->setTabContentManager(Lorg/chromium/chrome/browser/compositor/layouts/content/TabContentManager;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy;->shouldMergeOnStartup()Z
-HSPLorg/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy;->waitForInitializationToFinish()V
-Lorg/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;
-Lorg/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy$1;
-HSPLorg/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy$1;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy;ZZ)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy$1;->doInBackground()Ljava/lang/Object;
-Lorg/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy$CleanUpTabStateDataTask;
-HSPLorg/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy$CleanUpTabStateDataTask;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy;Lorg/chromium/base/Callback;Lorg/chromium/base/supplier/Supplier;)V
-HSPLorg/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy$CleanUpTabStateDataTask;->doInBackground()Ljava/lang/Object;
-HSPLorg/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy$CleanUpTabStateDataTask;->onPostExecute(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/tabpersistence/TabStateDirectory;
-HSPLorg/chromium/chrome/browser/tabpersistence/TabStateDirectory;->getOrCreateTabbedModeStateDirectory()Ljava/io/File;
-Lorg/chromium/chrome/browser/tabpersistence/TabStateDirectory$BaseStateDirectoryHolder;
-Lorg/chromium/chrome/browser/tabpersistence/TabStateFileManager;
-HSPLorg/chromium/chrome/browser/tabpersistence/TabStateFileManager;->getTabStateFilename(IZ)Ljava/lang/String;
-HSPLorg/chromium/chrome/browser/tabpersistence/TabStateFileManager;->parseInfoFromFilename(Ljava/lang/String;)Landroid/util/Pair;
-PLorg/chromium/chrome/browser/tabpersistence/TabStateFileManager;->readState(Ljava/io/FileInputStream;Z)Lorg/chromium/chrome/browser/tab/TabState;
-PLorg/chromium/chrome/browser/tabpersistence/TabStateFileManager;->restoreTabState(Ljava/io/File;I)Lorg/chromium/chrome/browser/tab/TabState;
-HSPLorg/chromium/chrome/browser/tabpersistence/TabStateFileManager;->saveState(Ljava/io/File;Lorg/chromium/chrome/browser/tab/TabState;Z)V
-Lorg/chromium/chrome/browser/tasks/ReturnToChromeUtil;
-HSPLorg/chromium/chrome/browser/tasks/ReturnToChromeUtil;->isStartSurfaceEnabled(Landroid/content/Context;)Z
-HSPLorg/chromium/chrome/browser/tasks/ReturnToChromeUtil;->isStartSurfaceRefactorEnabled(Landroid/content/Context;)Z
-HSPLorg/chromium/chrome/browser/tasks/ReturnToChromeUtil;->shouldHideStartSurfaceWithAccessibilityOn(Landroid/content/Context;)Z
-HSPLorg/chromium/chrome/browser/tasks/ReturnToChromeUtil;->shouldImproveStartWhenFeedIsDisabled(Landroid/content/Context;)Z
-HSPLorg/chromium/chrome/browser/tasks/ReturnToChromeUtil;->shouldShowStartSurfaceAsTheHomePage(Landroidx/appcompat/app/AppCompatActivity;)Z
-HSPLorg/chromium/chrome/browser/tasks/ReturnToChromeUtil;->updateFeedVisibility()V
-Lorg/chromium/chrome/browser/tasks/ReturnToChromeUtil$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/tasks/ReturnToChromeUtil$$ExternalSyntheticLambda0;-><init>()V
-Lorg/chromium/chrome/browser/tasks/TasksUma;
-HSPLorg/chromium/chrome/browser/tasks/TasksUma;->getTabsInOneGroupCount(Ljava/util/HashMap;I)I
-Lorg/chromium/chrome/browser/tasks/pseudotab/PseudoTab;
-HSPLorg/chromium/chrome/browser/tasks/pseudotab/PseudoTab;->getListOfPseudoTab(Ljava/util/List;)Ljava/util/ArrayList;
-Lorg/chromium/chrome/browser/tasks/tab_groups/EmptyTabGroupModelFilterObserver;
-HSPLorg/chromium/chrome/browser/tasks/tab_groups/EmptyTabGroupModelFilterObserver;-><init>()V
-Lorg/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilter;
-HSPLorg/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilter;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModel;Z)V
-HSPLorg/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilter;->addTab(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilter;->addTabGroupObserver(Lorg/chromium/chrome/browser/tasks/tab_groups/EmptyTabGroupModelFilterObserver;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilter;->getCount()I
-HSPLorg/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilter;->getParentId(Lorg/chromium/chrome/browser/tab/Tab;)I
-HSPLorg/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilter;->getRelatedTabList(I)Ljava/util/List;
-HSPLorg/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilter;->getRelatedTabList(Ljava/util/List;)Ljava/util/List;
-HSPLorg/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilter;->getRootId(Lorg/chromium/chrome/browser/tab/Tab;)I
-HSPLorg/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilter;->getValidPosition(Lorg/chromium/chrome/browser/tab/Tab;I)I
-HSPLorg/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilter;->hasOtherRelatedTabs(Lorg/chromium/chrome/browser/tab/Tab;)Z
-HSPLorg/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilter;->isIncognito()Z
-HSPLorg/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilter;->markTabStateInitialized()V
-HSPLorg/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilter;->recordSessionsCount(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilter;->removeTabGroupObserver(Lorg/chromium/chrome/browser/tasks/tab_groups/EmptyTabGroupModelFilterObserver;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilter;->reorder()V
-HSPLorg/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilter;->reorderGroup(I)V
-HSPLorg/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilter;->selectTab(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilter;->shouldNotifyObserversOnSetIndex()Z
-Lorg/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilter$TabGroup;
-HSPLorg/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilter$TabGroup;-><init>(Lorg/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilter;I)V
-HSPLorg/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilter$TabGroup;->addTab(I)V
-HSPLorg/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilter$TabGroup;->getTabIdList()Ljava/util/List;
-HSPLorg/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilter$TabGroup;->size()I
-Lorg/chromium/chrome/browser/tasks/tab_groups/TabGroupUtils;
-Lorg/chromium/chrome/browser/tasks/tab_groups/TabGroupUtils$2;
-HSPLorg/chromium/chrome/browser/tasks/tab_groups/TabGroupUtils$2;-><init>(Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_groups/TabGroupUtils$2;->onDidFinishNavigationInPrimaryMainFrame(Lorg/chromium/chrome/browser/tab/TabImpl;Lorg/chromium/content_public/browser/NavigationHandle;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/CouponCardView;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/CouponCardView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/CouponCardView;->onFinishInflate()V
-Lorg/chromium/chrome/browser/tasks/tab_management/PriceCardView;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/PriceCardView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/PriceCardView;->onFinishInflate()V
-Lorg/chromium/chrome/browser/tasks/tab_management/PriceMessageService$PriceWelcomeMessageProvider;
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator;-><init>(Landroid/app/Activity;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/chrome/browser/compositor/layouts/content/TabContentManager;Lorg/chromium/chrome/browser/tabmodel/TabCreatorManager;Landroid/view/ViewGroup;Lorg/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator$ResetHandler;Lorg/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator;Lorg/chromium/chrome/browser/tasks/tab_management/TabSwitcherCoordinator$$ExternalSyntheticLambda5;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/components/browser_ui/widget/scrim/ScrimCoordinator;Landroid/view/ViewGroup;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator;->destroy()V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator;->initWithNative(Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/chrome/browser/compositor/layouts/content/TabContentManager;Lorg/chromium/chrome/browser/tasks/tab_management/TabListMediator$9;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator;->isVisible()Z
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator;I)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/compositor/layouts/content/TabContentManager;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator$$ExternalSyntheticLambda2;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator$$ExternalSyntheticLambda2;-><init>()V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator$$ExternalSyntheticLambda2;->bind(Lorg/chromium/ui/modelutil/PropertyObservable;Ljava/lang/Object;Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator$$ExternalSyntheticLambda3;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator$$ExternalSyntheticLambda3;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator$$ExternalSyntheticLambda3;->onPropertyChanged(Lorg/chromium/ui/modelutil/PropertyObservable;Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator;-><init>(Landroid/app/Activity;Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator;Lorg/chromium/ui/modelutil/PropertyModel;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/chrome/browser/tabmodel/TabCreatorManager;Lorg/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator$ResetHandler;Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator$$ExternalSyntheticLambda0;Lorg/chromium/chrome/browser/tasks/tab_management/TabSwitcherCoordinator$$ExternalSyntheticLambda5;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager;Ljava/lang/String;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator;->hideDialog(Z)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator;->initWithNative(Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator$$ExternalSyntheticLambda0;Lorg/chromium/chrome/browser/tasks/tab_management/TabListMediator$9;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator;->updateColorProperties(Landroid/content/Context;Z)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator$$ExternalSyntheticLambda2;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator$$ExternalSyntheticLambda2;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator;I)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator$1;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator$1;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator;Lorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator$1;->allTabsClosureCommitted(Z)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator$1;->didAddTab(Lorg/chromium/chrome/browser/tab/Tab;IIZ)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator$1;->didSelectTab(IILorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator$2;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator$2;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator$3;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator$3;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogView;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogView;->onAttachedToWindow()V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogView;->onDetachedFromWindow()V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogView;->onFinishInflate()V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogView;->updateDialogWithOrientation(I)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogView$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogView$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogView;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogView$$ExternalSyntheticLambda0;->onGlobalLayout()V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogView$1;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogView$1;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogView;I)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogView$2;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogView$2;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogView;F)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogView$VisibilityListener;
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGridItemTouchHelperCallback;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridItemTouchHelperCallback;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/tasks/tab_management/TabListModel;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/chrome/browser/tasks/tab_management/TabListMediator$6;Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator$3;Ljava/lang/String;ZILorg/chromium/chrome/browser/tasks/tab_management/TabGridItemTouchHelperCallback$OnLongPressTabItemEventListener;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGridItemTouchHelperCallback$OnLongPressTabItemEventListener;
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogProperties;
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogViewBinder$ViewHolder;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogViewBinder$ViewHolder;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiToolbarView;Landroidx/recyclerview/widget/RecyclerView;Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogView;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabThumbnailView;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabThumbnailView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGroupUi;
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator;-><init>(Landroidx/appcompat/app/AppCompatActivity;Landroid/view/ViewGroup;Lorg/chromium/chrome/browser/tabmodel/IncognitoStateProvider;Lorg/chromium/components/browser_ui/widget/scrim/ScrimCoordinator;Lorg/chromium/base/supplier/ObservableSupplier;Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetController;Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/chrome/browser/compositor/layouts/content/TabContentManager;Lorg/chromium/chrome/browser/compositor/CompositorViewHolder;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda14;Lorg/chromium/chrome/browser/tabmodel/TabCreatorManager;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/base/supplier/OneshotSupplier;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator;->getHandleBackPressChangedSupplier()Lorg/chromium/base/supplier/ObservableSupplier;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator;->onPauseWithNative()V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator;->onResumeWithNative()V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator;->recordSessionCount()V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator;->recordTabGroupCount()V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator;->resetStripWithListOfTabs(Ljava/util/List;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator$$ExternalSyntheticLambda0;-><init>()V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator$$ExternalSyntheticLambda0;->bind(Lorg/chromium/ui/modelutil/PropertyObservable;Ljava/lang/Object;Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator$1;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator$1;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator;)V
-PLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator$1;->restoreCompleted()V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator;-><init>(Landroid/app/Activity;Lorg/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator$$ExternalSyntheticLambda1;Lorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator;Lorg/chromium/ui/modelutil/PropertyModel;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/chrome/browser/tabmodel/TabCreatorManager;Lorg/chromium/base/supplier/OneshotSupplier;Lorg/chromium/chrome/browser/tabmodel/IncognitoStateProvider;Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator;Lorg/chromium/base/supplier/ObservableSupplier;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator;->getHandleBackPressChangedSupplier()Lorg/chromium/base/supplier/ObservableSupplier;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator;->getTabsToShowForId(I)Ljava/util/List;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator;->resetTabStripWithRelatedTabsForId(I)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator;I)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator$$ExternalSyntheticLambda1;->onIncognitoStateChanged(Z)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator$$ExternalSyntheticLambda3;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator$$ExternalSyntheticLambda3;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator;I)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator$1;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator$1;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator$1;->didAddTab(Lorg/chromium/chrome/browser/tab/Tab;IIZ)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator$1;->didSelectTab(IILorg/chromium/chrome/browser/tab/Tab;)V
-PLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator$1;->restoreCompleted()V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator$2;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator$2;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator$2;->onFinishedHiding(I)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator$2;->onStartedShowing(IZ)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator$3;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator$3;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator$4;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator$4;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator$5;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator$5;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator$ResetHandler;
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiProperties;
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiToolbarView;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiToolbarView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiToolbarView;->onFinishInflate()V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiViewBinder$ViewHolder;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiViewBinder$ViewHolder;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiToolbarView;Landroidx/recyclerview/widget/RecyclerView;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabListCoordinator;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListCoordinator;-><init>(ILandroid/content/Context;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/chrome/browser/tasks/tab_management/TabListMediator$ThumbnailProvider;Lorg/chromium/chrome/browser/tasks/pseudotab/PseudoTab$TitleProvider;ZLorg/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator;Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator$3;ILorg/chromium/chrome/browser/tasks/tab_management/TabListEditorCoordinator$$ExternalSyntheticLambda0;Lorg/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator$PriceWelcomeMessageController;Landroid/view/ViewGroup;ZLjava/lang/String;Landroid/view/ViewGroup;Lorg/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator$$ExternalSyntheticLambda2;Lorg/chromium/chrome/browser/tasks/tab_management/TabGridItemTouchHelperCallback$OnLongPressTabItemEventListener;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListCoordinator;->initWithNative(Lorg/chromium/ui/resources/dynamics/DynamicResourceLoader;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListCoordinator;->onDestroy()V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListCoordinator;->resetWithListOfTabs$1(Ljava/util/List;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListCoordinator;->resetWithListOfTabs(Ljava/util/ArrayList;ZZ)Z
-Lorg/chromium/chrome/browser/tasks/tab_management/TabListCoordinator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListCoordinator$$ExternalSyntheticLambda0;-><init>(ILandroid/content/Context;Landroid/view/ViewGroup;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabListCoordinator$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListCoordinator$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabListCoordinator;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabListCoordinator$$ExternalSyntheticLambda3;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListCoordinator$$ExternalSyntheticLambda3;-><init>(I)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabListCoordinator$$ExternalSyntheticLambda4;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListCoordinator$$ExternalSyntheticLambda4;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabListCoordinator;Landroid/content/Context;Landroid/view/ViewGroup;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabListCoordinator$$ExternalSyntheticLambda5;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListCoordinator$$ExternalSyntheticLambda5;-><init>(Landroid/content/Context;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabListCoordinator$1;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListCoordinator$1;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabGridItemTouchHelperCallback;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabListFaviconProvider;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListFaviconProvider;-><init>(Landroid/content/Context;Z)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListFaviconProvider;->colorFaviconWithTheme(Lorg/chromium/chrome/browser/tasks/tab_management/TabListFaviconProvider$ResourceTabFavicon;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListFaviconProvider;->createChromeOwnedResourceTabFavicon(Landroid/graphics/Bitmap;III)Lorg/chromium/chrome/browser/tasks/tab_management/TabListFaviconProvider$ResourceTabFavicon;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListFaviconProvider;->getFaviconForUrlAsync(Lorg/chromium/url/GURL;ZLorg/chromium/base/Callback;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListFaviconProvider;->getResizedBitmapFromDrawable(ILandroid/graphics/drawable/Drawable;)Landroid/graphics/Bitmap;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListFaviconProvider;->getRoundedGlobeFavicon(Z)Lorg/chromium/chrome/browser/tasks/tab_management/TabListFaviconProvider$ResourceTabFavicon;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListFaviconProvider;->initWithNative(Lorg/chromium/chrome/browser/profiles/Profile;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListFaviconProvider;->processBitmap(Landroid/graphics/Bitmap;Z)Landroid/graphics/drawable/Drawable;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListFaviconProvider;->processBitmapMaybeColor(Landroid/graphics/Bitmap;ZI)Landroid/graphics/drawable/Drawable;
-Lorg/chromium/chrome/browser/tasks/tab_management/TabListFaviconProvider$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListFaviconProvider$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabListFaviconProvider;ZLorg/chromium/url/GURL;Lorg/chromium/base/Callback;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListFaviconProvider$$ExternalSyntheticLambda1;->onFaviconAvailable(Landroid/graphics/Bitmap;Lorg/chromium/url/GURL;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabListFaviconProvider$$ExternalSyntheticLambda2;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListFaviconProvider$$ExternalSyntheticLambda2;-><init>(Lorg/chromium/base/Callback;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListFaviconProvider$$ExternalSyntheticLambda2;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabListFaviconProvider$ResourceTabFavicon;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListFaviconProvider$ResourceTabFavicon;-><init>(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;ZI)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabListFaviconProvider$TabFavicon;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListFaviconProvider$TabFavicon;-><init>(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Z)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabListMediator;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListMediator;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/tasks/tab_management/TabListModel;ILorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/chrome/browser/tasks/tab_management/TabListMediator$ThumbnailProvider;Lorg/chromium/chrome/browser/tasks/pseudotab/PseudoTab$TitleProvider;Lorg/chromium/chrome/browser/tasks/tab_management/TabListFaviconProvider;ZLorg/chromium/chrome/browser/tasks/tab_management/TabListEditorCoordinator$$ExternalSyntheticLambda0;Lorg/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator;Lorg/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator$3;Lorg/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator$PriceWelcomeMessageController;Ljava/lang/String;ILorg/chromium/chrome/browser/tasks/tab_management/TabGridItemTouchHelperCallback$OnLongPressTabItemEventListener;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListMediator;->initWithNative()V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListMediator;->onTabAdded(Lorg/chromium/chrome/browser/tab/Tab;Z)I
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListMediator;->selectTab(II)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListMediator;->updateSpanCount(Landroidx/recyclerview/widget/GridLayoutManager;II)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabListMediator$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListMediator$$ExternalSyntheticLambda1;-><init>()V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabListMediator$1;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListMediator$1;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabListMediator;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabListMediator$10;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListMediator$10;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabListMediator;Landroidx/recyclerview/widget/GridLayoutManager;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabListMediator$11;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListMediator$11;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabListMediator;Landroidx/recyclerview/widget/GridLayoutManager;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabListMediator$2;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListMediator$2;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabListMediator;I)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabListMediator$4;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListMediator$4;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabListMediator;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabListMediator$5;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListMediator$5;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabListMediator;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListMediator$5;->didAddTab(Lorg/chromium/chrome/browser/tab/Tab;IIZ)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListMediator$5;->didSelectTab(IILorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabListMediator$6;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListMediator$6;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabListMediator;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabListMediator$8;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListMediator$8;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabListMediator;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabListMediator$TabActionListener;
-Lorg/chromium/chrome/browser/tasks/tab_management/TabListMediator$TabGridAccessibilityHelper;
-Lorg/chromium/chrome/browser/tasks/tab_management/TabListMediator$ThumbnailProvider;
-Lorg/chromium/chrome/browser/tasks/tab_management/TabListModel;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListModel;-><init>()V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListModel;->indexFromId(I)I
-Lorg/chromium/chrome/browser/tasks/tab_management/TabListModel$CardProperties;
-Lorg/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView;->onAttachedToWindow()V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView;->onDetachedFromWindow()V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView;->onLayout(ZIIII)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView$2;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView$2;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView;Landroid/view/View;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView$TabListOnScrollListener;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView$TabListOnScrollListener;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabManagementDelegateImpl;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabManagementDelegateImpl;-><init>()V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabManagementFieldTrial;
-Lorg/chromium/chrome/browser/tasks/tab_management/TabManagementModule;
-Lorg/chromium/chrome/browser/tasks/tab_management/TabManagementModuleProvider;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabManagementModuleProvider;->getDelegate()Lorg/chromium/chrome/browser/tasks/tab_management/TabManagementDelegateImpl;
-Lorg/chromium/chrome/browser/tasks/tab_management/TabProperties;
-Lorg/chromium/chrome/browser/tasks/tab_management/TabStripSnapshotter;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabStripSnapshotter;-><init>(Lorg/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator$$ExternalSyntheticLambda2;Lorg/chromium/chrome/browser/tasks/tab_management/TabListModel;Landroidx/recyclerview/widget/RecyclerView;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabStripSnapshotter$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabStripSnapshotter$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabStripSnapshotter;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabStripSnapshotter$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabStripSnapshotter$1;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabStripSnapshotter$1;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabStripSnapshotter;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabStripSnapshotter$TabStripSnapshotToken;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabStripSnapshotter$TabStripSnapshotToken;-><init>(Lorg/chromium/ui/modelutil/MVCListAdapter$ModelList;I)V
-Lorg/chromium/chrome/browser/tasks/tab_management/TabSwitcher;
-Lorg/chromium/chrome/browser/tasks/tab_management/TabSwitcher$Controller;
-Lorg/chromium/chrome/browser/tasks/tab_management/TabSwitcher$OnTabSelectingListener;
-Lorg/chromium/chrome/browser/tasks/tab_management/TabSwitcher$TabListDelegate;
-Lorg/chromium/chrome/browser/tasks/tab_management/TabSwitcher$TabSwitcherViewObserver;
-Lorg/chromium/chrome/browser/tasks/tab_management/TabSwitcherCoordinator;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabSwitcherCoordinator;->isShowingTabsInMRUOrder(I)Z
-Lorg/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator$MessageItemsController;
-Lorg/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator$PriceWelcomeMessageController;
-Lorg/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator$ResetHandler;
-Lorg/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities;->isGridTabSwitcherEnabled(Landroid/content/Context;)Z
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities;->isLaunchPolishEnabled()Z
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities;->isTabGroupsAndroidContinuationEnabled(Landroid/content/Context;)Z
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities;->isTabGroupsAndroidEnabled(Landroid/content/Context;)Z
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities;->isTabListEditorV2Enabled(Landroid/content/Context;)Z
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities;->isTabToGtsAnimationEnabled()Z
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities;->isTabletGridTabSwitcherEnabled(Landroid/content/Context;)Z
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities;->isTabletGridTabSwitcherPolishEnabled(Landroid/content/Context;)Z
-Lorg/chromium/chrome/browser/tasks/tab_management/TabUiThemeProvider;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabUiThemeProvider;->getTabGridDialogUngroupBarBackgroundColor(Landroid/content/Context;ZZ)I
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabUiThemeProvider;->getTabGridDialogUngroupBarTextColor(Landroid/content/Context;ZZ)I
-HSPLorg/chromium/chrome/browser/tasks/tab_management/TabUiThemeProvider;->getTitleTextColor(Landroid/content/Context;ZZ)I
-Lorg/chromium/chrome/browser/tasks/tab_management/UndoGroupSnackbarController;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/UndoGroupSnackbarController;-><init>(Landroidx/appcompat/app/AppCompatActivity;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/UndoGroupSnackbarController$1;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/UndoGroupSnackbarController$1;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/UndoGroupSnackbarController;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/UndoGroupSnackbarController$2;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/UndoGroupSnackbarController$2;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/UndoGroupSnackbarController;)V
-Lorg/chromium/chrome/browser/tasks/tab_management/UndoGroupSnackbarController$3;
-HSPLorg/chromium/chrome/browser/tasks/tab_management/UndoGroupSnackbarController$3;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/UndoGroupSnackbarController;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;)V
-HSPLorg/chromium/chrome/browser/tasks/tab_management/UndoGroupSnackbarController$3;->didAddTab(Lorg/chromium/chrome/browser/tab/Tab;IIZ)V
-Lorg/chromium/chrome/browser/theme/ThemeColorProvider;
-HSPLorg/chromium/chrome/browser/theme/ThemeColorProvider;-><init>(Landroid/content/Context;)V
-HSPLorg/chromium/chrome/browser/theme/ThemeColorProvider;->updatePrimaryColor(IZ)V
-HSPLorg/chromium/chrome/browser/theme/ThemeColorProvider;->updateTint(Landroid/content/res/ColorStateList;I)V
-Lorg/chromium/chrome/browser/theme/ThemeColorProvider$ThemeColorObserver;
-Lorg/chromium/chrome/browser/theme/ThemeColorProvider$TintObserver;
-Lorg/chromium/chrome/browser/theme/ThemeUtils;
-HSPLorg/chromium/chrome/browser/theme/ThemeUtils;->getTextBoxColorForToolbarBackground(Landroid/content/Context;Lorg/chromium/chrome/browser/tab/Tab;I)I
-HSPLorg/chromium/chrome/browser/theme/ThemeUtils;->getTextBoxColorForToolbarBackgroundInNonNativePage(ILandroid/content/Context;Z)I
-HSPLorg/chromium/chrome/browser/theme/ThemeUtils;->getThemedToolbarIconTint(Landroid/content/Context;I)Landroid/content/res/ColorStateList;
-HSPLorg/chromium/chrome/browser/theme/ThemeUtils;->getThemedToolbarIconTintRes(I)I
-HSPLorg/chromium/chrome/browser/theme/ThemeUtils;->isUsingDefaultToolbarColor(ILandroid/content/Context;Z)Z
-Lorg/chromium/chrome/browser/theme/TopUiThemeColorProvider;
-HSPLorg/chromium/chrome/browser/theme/TopUiThemeColorProvider;-><init>(Landroidx/appcompat/app/AppCompatActivity;Lorg/chromium/base/supplier/ObservableSupplier;Lorg/chromium/base/supplier/Supplier;ZZZ)V
-HSPLorg/chromium/chrome/browser/theme/TopUiThemeColorProvider;->calculateColor(Lorg/chromium/chrome/browser/tab/Tab;I)I
-HSPLorg/chromium/chrome/browser/theme/TopUiThemeColorProvider;->destroy()V
-HSPLorg/chromium/chrome/browser/theme/TopUiThemeColorProvider;->getBackgroundColor(Lorg/chromium/chrome/browser/tab/Tab;)I
-HSPLorg/chromium/chrome/browser/theme/TopUiThemeColorProvider;->getSceneLayerBackground(Lorg/chromium/chrome/browser/tab/Tab;)I
-HSPLorg/chromium/chrome/browser/theme/TopUiThemeColorProvider;->getTextBoxBackgroundAlpha(Lorg/chromium/chrome/browser/tab/Tab;)F
-HSPLorg/chromium/chrome/browser/theme/TopUiThemeColorProvider;->isThemingAllowed(Lorg/chromium/chrome/browser/tab/Tab;)Z
-HSPLorg/chromium/chrome/browser/theme/TopUiThemeColorProvider;->updateColor(ILorg/chromium/chrome/browser/tab/Tab;Z)V
-Lorg/chromium/chrome/browser/theme/TopUiThemeColorProvider$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/theme/TopUiThemeColorProvider$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/theme/TopUiThemeColorProvider;)V
-HSPLorg/chromium/chrome/browser/theme/TopUiThemeColorProvider$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/theme/TopUiThemeColorProvider$1;
-HSPLorg/chromium/chrome/browser/theme/TopUiThemeColorProvider$1;-><init>(Lorg/chromium/chrome/browser/theme/TopUiThemeColorProvider;)V
-Lorg/chromium/chrome/browser/toolbar/AppThemeColorProvider;
-HSPLorg/chromium/chrome/browser/toolbar/AppThemeColorProvider;-><init>(Landroid/content/Context;)V
-HSPLorg/chromium/chrome/browser/toolbar/AppThemeColorProvider;->destroy()V
-HSPLorg/chromium/chrome/browser/toolbar/AppThemeColorProvider;->onIncognitoStateChanged(Z)V
-HSPLorg/chromium/chrome/browser/toolbar/AppThemeColorProvider;->updateTheme()V
-Lorg/chromium/chrome/browser/toolbar/AppThemeColorProvider$1;
-HSPLorg/chromium/chrome/browser/toolbar/AppThemeColorProvider$1;-><init>(Lorg/chromium/chrome/browser/toolbar/AppThemeColorProvider;)V
-HSPLorg/chromium/chrome/browser/toolbar/AppThemeColorProvider$1;->onStartedHiding(IZZ)V
-HSPLorg/chromium/chrome/browser/toolbar/AppThemeColorProvider$1;->onStartedShowing(IZ)V
-Lorg/chromium/chrome/browser/toolbar/BaseButtonDataProvider;
-HSPLorg/chromium/chrome/browser/toolbar/BaseButtonDataProvider;-><init>(Lorg/chromium/base/supplier/Supplier;Lorg/chromium/ui/modaldialog/ModalDialogManager;Landroid/graphics/drawable/Drawable;Ljava/lang/String;II)V
-HSPLorg/chromium/chrome/browser/toolbar/BaseButtonDataProvider;->destroy()V
-HSPLorg/chromium/chrome/browser/toolbar/BaseButtonDataProvider;->notifyObservers(Z)V
-HSPLorg/chromium/chrome/browser/toolbar/BaseButtonDataProvider;->shouldShowButton(Lorg/chromium/chrome/browser/tab/Tab;)Z
-Lorg/chromium/chrome/browser/toolbar/BaseButtonDataProvider$1;
-HSPLorg/chromium/chrome/browser/toolbar/BaseButtonDataProvider$1;-><init>(Lorg/chromium/chrome/browser/toolbar/BaseButtonDataProvider;)V
-Lorg/chromium/chrome/browser/toolbar/ButtonData$ButtonSpec;
-HSPLorg/chromium/chrome/browser/toolbar/ButtonData$ButtonSpec;-><init>(Landroid/graphics/drawable/Drawable;Landroid/view/View$OnClickListener;Landroid/view/View$OnLongClickListener;Ljava/lang/String;ZLorg/chromium/chrome/browser/user_education/IPHCommandBuilder;II)V
-Lorg/chromium/chrome/browser/toolbar/ButtonDataImpl;
-HSPLorg/chromium/chrome/browser/toolbar/ButtonDataImpl;-><init>()V
-HSPLorg/chromium/chrome/browser/toolbar/ButtonDataImpl;-><init>(Landroid/graphics/drawable/Drawable;Landroid/view/View$OnClickListener;Ljava/lang/String;IZLorg/chromium/chrome/browser/user_education/IPHCommandBuilder;I)V
-Lorg/chromium/chrome/browser/toolbar/ButtonDataProvider;
-Lorg/chromium/chrome/browser/toolbar/ButtonDataProvider$ButtonDataObserver;
-Lorg/chromium/chrome/browser/toolbar/ConstraintsChecker;
-HSPLorg/chromium/chrome/browser/toolbar/ConstraintsChecker;-><init>(Lorg/chromium/ui/resources/dynamics/ViewResourceAdapter;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$ConstraintsProxy;Landroid/os/Looper;)V
-Lorg/chromium/chrome/browser/toolbar/ControlContainer;
-Lorg/chromium/chrome/browser/toolbar/HomeButton;
-HSPLorg/chromium/chrome/browser/toolbar/HomeButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/chrome/browser/toolbar/HomeButton;->onLayout(ZIIII)V
-HSPLorg/chromium/chrome/browser/toolbar/HomeButton;->onMeasure(II)V
-HSPLorg/chromium/chrome/browser/toolbar/HomeButton;->updateContextMenuListener()V
-Lorg/chromium/chrome/browser/toolbar/HomeButton$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/toolbar/HomeButton$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/toolbar/HomeButton;)V
-HSPLorg/chromium/chrome/browser/toolbar/HomeButton$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/toolbar/HomeButton$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/toolbar/HomeButton$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/toolbar/HomeButton;)V
-Lorg/chromium/chrome/browser/toolbar/KeyboardNavigationListener;
-HSPLorg/chromium/chrome/browser/toolbar/KeyboardNavigationListener;-><init>()V
-Lorg/chromium/chrome/browser/toolbar/LocationBarFocusScrimHandler;
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarFocusScrimHandler;-><init>(Lorg/chromium/components/browser_ui/widget/scrim/ScrimCoordinator;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$12;Landroid/content/Context;Lorg/chromium/chrome/browser/toolbar/LocationBarModel;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda13;Landroid/view/View;)V
-Lorg/chromium/chrome/browser/toolbar/LocationBarModel;
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/omnibox/NewTabPageDelegate;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda5;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda5;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$1;Lorg/chromium/chrome/browser/omnibox/SearchEngineLogoUtils;)V
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel;->addObserver(Lorg/chromium/chrome/browser/omnibox/LocationBarDataProvider$Observer;)V
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel;->buildUrlBarData(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Lorg/chromium/chrome/browser/omnibox/UrlBarData;
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel;->getActiveWebContents()Lorg/chromium/content_public/browser/WebContents;
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel;->getCurrentGurl()Lorg/chromium/url/GURL;
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel;->getCurrentUrl()Ljava/lang/String;
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel;->getNewTabPageDelegate()Lorg/chromium/chrome/browser/omnibox/NewTabPageDelegate;
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel;->getPageClassification(ZZ)I
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel;->getPrimaryColor()I
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel;->getProfile()Lorg/chromium/chrome/browser/profiles/Profile;
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel;->getSecurityIconColorStateList()I
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel;->getSecurityIconContentDescriptionResourceId()I
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel;->getSecurityIconResource(Z)I
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel;->getSecurityLevel()I
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel;->getSecurityLevel(Lorg/chromium/chrome/browser/tab/Tab;Z)I
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel;->getTab()Lorg/chromium/chrome/browser/tab/Tab;
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel;->getUrlBarData()Lorg/chromium/chrome/browser/omnibox/UrlBarData;
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel;->hasTab()Z
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel;->isInOverviewAndShowingOmnibox()Z
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel;->isIncognito()Z
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel;->isOfflinePage()Z
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel;->isPaintPreview()Z
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel;->isUsingBrandColor()Z
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel;->notifyPrimaryColorChanged()V
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel;->notifySecurityStateChanged()V
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel;->notifyTitleChanged()V
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel;->notifyUrlChanged()V
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel;->removeObserver(Lorg/chromium/chrome/browser/omnibox/LocationBarDataProvider$Observer;)V
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel;->updateUsingBrandColor()V
-Lorg/chromium/chrome/browser/toolbar/LocationBarModel$SpannableDisplayTextCacheKey;
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel$SpannableDisplayTextCacheKey;-><init>(Ljava/lang/String;Ljava/lang/String;IIIII)V
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel$SpannableDisplayTextCacheKey;->equals(Ljava/lang/Object;)Z
-HSPLorg/chromium/chrome/browser/toolbar/LocationBarModel$SpannableDisplayTextCacheKey;->hashCode()I
-Lorg/chromium/chrome/browser/toolbar/ProgressAnimationSmooth;
-HSPLorg/chromium/chrome/browser/toolbar/ProgressAnimationSmooth;-><init>()V
-Lorg/chromium/chrome/browser/toolbar/SettableThemeColorProvider;
-HSPLorg/chromium/chrome/browser/toolbar/SettableThemeColorProvider;-><init>(Landroid/content/Context;)V
-Lorg/chromium/chrome/browser/toolbar/TabCountProvider;
-HSPLorg/chromium/chrome/browser/toolbar/TabCountProvider;-><init>()V
-HSPLorg/chromium/chrome/browser/toolbar/TabCountProvider;->addObserverAndTrigger(Lorg/chromium/chrome/browser/toolbar/TabCountProvider$TabCountObserver;)V
-HSPLorg/chromium/chrome/browser/toolbar/TabCountProvider;->updateTabCount()V
-Lorg/chromium/chrome/browser/toolbar/TabCountProvider$1;
-HSPLorg/chromium/chrome/browser/toolbar/TabCountProvider$1;-><init>(Lorg/chromium/chrome/browser/toolbar/TabCountProvider;)V
-PLorg/chromium/chrome/browser/toolbar/TabCountProvider$1;->onTabStateInitialized()V
-Lorg/chromium/chrome/browser/toolbar/TabCountProvider$2;
-HSPLorg/chromium/chrome/browser/toolbar/TabCountProvider$2;-><init>(Lorg/chromium/chrome/browser/toolbar/TabCountProvider;)V
-HSPLorg/chromium/chrome/browser/toolbar/TabCountProvider$2;->didAddTab(Lorg/chromium/chrome/browser/tab/Tab;IIZ)V
-PLorg/chromium/chrome/browser/toolbar/TabCountProvider$2;->restoreCompleted()V
-Lorg/chromium/chrome/browser/toolbar/TabCountProvider$TabCountObserver;
-Lorg/chromium/chrome/browser/toolbar/TabSwitcherDrawable;
-HSPLorg/chromium/chrome/browser/toolbar/TabSwitcherDrawable;-><init>(Landroid/content/Context;ILandroid/graphics/Bitmap;)V
-HSPLorg/chromium/chrome/browser/toolbar/TabSwitcherDrawable;->createTabSwitcherDrawable(Landroid/content/Context;I)Lorg/chromium/chrome/browser/toolbar/TabSwitcherDrawable;
-HSPLorg/chromium/chrome/browser/toolbar/TabSwitcherDrawable;->draw(Landroid/graphics/Canvas;)V
-HSPLorg/chromium/chrome/browser/toolbar/TabSwitcherDrawable;->onStateChange([I)Z
-HSPLorg/chromium/chrome/browser/toolbar/TabSwitcherDrawable;->setTint(Landroid/content/res/ColorStateList;)V
-HSPLorg/chromium/chrome/browser/toolbar/TabSwitcherDrawable;->updateForTabCount(IZ)V
-Lorg/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController;-><init>(Landroidx/appcompat/app/AppCompatActivity;Lorg/chromium/ui/base/ActivityWindowAndroid;Lorg/chromium/chrome/browser/ui/appmenu/AppMenuCoordinatorImpl;Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/base/supplier/Supplier;Landroid/widget/ImageButton;)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController;->onPauseWithNative()V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController;->onResumeWithNative()V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController;->showDownloadPageTextBubble(Lorg/chromium/chrome/browser/tab/Tab;Ljava/lang/String;)V
-Lorg/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController;I)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController$1;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController$1;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController;)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController$1;->handleIPHForSuccessfulPageLoad(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController$1;->onPageLoadFinished(Lorg/chromium/chrome/browser/tab/Tab;Lorg/chromium/url/GURL;)V
-Lorg/chromium/chrome/browser/toolbar/ToolbarDataProvider;
-Lorg/chromium/chrome/browser/toolbar/ToolbarFeatures;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarFeatures;->shouldBlockCapturesForAblation()Z
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarFeatures;->shouldSuppressCaptures()Z
-Lorg/chromium/chrome/browser/toolbar/ToolbarIntentMetadata;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarIntentMetadata;-><init>(Z)V
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager;-><init>(Landroidx/appcompat/app/AppCompatActivity;Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;Lorg/chromium/chrome/browser/fullscreen/FullscreenManager;Lorg/chromium/chrome/browser/toolbar/top/ToolbarControlContainer;Lorg/chromium/chrome/browser/compositor/CompositorViewHolder;Lorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda0;Lorg/chromium/chrome/browser/theme/TopUiThemeColorProvider;Lorg/chromium/chrome/browser/tab/TabObscuringHandler;Lorg/chromium/base/supplier/ObservableSupplier;Lorg/chromium/chrome/browser/identity_disc/IdentityDiscController;Ljava/util/List;Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/components/browser_ui/widget/scrim/ScrimCoordinator;Lorg/chromium/chrome/browser/toolbar/top/ToolbarActionModeCallback;Lorg/chromium/chrome/browser/findinpage/FindToolbarManager;Lorg/chromium/base/supplier/ObservableSupplier;Lorg/chromium/base/supplier/ObservableSupplier;Lorg/chromium/base/supplier/OneshotSupplier;Lorg/chromium/base/supplier/OneshotSupplierImpl;ZLorg/chromium/base/supplier/ObservableSupplier;Lorg/chromium/base/supplier/OneshotSupplier;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/base/supplier/OneshotSupplierImpl;Lorg/chromium/ui/base/ActivityWindowAndroid;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/base/supplier/ObservableSupplier;Lorg/chromium/chrome/browser/ui/system/StatusBarColorController;Lorg/chromium/chrome/browser/ui/appmenu/AppMenuDelegate;Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerImpl;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/chrome/browser/compositor/layouts/content/TabContentManager;Lorg/chromium/chrome/browser/tabmodel/TabCreatorManager;Lorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager;Lorg/chromium/base/jank_tracker/JankTracker;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/base/supplier/OneshotSupplier;Lorg/chromium/chrome/browser/app/omnibox/OmniboxPedalDelegateImpl;Lorg/chromium/base/supplier/Supplier;ZLorg/chromium/chrome/browser/back_press/BackPressManager;)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager;->checkIfNtpLoaded()V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager;->getMenuButtonView()Landroid/widget/ImageButton;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager;->getNewTabPageForCurrentTab()Lorg/chromium/chrome/browser/ntp/NewTabPage;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager;->initializeWithNative(Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda13;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda13;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda13;Lorg/chromium/chrome/browser/customtabs/features/toolbar/CustomTabToolbarCoordinator$$ExternalSyntheticLambda2;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda4;)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager;->isUrlBarFocused()Z
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager;->maybeShowCursorInLocationBar()V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager;->onAccessibilityModeChanged(Z)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager;->onBackPressStateChanged()V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager;->onTabOrModelChanged()V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager;->onThemeColorChanged(IZ)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager;->onTintChanged(Landroid/content/res/ColorStateList;I)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager;->refreshSelectedTab(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager;->setUrlBarFocus(IZ)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager;->updateBookmarkButtonStatus()V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager;->updateButtonStatus()V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager;->updateForLayout(IZ)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager;->updateTabLoadingState(Z)V
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda0;-><init>(ILjava/lang/Object;)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/tabmodel/IncognitoStateProvider;I)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda1;->getAsBoolean()Z
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda10;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda10;-><init>(I)V
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda11;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda11;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarManager;I)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda11;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda12;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda12;-><init>(ILjava/lang/Object;)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda12;->get()Ljava/lang/Object;
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda13;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda13;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarManager;I)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda13;->run()V
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda14;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda14;-><init>(Lorg/chromium/chrome/browser/compositor/CompositorViewHolder;I)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda14;->get()Ljava/lang/Object;
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda15;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda15;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarManager;Lorg/chromium/chrome/browser/identity_disc/IdentityDiscController;)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda15;->get()Ljava/lang/Object;
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda16;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda16;-><init>(ILjava/lang/Object;)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda16;->getAsBoolean()Z
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda17;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda17;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarManager;)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda17;->onHomepageStateUpdated()V
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda18;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda18;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarManager;)V
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda19;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda19;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarManager;)V
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda2;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda2;-><init>(I)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda2;->get()Ljava/lang/Object;
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda3;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda3;-><init>(I)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda3;->getAsBoolean()Z
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda4;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda4;-><init>(ILjava/lang/Object;)V
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda5;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda5;-><init>()V
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda6;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda6;-><init>()V
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda7;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda7;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarManager;I)V
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda8;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda8;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarManager;Lorg/chromium/base/supplier/Supplier;)V
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda9;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda9;-><init>(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$1;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$1;-><init>()V
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$10;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$10;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarManager;)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$10;->onFinishedHiding(I)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$10;->onFinishedShowing(I)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$10;->onStartedHiding(IZZ)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$10;->onStartedShowing(IZ)V
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$11;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$11;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarManager;)V
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$12;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$12;-><init>(Lorg/chromium/chrome/browser/tab/TabObscuringHandler;)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$12;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarManager;Lorg/chromium/base/supplier/ObservableSupplier;)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$12;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$13;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$13;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarManager;I)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$13;->setSearchBoxScrollListener(Lorg/chromium/base/Callback;)V
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$15;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$15;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarManager;)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$15;->onViewDetachedFromWindow(Landroid/view/View;)V
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$16;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$16;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarManager;)V
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$2;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$2;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarManager;)V
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$4;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$4;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarManager;Lorg/chromium/chrome/browser/ActivityTabProvider;)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$4;->maybeTriggerCacheRefreshForZeroSuggest(Lorg/chromium/url/GURL;)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$4;->onDidFinishNavigationInPrimaryMainFrame(Lorg/chromium/chrome/browser/tab/TabImpl;Lorg/chromium/content_public/browser/NavigationHandle;)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$4;->onLoadStopped(Lorg/chromium/chrome/browser/tab/TabImpl;Z)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$4;->onObservingDifferentTab(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$4;->onPageLoadFinished(Lorg/chromium/chrome/browser/tab/Tab;Lorg/chromium/url/GURL;)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$4;->onSSLStateUpdated(Lorg/chromium/chrome/browser/tab/TabImpl;)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$4;->onTitleUpdated(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$4;->onUrlUpdated(Lorg/chromium/chrome/browser/tab/TabImpl;)V
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$5;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$5;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarManager;)V
-PLorg/chromium/chrome/browser/toolbar/ToolbarManager$5;->onTabStateInitialized()V
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$6;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$6;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarManager;)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$6;->bookmarkModelChanged()V
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$7;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$7;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarManager;)V
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$8;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$8;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarManager;)V
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$9;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$9;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarManager;)V
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$ConstraintsProxy;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$ConstraintsProxy;-><init>()V
-Lorg/chromium/chrome/browser/toolbar/ToolbarManager$ToolbarNtpDelegate;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$ToolbarNtpDelegate;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarManager;)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$ToolbarNtpDelegate;->isCurrentlyVisible()Z
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$ToolbarNtpDelegate;->isLocationBarShown()Z
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$ToolbarNtpDelegate;->setSearchBoxScrollListener(Lorg/chromium/base/Callback;)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$ToolbarNtpDelegate;->setUrlFocusChangeAnimationPercent(F)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarManager$ToolbarNtpDelegate;->wasShowingNtp()Z
-Lorg/chromium/chrome/browser/toolbar/ToolbarProgressBar;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarProgressBar;-><init>(ILandroid/content/Context;Landroid/view/View;)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarProgressBar;->animateAlphaTo(F)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarProgressBar;->finish(Z)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarProgressBar;->getAccessibilityClassName()Ljava/lang/CharSequence;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarProgressBar;->initializeAnimation()V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarProgressBar;->onAttachedToWindow()V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarProgressBar;->onDetachedFromWindow()V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarProgressBar;->onInitializeAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarProgressBar;->onSizeChanged(IIII)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarProgressBar;->setAlpha(F)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarProgressBar;->setForegroundColor(I)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarProgressBar;->setProgress(F)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarProgressBar;->setVisibility(I)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarProgressBar;->start()V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarProgressBar;->updateTopMargin()V
-Lorg/chromium/chrome/browser/toolbar/ToolbarProgressBar$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarProgressBar$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarProgressBar;)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarProgressBar$$ExternalSyntheticLambda0;->onLayoutChange(Landroid/view/View;IIIIIIII)V
-Lorg/chromium/chrome/browser/toolbar/ToolbarProgressBar$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarProgressBar$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarProgressBar;)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarProgressBar$$ExternalSyntheticLambda1;->run()V
-Lorg/chromium/chrome/browser/toolbar/ToolbarProgressBar$1;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarProgressBar$1;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarProgressBar;)V
-Lorg/chromium/chrome/browser/toolbar/ToolbarProgressBar$2;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarProgressBar$2;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarProgressBar;)V
-Lorg/chromium/chrome/browser/toolbar/ToolbarProgressBarAnimatingView;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarProgressBarAnimatingView;-><init>(Landroid/content/Context;Landroid/widget/FrameLayout$LayoutParams;)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarProgressBarAnimatingView;->updateAnimation(Landroid/animation/ValueAnimator;F)V
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarProgressBarAnimatingView;->updateAnimationDuration()V
-Lorg/chromium/chrome/browser/toolbar/ToolbarProgressBarAnimatingView$1;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarProgressBarAnimatingView$1;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarProgressBarAnimatingView;)V
-Lorg/chromium/chrome/browser/toolbar/ToolbarProgressBarAnimatingView$ProgressBarUpdateListener;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarProgressBarAnimatingView$ProgressBarUpdateListener;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarProgressBarAnimatingView;)V
-Lorg/chromium/chrome/browser/toolbar/ToolbarTabControllerImpl;
-HSPLorg/chromium/chrome/browser/toolbar/ToolbarTabControllerImpl;-><init>(Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda12;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda12;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda12;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda2;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda13;Lorg/chromium/base/supplier/Supplier;)V
-Lorg/chromium/chrome/browser/toolbar/VoiceToolbarButtonController;
-HSPLorg/chromium/chrome/browser/toolbar/VoiceToolbarButtonController;-><init>(Landroidx/appcompat/app/AppCompatActivity;Landroid/graphics/drawable/Drawable;Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda1;Lorg/chromium/ui/modaldialog/ModalDialogManager;Lorg/chromium/chrome/browser/ui/RootUiCoordinator$4;)V
-HSPLorg/chromium/chrome/browser/toolbar/VoiceToolbarButtonController;->shouldShowButton(Lorg/chromium/chrome/browser/tab/Tab;)Z
-Lorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveButtonActionMenuCoordinator;
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveButtonActionMenuCoordinator;-><init>()V
-Lorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveButtonActionMenuCoordinator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveButtonActionMenuCoordinator$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveButtonActionMenuCoordinator;Lorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController$$ExternalSyntheticLambda1;)V
-Lorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarBridge;
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarBridge;->createResult(ZI)Ljava/lang/Object;
-Lorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarBridge$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarBridge$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictor$$ExternalSyntheticLambda1;)V
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarBridge$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController;
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController;-><init>(Landroidx/appcompat/app/AppCompatActivity;Lorg/chromium/chrome/browser/settings/SettingsLauncherImpl;Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;Lorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveButtonActionMenuCoordinator;Lorg/chromium/ui/base/ActivityWindowAndroid;Lorg/chromium/chrome/browser/preferences/SharedPreferencesManager;)V
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController;->addButtonVariant(ILorg/chromium/chrome/browser/toolbar/BaseButtonDataProvider;)V
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController;->addObserver(Lorg/chromium/chrome/browser/toolbar/ButtonDataProvider$ButtonDataObserver;)V
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController;->destroy()V
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController;->get(Lorg/chromium/chrome/browser/tab/Tab;)Lorg/chromium/chrome/browser/toolbar/ButtonDataImpl;
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController;->notifyObservers(Z)V
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController;->onFinishNativeInitialization()V
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController;->onPreferenceChanged(Ljava/lang/String;)V
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController;->removeObserver(Lorg/chromium/chrome/browser/toolbar/ButtonDataProvider$ButtonDataObserver;)V
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController;->setSingleProvider(I)V
-Lorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController;I)V
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController$$ExternalSyntheticLambda1;-><init>(Landroidx/appcompat/app/AppCompatActivity;Lorg/chromium/chrome/browser/settings/SettingsLauncherImpl;)V
-Lorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController$1;
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController$1;-><init>(Lorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController;)V
-Lorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarFeatures;
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarFeatures;->getSegmentationDefault()I
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarFeatures;->isCustomizationEnabled()Z
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarFeatures;->isReaderModePageActionEnabled()Z
-Lorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictor;
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictor;-><init>(Lorg/chromium/ui/permissions/AndroidPermissionDelegate;)V
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictor;->isValidSegment(I)Z
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictor;->recomputeUiState(Lorg/chromium/base/Callback;)V
-Lorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictor$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictor$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictor;ZIIZLorg/chromium/base/Callback;)V
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictor$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictor$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictor$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/base/Callback;)V
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictor$$ExternalSyntheticLambda1;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictor$UiState;
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictor$UiState;-><init>(IIIZ)V
-Lorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStats$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStats$$ExternalSyntheticLambda1;-><init>()V
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStats$$ExternalSyntheticLambda1;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/toolbar/adaptive/OptionalNewTabButtonController;
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/OptionalNewTabButtonController;-><init>(Landroidx/appcompat/app/AppCompatActivity;Landroid/graphics/drawable/Drawable;Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda1;)V
-Lorg/chromium/chrome/browser/toolbar/adaptive/OptionalNewTabButtonController$Delegate;
-HSPLorg/chromium/chrome/browser/toolbar/adaptive/OptionalNewTabButtonController$Delegate;-><init>(Lorg/chromium/base/supplier/Supplier;Lorg/chromium/chrome/browser/ActivityTabProvider;)V
-Lorg/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator;
-HSPLorg/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator;-><init>(Landroidx/appcompat/app/AppCompatActivity;Lorg/chromium/ui/base/WindowAndroid;Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;Lorg/chromium/ui/resources/ResourceManager;Lorg/chromium/chrome/browser/browser_controls/BrowserControlsSizer;Lorg/chromium/chrome/browser/fullscreen/FullscreenManager;Lorg/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewResourceFrameLayout;Lorg/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator;Lorg/chromium/chrome/browser/tab/TabObscuringHandler;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$ConstraintsProxy;)V
-HSPLorg/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator;->getHandleBackPressChangedSupplier()Lorg/chromium/base/supplier/ObservableSupplier;
-Lorg/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator$$ExternalSyntheticLambda0;-><init>(I)V
-HSPLorg/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator$$ExternalSyntheticLambda0;->bind(Lorg/chromium/ui/modelutil/PropertyObservable;Ljava/lang/Object;Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator;)V
-Lorg/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator$$ExternalSyntheticLambda2;
-HSPLorg/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator$$ExternalSyntheticLambda2;-><init>(Lorg/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewResourceFrameLayout;)V
-HSPLorg/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator$$ExternalSyntheticLambda2;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator;
-HSPLorg/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator;-><init>(Lorg/chromium/ui/base/WindowAndroid;Lorg/chromium/ui/modelutil/PropertyModel;Lorg/chromium/chrome/browser/browser_controls/BrowserControlsSizer;Lorg/chromium/chrome/browser/fullscreen/FullscreenManager;Lorg/chromium/chrome/browser/tab/TabObscuringHandler;ILorg/chromium/base/supplier/ObservableSupplierImpl;)V
-HSPLorg/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator;->isCompositedViewVisible()Z
-HSPLorg/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator;->onStartedShowing(IZ)V
-HSPLorg/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator;->updateAndroidViewVisibility()V
-HSPLorg/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator;->updateCompositedViewVisibility()V
-Lorg/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator;)V
-Lorg/chromium/chrome/browser/toolbar/bottom/BottomControlsProperties;
-Lorg/chromium/chrome/browser/toolbar/bottom/BottomControlsViewBinder$ViewHolder;
-HSPLorg/chromium/chrome/browser/toolbar/bottom/BottomControlsViewBinder$ViewHolder;-><init>(Lorg/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewResourceFrameLayout;Lorg/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewSceneLayer;)V
-Lorg/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewResourceFrameLayout;
-HSPLorg/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewResourceFrameLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewResourceFrameLayout;->createResourceAdapter()Lorg/chromium/ui/resources/dynamics/ViewResourceAdapter;
-Lorg/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewResourceFrameLayout$1;
-HSPLorg/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewResourceFrameLayout$1;-><init>(Lorg/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewResourceFrameLayout;Landroid/view/View;)V
-Lorg/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewSceneLayer;
-HSPLorg/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewSceneLayer;-><init>(Lorg/chromium/components/browser_ui/widget/ViewResourceFrameLayout;I)V
-HSPLorg/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewSceneLayer;->initializeNative()V
-HSPLorg/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewSceneLayer;->isSceneOverlayTreeShowing()Z
-HSPLorg/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewSceneLayer;->onSizeChanged(FFFI)V
-HSPLorg/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewSceneLayer;->shouldHideAndroidBrowserControls()Z
-HSPLorg/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewSceneLayer;->updateOverlay(J)Z
-Lorg/chromium/chrome/browser/toolbar/load_progress/LoadProgressCoordinator;
-HSPLorg/chromium/chrome/browser/toolbar/load_progress/LoadProgressCoordinator;-><init>(Lorg/chromium/base/supplier/ObservableSupplier;Lorg/chromium/chrome/browser/toolbar/ToolbarProgressBar;Z)V
-Lorg/chromium/chrome/browser/toolbar/load_progress/LoadProgressCoordinator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/toolbar/load_progress/LoadProgressCoordinator$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/toolbar/load_progress/LoadProgressViewBinder;)V
-HSPLorg/chromium/chrome/browser/toolbar/load_progress/LoadProgressCoordinator$$ExternalSyntheticLambda0;->bind(Lorg/chromium/ui/modelutil/PropertyObservable;Ljava/lang/Object;Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/toolbar/load_progress/LoadProgressMediator;
-HSPLorg/chromium/chrome/browser/toolbar/load_progress/LoadProgressMediator;-><init>(Lorg/chromium/base/supplier/ObservableSupplier;Lorg/chromium/ui/modelutil/PropertyModel;Z)V
-HSPLorg/chromium/chrome/browser/toolbar/load_progress/LoadProgressMediator;->finishLoadProgress(Z)V
-HSPLorg/chromium/chrome/browser/toolbar/load_progress/LoadProgressMediator;->onNewTabObserved(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/toolbar/load_progress/LoadProgressMediator;->updateLoadProgress(F)V
-Lorg/chromium/chrome/browser/toolbar/load_progress/LoadProgressMediator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/toolbar/load_progress/LoadProgressMediator$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/toolbar/load_progress/LoadProgressMediator;)V
-HSPLorg/chromium/chrome/browser/toolbar/load_progress/LoadProgressMediator$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/toolbar/load_progress/LoadProgressMediator$1;
-HSPLorg/chromium/chrome/browser/toolbar/load_progress/LoadProgressMediator$1;-><init>(Lorg/chromium/chrome/browser/toolbar/load_progress/LoadProgressMediator;)V
-HSPLorg/chromium/chrome/browser/toolbar/load_progress/LoadProgressMediator$1;->onLoadProgressChanged(Lorg/chromium/chrome/browser/tab/Tab;F)V
-HSPLorg/chromium/chrome/browser/toolbar/load_progress/LoadProgressMediator$1;->onLoadStopped(Lorg/chromium/chrome/browser/tab/TabImpl;Z)V
-Lorg/chromium/chrome/browser/toolbar/load_progress/LoadProgressProperties;
-Lorg/chromium/chrome/browser/toolbar/load_progress/LoadProgressSimulator;
-HSPLorg/chromium/chrome/browser/toolbar/load_progress/LoadProgressSimulator;-><init>(Lorg/chromium/ui/modelutil/PropertyModel;)V
-Lorg/chromium/chrome/browser/toolbar/load_progress/LoadProgressSimulator$1;
-HSPLorg/chromium/chrome/browser/toolbar/load_progress/LoadProgressSimulator$1;-><init>(Lorg/chromium/chrome/browser/toolbar/load_progress/LoadProgressSimulator;Landroid/os/Looper;)V
-Lorg/chromium/chrome/browser/toolbar/load_progress/LoadProgressViewBinder;
-HSPLorg/chromium/chrome/browser/toolbar/load_progress/LoadProgressViewBinder;-><init>()V
-Lorg/chromium/chrome/browser/toolbar/menu_button/MenuButton;
-HSPLorg/chromium/chrome/browser/toolbar/menu_button/MenuButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/chrome/browser/toolbar/menu_button/MenuButton;->onFinishInflate()V
-HSPLorg/chromium/chrome/browser/toolbar/menu_button/MenuButton;->onLayout(ZIIII)V
-HSPLorg/chromium/chrome/browser/toolbar/menu_button/MenuButton;->onTintChanged(Landroid/content/res/ColorStateList;I)V
-HSPLorg/chromium/chrome/browser/toolbar/menu_button/MenuButton;->setOnKeyListener(Landroid/view/View$OnKeyListener;)V
-HSPLorg/chromium/chrome/browser/toolbar/menu_button/MenuButton;->updateImageResources()V
-HSPLorg/chromium/chrome/browser/toolbar/menu_button/MenuButton;->updateMenuButtonHighlightDrawable()V
-Lorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonCoordinator;
-HSPLorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonCoordinator;-><init>(Lorg/chromium/base/supplier/OneshotSupplierImpl;Lorg/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate;Lorg/chromium/ui/base/ActivityWindowAndroid;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda7;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda0;ZLorg/chromium/base/supplier/Supplier;Lorg/chromium/chrome/browser/theme/ThemeColorProvider;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda2;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda6;I)V
-HSPLorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonCoordinator;->destroy()V
-Lorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonCoordinator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonCoordinator$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonMediator;)V
-HSPLorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonCoordinator$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonCoordinator$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonCoordinator$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonCoordinator;)V
-HSPLorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonCoordinator$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;
-Lorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonCoordinator$$ExternalSyntheticLambda2;
-HSPLorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonCoordinator$$ExternalSyntheticLambda2;-><init>(Lorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonCoordinator;)V
-HSPLorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonCoordinator$$ExternalSyntheticLambda2;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonCoordinator$SetFocusFunction;
-Lorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonMediator;
-HSPLorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonMediator;-><init>(Lorg/chromium/ui/modelutil/PropertyModel;ZLorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonCoordinator$$ExternalSyntheticLambda1;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda0;Lorg/chromium/chrome/browser/theme/ThemeColorProvider;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda7;Lorg/chromium/base/supplier/OneshotSupplierImpl;Lorg/chromium/ui/base/ActivityWindowAndroid;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda2;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda6;)V
-Lorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonMediator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonMediator$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonMediator;)V
-HSPLorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonMediator$$ExternalSyntheticLambda0;->onTintChanged(Landroid/content/res/ColorStateList;I)V
-Lorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonMediator$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonMediator$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonMediator;)V
-HSPLorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonMediator$$ExternalSyntheticLambda1;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonMediator$$ExternalSyntheticLambda2;
-HSPLorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonMediator$$ExternalSyntheticLambda2;-><init>()V
-Lorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonProperties;
-Lorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonProperties$ShowBadgeProperty;
-HSPLorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonProperties$ShowBadgeProperty;-><init>(ZZ)V
-Lorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonProperties$ThemeProperty;
-HSPLorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonProperties$ThemeProperty;-><init>(Landroid/content/res/ColorStateList;I)V
-Lorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonState;
-Lorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonViewBinder;
-HSPLorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonViewBinder;-><init>()V
-HSPLorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonViewBinder;->bind(Lorg/chromium/ui/modelutil/PropertyModel;Lorg/chromium/chrome/browser/toolbar/menu_button/MenuButton;Lorg/chromium/ui/modelutil/PropertyModel$NamedPropertyKey;)V
-HSPLorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonViewBinder;->bind(Lorg/chromium/ui/modelutil/PropertyObservable;Ljava/lang/Object;Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/toolbar/menu_button/MenuUiState;
-HSPLorg/chromium/chrome/browser/toolbar/menu_button/MenuUiState;-><init>()V
-Lorg/chromium/chrome/browser/toolbar/optional_button/OptionalButtonCoordinator;
-Lorg/chromium/chrome/browser/toolbar/top/ActionModeController;
-HSPLorg/chromium/chrome/browser/toolbar/top/ActionModeController;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/toolbar/top/ViewShiftingActionBarDelegate;Lorg/chromium/chrome/browser/toolbar/top/ToolbarActionModeCallback;)V
-Lorg/chromium/chrome/browser/toolbar/top/ActionModeController$1;
-HSPLorg/chromium/chrome/browser/toolbar/top/ActionModeController$1;-><init>()V
-Lorg/chromium/chrome/browser/toolbar/top/CaptureReadinessResult;
-HSPLorg/chromium/chrome/browser/toolbar/top/CaptureReadinessResult;-><init>(IIIZ)V
-HSPLorg/chromium/chrome/browser/toolbar/top/CaptureReadinessResult;->logCaptureReasonFromResult(Lorg/chromium/chrome/browser/toolbar/top/CaptureReadinessResult;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/CaptureReadinessResult;->notReady(I)Lorg/chromium/chrome/browser/toolbar/top/CaptureReadinessResult;
-Lorg/chromium/chrome/browser/toolbar/top/HomeButtonCoordinator;
-HSPLorg/chromium/chrome/browser/toolbar/top/HomeButtonCoordinator;-><init>(Landroidx/appcompat/app/AppCompatActivity;Landroid/view/View;Lorg/chromium/chrome/browser/user_education/UserEducationHelper;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda1;Lorg/chromium/base/supplier/OneshotSupplier;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda2;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda3;Lorg/chromium/chrome/browser/ActivityTabProvider;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/HomeButtonCoordinator;->handlePageLoadFinished(Lorg/chromium/url/GURL;)V
-Lorg/chromium/chrome/browser/toolbar/top/HomeButtonCoordinator$1;
-HSPLorg/chromium/chrome/browser/toolbar/top/HomeButtonCoordinator$1;-><init>(Lorg/chromium/chrome/browser/toolbar/top/HomeButtonCoordinator;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/HomeButtonCoordinator$1;->onPageLoadFinished(Lorg/chromium/chrome/browser/tab/Tab;Lorg/chromium/url/GURL;)V
-Lorg/chromium/chrome/browser/toolbar/top/OptionalBrowsingModeButtonController;
-HSPLorg/chromium/chrome/browser/toolbar/top/OptionalBrowsingModeButtonController;-><init>(Ljava/util/List;Lorg/chromium/chrome/browser/user_education/UserEducationHelper;Lorg/chromium/chrome/browser/toolbar/top/ToolbarLayout;Lorg/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator$$ExternalSyntheticLambda1;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/OptionalBrowsingModeButtonController;->showHighestPrecedenceOptionalButton()V
-Lorg/chromium/chrome/browser/toolbar/top/OptionalBrowsingModeButtonController$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/toolbar/top/OptionalBrowsingModeButtonController$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/toolbar/top/OptionalBrowsingModeButtonController;Lorg/chromium/chrome/browser/toolbar/ButtonDataProvider;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/OptionalBrowsingModeButtonController$$ExternalSyntheticLambda0;->buttonDataChanged(Z)V
-Lorg/chromium/chrome/browser/toolbar/top/PhoneCaptureStateToken;
-HSPLorg/chromium/chrome/browser/toolbar/top/PhoneCaptureStateToken;-><init>(IILorg/chromium/chrome/browser/toolbar/ButtonDataImpl;ILorg/chromium/chrome/browser/toolbar/top/VisibleUrlText;ILandroid/content/res/ColorStateList;ZZI)V
-Lorg/chromium/chrome/browser/toolbar/top/StartSurfaceTabSwitcherActionMenuCoordinator;
-HSPLorg/chromium/chrome/browser/toolbar/top/StartSurfaceTabSwitcherActionMenuCoordinator;-><init>()V
-Lorg/chromium/chrome/browser/toolbar/top/StartSurfaceToolbarCoordinator;
-HSPLorg/chromium/chrome/browser/toolbar/top/StartSurfaceToolbarCoordinator;-><init>(Landroid/view/ViewStub;Lorg/chromium/chrome/browser/user_education/UserEducationHelper;Lorg/chromium/chrome/browser/toolbar/ButtonDataProvider;Lorg/chromium/chrome/browser/toolbar/AppThemeColorProvider;Lorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonCoordinator;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda15;ZZZLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda3;Lorg/chromium/base/CallbackController$CancelableCallback;ZZLorg/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator$$ExternalSyntheticLambda2;Lorg/chromium/chrome/browser/toolbar/top/ToolbarColorObserverManager;)V
-Lorg/chromium/chrome/browser/toolbar/top/StartSurfaceToolbarCoordinator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/toolbar/top/StartSurfaceToolbarCoordinator$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/toolbar/top/StartSurfaceToolbarCoordinator;Lorg/chromium/chrome/browser/user_education/UserEducationHelper;)V
-Lorg/chromium/chrome/browser/toolbar/top/StartSurfaceToolbarCoordinator$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/toolbar/top/StartSurfaceToolbarCoordinator$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/toolbar/top/StartSurfaceToolbarCoordinator;)V
-Lorg/chromium/chrome/browser/toolbar/top/StartSurfaceToolbarMediator;
-HSPLorg/chromium/chrome/browser/toolbar/top/StartSurfaceToolbarMediator;-><init>(Landroid/content/Context;Lorg/chromium/ui/modelutil/PropertyModel;Lorg/chromium/chrome/browser/toolbar/top/StartSurfaceToolbarCoordinator$$ExternalSyntheticLambda0;ZLorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonCoordinator;Lorg/chromium/chrome/browser/toolbar/ButtonDataProvider;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda15;ZZZLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda3;Lorg/chromium/base/CallbackController$CancelableCallback;ZZZLorg/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator$$ExternalSyntheticLambda2;Lorg/chromium/chrome/browser/toolbar/top/ToolbarColorObserverManager;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/StartSurfaceToolbarMediator;->buttonDataChanged(Z)V
-HSPLorg/chromium/chrome/browser/toolbar/top/StartSurfaceToolbarMediator;->isOnGridTabSwitcher()Z
-HSPLorg/chromium/chrome/browser/toolbar/top/StartSurfaceToolbarMediator;->updateIdentityDisc(Lorg/chromium/chrome/browser/toolbar/ButtonDataImpl;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/StartSurfaceToolbarMediator;->updateNewTabViewTextVisibility()V
-HSPLorg/chromium/chrome/browser/toolbar/top/StartSurfaceToolbarMediator;->updateNewTabViewVisibility()V
-Lorg/chromium/chrome/browser/toolbar/top/StartSurfaceToolbarMediator$1;
-HSPLorg/chromium/chrome/browser/toolbar/top/StartSurfaceToolbarMediator$1;-><init>(Lorg/chromium/chrome/browser/toolbar/top/StartSurfaceToolbarMediator;)V
-PLorg/chromium/chrome/browser/toolbar/top/StartSurfaceToolbarMediator$1;->onTabStateInitialized()V
-Lorg/chromium/chrome/browser/toolbar/top/StartSurfaceToolbarMediator$2;
-HSPLorg/chromium/chrome/browser/toolbar/top/StartSurfaceToolbarMediator$2;-><init>(Lorg/chromium/chrome/browser/toolbar/top/StartSurfaceToolbarMediator;)V
-Lorg/chromium/chrome/browser/toolbar/top/StartSurfaceToolbarProperties;
-Lorg/chromium/chrome/browser/toolbar/top/TabSwitcherActionMenuCoordinator;
-HSPLorg/chromium/chrome/browser/toolbar/top/TabSwitcherActionMenuCoordinator;-><init>()V
-Lorg/chromium/chrome/browser/toolbar/top/TabSwitcherActionMenuCoordinator$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/toolbar/top/TabSwitcherActionMenuCoordinator$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/toolbar/top/TabSwitcherActionMenuCoordinator;Lorg/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator$$ExternalSyntheticLambda0;)V
-Lorg/chromium/chrome/browser/toolbar/top/ToggleTabStackButton;
-HSPLorg/chromium/chrome/browser/toolbar/top/ToggleTabStackButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToggleTabStackButton;->onFinishInflate()V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToggleTabStackButton;->onLayout(ZIIII)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToggleTabStackButton;->onMeasure(II)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToggleTabStackButton;->onTabCountChanged(IZ)V
-Lorg/chromium/chrome/browser/toolbar/top/ToggleTabStackButtonCoordinator;
-HSPLorg/chromium/chrome/browser/toolbar/top/ToggleTabStackButtonCoordinator;-><init>(Landroidx/appcompat/app/AppCompatActivity;Lorg/chromium/chrome/browser/toolbar/top/ToggleTabStackButton;Lorg/chromium/chrome/browser/user_education/UserEducationHelper;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda1;Lorg/chromium/base/supplier/OneshotSupplier;Lorg/chromium/base/supplier/OneshotSupplier;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda4;Lorg/chromium/chrome/browser/ActivityTabProvider;)V
-Lorg/chromium/chrome/browser/toolbar/top/ToggleTabStackButtonCoordinator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/toolbar/top/ToggleTabStackButtonCoordinator$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/toolbar/top/ToggleTabStackButtonCoordinator;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToggleTabStackButtonCoordinator$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/toolbar/top/ToggleTabStackButtonCoordinator$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/toolbar/top/ToggleTabStackButtonCoordinator$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/toolbar/top/ToggleTabStackButtonCoordinator;I)V
-Lorg/chromium/chrome/browser/toolbar/top/ToggleTabStackButtonCoordinator$1;
-HSPLorg/chromium/chrome/browser/toolbar/top/ToggleTabStackButtonCoordinator$1;-><init>(Lorg/chromium/chrome/browser/toolbar/top/ToggleTabStackButtonCoordinator;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToggleTabStackButtonCoordinator$1;->onPageLoadFinished(Lorg/chromium/chrome/browser/tab/Tab;Lorg/chromium/url/GURL;)V
-Lorg/chromium/chrome/browser/toolbar/top/ToggleTabStackButtonCoordinator$2;
-HSPLorg/chromium/chrome/browser/toolbar/top/ToggleTabStackButtonCoordinator$2;-><init>(Lorg/chromium/chrome/browser/toolbar/top/ToggleTabStackButtonCoordinator;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToggleTabStackButtonCoordinator$2;->onStartedHiding(IZZ)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToggleTabStackButtonCoordinator$2;->onStartedShowing(IZ)V
-Lorg/chromium/chrome/browser/toolbar/top/Toolbar;
-Lorg/chromium/chrome/browser/toolbar/top/ToolbarActionModeCallback;
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarActionModeCallback;-><init>()V
-Lorg/chromium/chrome/browser/toolbar/top/ToolbarColorObserverManager;
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarColorObserverManager;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/toolbar/top/ToolbarLayout;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarColorObserverManager;->notifyToolbarColorChanged()V
-Lorg/chromium/chrome/browser/toolbar/top/ToolbarControlContainer;
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarControlContainer;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarControlContainer;->gatherTransparentRegion(Landroid/graphics/Region;)Z
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarControlContainer;->initWithToolbar(I)V
-Lorg/chromium/chrome/browser/toolbar/top/ToolbarControlContainer$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarControlContainer$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/toolbar/top/ToolbarControlContainer;)V
-Lorg/chromium/chrome/browser/toolbar/top/ToolbarControlContainer$SwipeGestureListenerImpl;
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarControlContainer$SwipeGestureListenerImpl;-><init>(Lorg/chromium/chrome/browser/toolbar/top/ToolbarControlContainer;Landroid/content/Context;Lorg/chromium/components/browser_ui/widget/gesture/SwipeGestureListener$SwipeHandler;)V
-Lorg/chromium/chrome/browser/toolbar/top/ToolbarControlContainer$ToolbarViewResourceAdapter;
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarControlContainer$ToolbarViewResourceAdapter;-><init>(Landroid/view/View;Z)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarControlContainer$ToolbarViewResourceAdapter;->createNativeResource()J
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarControlContainer$ToolbarViewResourceAdapter;->isDirty()Z
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarControlContainer$ToolbarViewResourceAdapter;->onCaptureEnd()V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarControlContainer$ToolbarViewResourceAdapter;->onCaptureStart(Landroid/graphics/Canvas;Landroid/graphics/Rect;)V
-Lorg/chromium/chrome/browser/toolbar/top/ToolbarControlContainer$ToolbarViewResourceAdapter$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarControlContainer$ToolbarViewResourceAdapter$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/toolbar/top/ToolbarControlContainer$ToolbarViewResourceAdapter;)V
-Lorg/chromium/chrome/browser/toolbar/top/ToolbarControlContainer$ToolbarViewResourceFrameLayout;
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarControlContainer$ToolbarViewResourceFrameLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarControlContainer$ToolbarViewResourceFrameLayout;->createResourceAdapter()Lorg/chromium/ui/resources/dynamics/ViewResourceAdapter;
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarControlContainer$ToolbarViewResourceFrameLayout;->isReadyForCapture()Z
-Lorg/chromium/chrome/browser/toolbar/top/ToolbarLayout;
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarLayout;->destroy()V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarLayout;->draw(Landroid/graphics/Canvas;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarLayout;->getTabStripHeight()I
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarLayout;->initialize(Lorg/chromium/chrome/browser/toolbar/LocationBarModel;Lorg/chromium/chrome/browser/toolbar/ToolbarTabControllerImpl;Lorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonCoordinator;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda5;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda16;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda5;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarLayout;->isIncognito()Z
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarLayout;->onAttachedToWindow()V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarLayout;->onDraw(Landroid/graphics/Canvas;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarLayout;->onFinishInflate()V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarLayout;->onLayout(ZIIII)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarLayout;->onMeasure(II)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarLayout;->onNativeLibraryReady$1()V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarLayout;->onNavigatedToDifferentPage()V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarLayout;->onThemeColorChanged(IZ)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarLayout;->setBookmarkClickHandler(Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda13;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarLayout;->setCustomTabCloseClickHandler(Lorg/chromium/chrome/browser/customtabs/features/toolbar/CustomTabToolbarCoordinator$$ExternalSyntheticLambda2;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarLayout;->setVisibility(I)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarLayout;->updateBackButtonVisibility(Z)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarLayout;->updateBookmarkButton(ZZ)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarLayout;->updateForwardButtonVisibility(Z)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarLayout;->updateReloadButtonVisibility(Z)V
-Lorg/chromium/chrome/browser/toolbar/top/ToolbarLayout$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarLayout$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/toolbar/top/ToolbarLayout;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarLayout$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/toolbar/top/ToolbarLayout$1;
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarLayout$1;-><init>(Lorg/chromium/chrome/browser/toolbar/top/ToolbarLayout;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarLayout$1;->onLayoutChange(Landroid/view/View;IIIIIIII)V
-Lorg/chromium/chrome/browser/toolbar/top/ToolbarLayout$2;
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarLayout$2;-><init>()V
-Lorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->destroy()V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->dispatchDraw(Landroid/graphics/Canvas;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->draw(Landroid/graphics/Canvas;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->drawChild(Landroid/graphics/Canvas;Landroid/view/View;J)Z
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->drawLocationBar(Landroid/graphics/Canvas;J)Z
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->finishAnimations()V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->generateToolbarSnapshotState()Lorg/chromium/chrome/browser/toolbar/top/PhoneCaptureStateToken;
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->getBoundsAfterAccountingForLeftButton()I
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->getBoundsAfterAccountingForRightButtons()I
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->getHomeButton()Lorg/chromium/chrome/browser/toolbar/HomeButton;
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->getLocationBar()Lorg/chromium/chrome/browser/omnibox/LocationBar;
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->getLocationBarColorForToolbarColor(I)I
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->getLocationBarContentRect(Landroid/graphics/Rect;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->getLocationBarDefaultColorForToolbarColor(I)I
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->getToolbarColorForVisualState(I)I
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->getToolbarDefaultColor()I
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->getViewBoundsLeftOfLocationBar(I)I
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->getViewBoundsRightOfLocationBar(I)I
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->hideOptionalButton()V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->isLocationBarShownInNTP()Z
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->isReadyForTextureCapture()Lorg/chromium/chrome/browser/toolbar/top/CaptureReadinessResult;
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->layoutLocationBarWithoutAnimationExpansion(I)Z
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->onAttachedToWindow()V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->onFinishInflate()V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->onHomeButtonUpdate(Z)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->onMeasure(II)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->onNativeLibraryReady$1()V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->onPrimaryColorChanged(Z)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->onSizeChanged(IIII)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->onStateRestored()V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->onTabCountChanged(IZ)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->onTabOrModelChanged()V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->onTintChanged(Landroid/content/res/ColorStateList;I)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->onWindowVisibilityChanged(I)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->resetNtpAnimationValues()V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->setBrowserControlsVisibilityDelegate(Lorg/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->setContentAttached()V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->setForceTextureCapture(Z)Z
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->setLayoutUpdater(Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda0;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->setLocationBarCoordinator(Lorg/chromium/chrome/browser/omnibox/LocationBarCoordinator;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->setOnTabSwitcherClickHandler(Landroid/view/View$OnClickListener;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->setOnTabSwitcherLongClickHandler(Landroid/view/View$OnLongClickListener;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->setTabCountProvider(Lorg/chromium/chrome/browser/toolbar/TabCountProvider;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->setTextureCaptureMode(Z)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->updateButtonVisibility()V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->updateLocationBarBackgroundBounds(ILandroid/graphics/Rect;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->updateLocationBarLayoutForExpansionAnimation()V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->updateModernLocationBarColor(I)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->updateNtpAnimationState()V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->updateProgressBarVisibility()V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->updateShadowVisibility()V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->updateToolbarBackground(I)V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->updateUnfocusedLocationBarLayoutParams()Z
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->updateUrlExpansionAnimation()V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->updateUrlExpansionFraction()V
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;->updateVisualsForLocationBarState()V
-Lorg/chromium/chrome/browser/toolbar/top/ToolbarPhone$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;I)V
-Lorg/chromium/chrome/browser/toolbar/top/ToolbarPhone$1;
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone$1;-><init>(Lorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;)V
-Lorg/chromium/chrome/browser/toolbar/top/ToolbarPhone$2;
-HSPLorg/chromium/chrome/browser/toolbar/top/ToolbarPhone$2;-><init>(Lorg/chromium/chrome/browser/toolbar/top/ToolbarPhone;I)V
-Lorg/chromium/chrome/browser/toolbar/top/ToolbarPhone$NtpSearchBoxDrawable;
-Lorg/chromium/chrome/browser/toolbar/top/ToolbarTablet;
-Lorg/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator;
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator;-><init>(Lorg/chromium/chrome/browser/toolbar/top/ToolbarControlContainer;Landroid/view/ViewStub;Lorg/chromium/chrome/browser/toolbar/top/ToolbarLayout;Lorg/chromium/chrome/browser/toolbar/LocationBarModel;Lorg/chromium/chrome/browser/toolbar/ToolbarTabControllerImpl;Lorg/chromium/chrome/browser/user_education/UserEducationHelper;Ljava/util/List;Lorg/chromium/chrome/browser/theme/ThemeColorProvider;Lorg/chromium/chrome/browser/toolbar/AppThemeColorProvider;Lorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonCoordinator;Lorg/chromium/chrome/browser/toolbar/menu_button/MenuButtonCoordinator;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/base/supplier/ObservableSupplier;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/chrome/browser/toolbar/ButtonDataProvider;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda4;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda15;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda14;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda3;ZZZZZLorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda5;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda16;Lorg/chromium/chrome/browser/toolbar/ToolbarManager$$ExternalSyntheticLambda5;ZLorg/chromium/base/CallbackController$CancelableCallback;ZLorg/chromium/chrome/browser/toolbar/ToolbarManager$ConstraintsProxy;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate;Z)V
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator;->finishAnimations()V
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator;->setTabCountProvider(Lorg/chromium/chrome/browser/toolbar/TabCountProvider;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator;->updateButtonVisibility()V
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator;->updateReloadButtonVisibility(Z)V
-Lorg/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator$$ExternalSyntheticLambda0;-><init>(ILjava/lang/Object;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/toolbar/LocationBarModel;I)V
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;
-Lorg/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator$$ExternalSyntheticLambda2;
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator$$ExternalSyntheticLambda2;-><init>(Lorg/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator;I)V
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator$$ExternalSyntheticLambda2;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator$ToolbarColorObserver;
-Lorg/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator$UrlExpansionObserver;
-Lorg/chromium/chrome/browser/toolbar/top/TopToolbarInteractabilityManager;
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarInteractabilityManager;-><init>(Lorg/chromium/chrome/browser/toolbar/top/TopToolbarInteractabilityManager$Delegate;)V
-Lorg/chromium/chrome/browser/toolbar/top/TopToolbarInteractabilityManager$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarInteractabilityManager$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/toolbar/top/TopToolbarInteractabilityManager;)V
-Lorg/chromium/chrome/browser/toolbar/top/TopToolbarInteractabilityManager$Delegate;
-Lorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator;
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/layouts/LayoutManagerProvider$Unowned;Lorg/chromium/base/Callback;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/chrome/browser/browser_controls/BrowserControlsSizer;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/chrome/browser/theme/TopUiThemeColorProvider;IZ)V
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator;->getUpdatedSceneOverlayTree(Landroid/graphics/RectF;Lorg/chromium/ui/resources/ResourceManager;F)Lorg/chromium/chrome/browser/layouts/scene_layer/SceneOverlayLayer;
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator;->isSceneOverlayTreeShowing()Z
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator;->onSizeChanged(FFFI)V
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator;->setManualVisibility(Z)V
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator;->shouldHideAndroidBrowserControls()Z
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator;->updateOverlay(J)Z
-Lorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator$$ExternalSyntheticLambda0;-><init>()V
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator$$ExternalSyntheticLambda0;->bind(Lorg/chromium/ui/modelutil/PropertyObservable;Ljava/lang/Object;Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayMediator;
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayMediator;-><init>(Lorg/chromium/ui/modelutil/PropertyModel;Landroid/content/Context;Lorg/chromium/chrome/browser/layouts/LayoutStateProvider;Lorg/chromium/base/Callback;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/chrome/browser/browser_controls/BrowserControlsSizer;Lorg/chromium/chrome/browser/theme/TopUiThemeColorProvider;IZ)V
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayMediator;->updateProgress()V
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayMediator;->updateShadowState()V
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayMediator;->updateThemeColor(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayMediator;->updateVisibility()V
-Lorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayMediator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayMediator$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayMediator;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayMediator$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayMediator$1;
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayMediator$1;-><init>(Lorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayMediator;I)V
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayMediator$1;->onStartedShowing(IZ)V
-Lorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayMediator$2;
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayMediator$2;-><init>(Lorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayMediator;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayMediator$2;->onLoadProgressChanged(Lorg/chromium/chrome/browser/tab/Tab;F)V
-Lorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayMediator$3;
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayMediator$3;-><init>(Lorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayMediator;)V
-Lorg/chromium/chrome/browser/toolbar/top/TopToolbarOverlayProperties;
-Lorg/chromium/chrome/browser/toolbar/top/TopToolbarSceneLayer;
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarSceneLayer;-><init>(Lorg/chromium/base/supplier/Supplier;)V
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarSceneLayer;->destroy()V
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarSceneLayer;->initializeNative()V
-HSPLorg/chromium/chrome/browser/toolbar/top/TopToolbarSceneLayer;->setContentTree(Lorg/chromium/chrome/browser/layouts/scene_layer/SceneLayer;)V
-Lorg/chromium/chrome/browser/toolbar/top/ViewShiftingActionBarDelegate;
-HSPLorg/chromium/chrome/browser/toolbar/top/ViewShiftingActionBarDelegate;-><init>(Landroidx/appcompat/app/ActionBar;Landroid/view/View;Landroid/view/View;)V
-Lorg/chromium/chrome/browser/toolbar/top/VisibleUrlText;
-HSPLorg/chromium/chrome/browser/toolbar/top/VisibleUrlText;-><init>(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)V
-Lorg/chromium/chrome/browser/translate/TranslateUtils;
-HSPLorg/chromium/chrome/browser/translate/TranslateUtils;->canTranslateCurrentTab(Lorg/chromium/chrome/browser/tab/Tab;Z)Z
-Lorg/chromium/chrome/browser/ui/AppLaunchDrawBlocker$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/ui/AppLaunchDrawBlocker$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/ui/AppLaunchDrawBlocker;)V
-HSPLorg/chromium/chrome/browser/ui/AppLaunchDrawBlocker$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/ui/AppLaunchDrawBlocker$1;
-HSPLorg/chromium/chrome/browser/ui/AppLaunchDrawBlocker$1;-><init>(Lorg/chromium/chrome/browser/ui/AppLaunchDrawBlocker;)V
-HSPLorg/chromium/chrome/browser/ui/AppLaunchDrawBlocker$1;->onPostInflationStartup()V
-HSPLorg/chromium/chrome/browser/ui/AppLaunchDrawBlocker$1;->onPreInflationStartup()V
-Lorg/chromium/chrome/browser/ui/AppLaunchDrawBlocker$2;
-HSPLorg/chromium/chrome/browser/ui/AppLaunchDrawBlocker$2;-><init>(Lorg/chromium/chrome/browser/ui/AppLaunchDrawBlocker;)V
-HSPLorg/chromium/chrome/browser/ui/AppLaunchDrawBlocker$2;->onStartWithNative()V
-HSPLorg/chromium/chrome/browser/ui/AppLaunchDrawBlocker$2;->onStopWithNative()V
-Lorg/chromium/chrome/browser/ui/BottomContainer;
-HSPLorg/chromium/chrome/browser/ui/BottomContainer;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/chrome/browser/ui/BottomContainer;->setTranslationY(F)V
-Lorg/chromium/chrome/browser/ui/BottomContainer$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/ui/BottomContainer$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/ui/BottomContainer;)V
-HSPLorg/chromium/chrome/browser/ui/BottomContainer$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/ui/BottomSheetManager;
-HSPLorg/chromium/chrome/browser/ui/BottomSheetManager;-><init>(Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerImpl;Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;Lorg/chromium/base/supplier/ObservableSupplier;Lorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda1;Lorg/chromium/chrome/browser/tab/TabObscuringHandler;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda1;Lorg/chromium/base/supplier/OneshotSupplier;Lorg/chromium/base/supplier/OneshotSupplier;Z)V
-HSPLorg/chromium/chrome/browser/ui/BottomSheetManager;->onDestroy()V
-HSPLorg/chromium/chrome/browser/ui/BottomSheetManager;->setActivityTab(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/ui/BottomSheetManager;->updateSuppressionForTabSwitcher(Lorg/chromium/chrome/browser/tab/Tab;Ljava/lang/Integer;Ljava/lang/Integer;)V
-Lorg/chromium/chrome/browser/ui/BottomSheetManager$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/ui/BottomSheetManager$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/ui/BottomSheetManager;I)V
-HSPLorg/chromium/chrome/browser/ui/BottomSheetManager$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/ui/BottomSheetManager$1;
-HSPLorg/chromium/chrome/browser/ui/BottomSheetManager$1;-><init>(Lorg/chromium/chrome/browser/ui/BottomSheetManager;Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerImpl;)V
-HSPLorg/chromium/chrome/browser/ui/BottomSheetManager$1;->onDestroyed(Lorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/ui/BottomSheetManager$2;
-HSPLorg/chromium/chrome/browser/ui/BottomSheetManager$2;-><init>(Lorg/chromium/chrome/browser/ui/BottomSheetManager;Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerImpl;)V
-Lorg/chromium/chrome/browser/ui/BottomSheetManager$3;
-HSPLorg/chromium/chrome/browser/ui/BottomSheetManager$3;-><init>(Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerImpl;)V
-HSPLorg/chromium/chrome/browser/ui/BottomSheetManager$3;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/ui/BottomSheetManager$4;
-HSPLorg/chromium/chrome/browser/ui/BottomSheetManager$4;-><init>(Lorg/chromium/chrome/browser/ui/BottomSheetManager;Lorg/chromium/chrome/features/start_surface/StartSurface;)V
-Lorg/chromium/chrome/browser/ui/IncognitoRestoreAppLaunchDrawBlocker;
-HSPLorg/chromium/chrome/browser/ui/IncognitoRestoreAppLaunchDrawBlocker;->-$$Nest$mmaybeUnblockDraw(Lorg/chromium/chrome/browser/ui/IncognitoRestoreAppLaunchDrawBlocker;)V
-HSPLorg/chromium/chrome/browser/ui/IncognitoRestoreAppLaunchDrawBlocker;-><init>(Lorg/chromium/base/supplier/Supplier;Lorg/chromium/base/supplier/ObservableSupplier;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda4;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda4;Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;Lorg/chromium/chrome/browser/ui/AppLaunchDrawBlocker$$ExternalSyntheticLambda0;)V
-Lorg/chromium/chrome/browser/ui/IncognitoRestoreAppLaunchDrawBlocker$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/ui/IncognitoRestoreAppLaunchDrawBlocker$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/ui/IncognitoRestoreAppLaunchDrawBlocker;)V
-HSPLorg/chromium/chrome/browser/ui/IncognitoRestoreAppLaunchDrawBlocker$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/ui/IncognitoRestoreAppLaunchDrawBlocker$1;
-HSPLorg/chromium/chrome/browser/ui/IncognitoRestoreAppLaunchDrawBlocker$1;-><init>(Lorg/chromium/chrome/browser/ui/IncognitoRestoreAppLaunchDrawBlocker;)V
-HSPLorg/chromium/chrome/browser/ui/IncognitoRestoreAppLaunchDrawBlocker$1;->onFinishNativeInitialization()V
-Lorg/chromium/chrome/browser/ui/IncognitoRestoreAppLaunchDrawBlocker$2;
-HSPLorg/chromium/chrome/browser/ui/IncognitoRestoreAppLaunchDrawBlocker$2;-><init>(Lorg/chromium/chrome/browser/ui/IncognitoRestoreAppLaunchDrawBlocker;)V
-HSPLorg/chromium/chrome/browser/ui/IncognitoRestoreAppLaunchDrawBlocker$2;->onTabStateInitialized()V
-Lorg/chromium/chrome/browser/ui/IncognitoRestoreAppLaunchDrawBlockerFactory;
-HSPLorg/chromium/chrome/browser/ui/IncognitoRestoreAppLaunchDrawBlockerFactory;-><init>(Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda4;Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorSupplier;)V
-Lorg/chromium/chrome/browser/ui/MediaCaptureOverlayController;
-HSPLorg/chromium/chrome/browser/ui/MediaCaptureOverlayController;-><init>(Lorg/chromium/ui/base/ActivityWindowAndroid;Landroid/view/View;)V
-Lorg/chromium/chrome/browser/ui/MediaCaptureOverlayController$CaptureOverlayTabObserver;
-HSPLorg/chromium/chrome/browser/ui/MediaCaptureOverlayController$CaptureOverlayTabObserver;-><init>(Lorg/chromium/chrome/browser/ui/MediaCaptureOverlayController;)V
-Lorg/chromium/chrome/browser/ui/RootUiCoordinator;
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator;-><init>(Landroidx/appcompat/app/AppCompatActivity;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda11;Lorg/chromium/chrome/browser/share/ShareDelegateSupplier;Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorProfileSupplier;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorSupplier;Lorg/chromium/base/supplier/OneshotSupplierImpl;Lorg/chromium/base/supplier/OneshotSupplierImpl;Lorg/chromium/base/supplier/OneshotSupplierImpl;Lorg/chromium/base/supplier/OneshotSupplierImpl;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;Lorg/chromium/ui/base/ActivityWindowAndroid;Lorg/chromium/base/jank_tracker/JankTracker;Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/components/browser_ui/widget/MenuOrKeyboardActionController;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/chrome/browser/ui/appmenu/AppMenuBlocker;Ljava/util/function/BooleanSupplier;Ljava/util/function/BooleanSupplier;Lorg/chromium/chrome/browser/tabmodel/TabCreatorManagerSupplier;Lorg/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/base/supplier/Supplier;ILorg/chromium/base/supplier/Supplier;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/chrome/browser/ui/appmenu/AppMenuDelegate;Lorg/chromium/chrome/browser/ui/system/StatusBarColorController$StatusBarColorProvider;Lorg/chromium/ui/base/IntentRequestTrackerImpl;Lorg/chromium/base/supplier/OneshotSupplierImpl;Lorg/chromium/base/supplier/Supplier;ZLorg/chromium/chrome/browser/back_press/BackPressManager;)V
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator;->getPrimaryDisplaySizeInInches()D
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator;->initializeToolbar()V
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator;->onDestroy()V
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator;->onFinishNativeInitialization()V
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator;->onInflationComplete()V
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator;->onLayoutManagerAvailable(Lorg/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl;)V
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator;->onPostInflationStartup()V
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator;->onPreInflationStartup()V
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator;->setLayoutStateProvider(Lorg/chromium/chrome/browser/layouts/LayoutStateProvider;)V
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator;->shouldAllowBrightThemeColors()Z
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator;->shouldAllowThemingInNightMode()Z
-Lorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda0;-><init>(ILjava/lang/Object;)V
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda1;-><init>(ILjava/lang/Object;)V
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;
-Lorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda2;
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda2;-><init>(ILjava/lang/Object;)V
-Lorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda3;
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda3;-><init>(Lorg/chromium/chrome/browser/toolbar/VoiceToolbarButtonController;)V
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda3;->onVoiceAvailabilityImpacted()V
-Lorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda4;
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda4;-><init>(Lorg/chromium/chrome/browser/ui/RootUiCoordinator;)V
-Lorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda5;
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda5;-><init>(I)V
-Lorg/chromium/chrome/browser/ui/RootUiCoordinator$1;
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator$1;-><init>(Lorg/chromium/chrome/browser/ui/RootUiCoordinator;)V
-Lorg/chromium/chrome/browser/ui/RootUiCoordinator$10;
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator$10;-><init>(Lorg/chromium/chrome/browser/ui/RootUiCoordinator;)V
-Lorg/chromium/chrome/browser/ui/RootUiCoordinator$11;
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator$11;-><init>(Lorg/chromium/chrome/browser/ui/RootUiCoordinator;)V
-Lorg/chromium/chrome/browser/ui/RootUiCoordinator$12;
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator$12;-><init>(Lorg/chromium/chrome/browser/ui/RootUiCoordinator;)V
-Lorg/chromium/chrome/browser/ui/RootUiCoordinator$2;
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator$2;-><init>(Landroid/view/ViewGroup;)V
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator$2;->onLayoutChange(Landroid/view/View;IIIIIIII)V
-Lorg/chromium/chrome/browser/ui/RootUiCoordinator$3;
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator$3;-><init>(Lorg/chromium/chrome/browser/ui/RootUiCoordinator;)V
-Lorg/chromium/chrome/browser/ui/RootUiCoordinator$4;
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator$4;-><init>(Lorg/chromium/chrome/browser/ui/RootUiCoordinator;)V
-Lorg/chromium/chrome/browser/ui/RootUiCoordinator$5;
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator$5;-><init>(Lorg/chromium/chrome/browser/ui/RootUiCoordinator;)V
-Lorg/chromium/chrome/browser/ui/RootUiCoordinator$8;
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator$8;-><init>(Lorg/chromium/chrome/browser/ui/RootUiCoordinator;)V
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator$8;->onFinishedHiding(I)V
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator$8;->onFinishedShowing(I)V
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator$8;->onStartedHiding(IZZ)V
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator$8;->onStartedShowing(IZ)V
-Lorg/chromium/chrome/browser/ui/RootUiCoordinator$9;
-HSPLorg/chromium/chrome/browser/ui/RootUiCoordinator$9;-><init>(Lorg/chromium/chrome/browser/ui/RootUiCoordinator;)V
-Lorg/chromium/chrome/browser/ui/appmenu/AppMenu;
-Lorg/chromium/chrome/browser/ui/appmenu/AppMenuBlocker;
-Lorg/chromium/chrome/browser/ui/appmenu/AppMenuButtonHelper;
-Lorg/chromium/chrome/browser/ui/appmenu/AppMenuButtonHelperImpl;
-HSPLorg/chromium/chrome/browser/ui/appmenu/AppMenuButtonHelperImpl;-><init>(Lorg/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl;)V
-Lorg/chromium/chrome/browser/ui/appmenu/AppMenuClickHandler;
-Lorg/chromium/chrome/browser/ui/appmenu/AppMenuCoordinatorImpl;
-HSPLorg/chromium/chrome/browser/ui/appmenu/AppMenuCoordinatorImpl;-><init>(Landroidx/appcompat/app/AppCompatActivity;Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;Lorg/chromium/chrome/browser/toolbar/ToolbarManager;Lorg/chromium/chrome/browser/ui/appmenu/AppMenuDelegate;Landroid/view/View;Landroid/view/View;Lorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda1;)V
-Lorg/chromium/chrome/browser/ui/appmenu/AppMenuDelegate;
-Lorg/chromium/chrome/browser/ui/appmenu/AppMenuHandler;
-Lorg/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl;
-HSPLorg/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl;-><init>(Landroidx/appcompat/app/AppCompatActivity;Lorg/chromium/chrome/browser/ui/appmenu/AppMenuPropertiesDelegate;Lorg/chromium/chrome/browser/ui/appmenu/AppMenuDelegate;Landroid/view/View;Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;Landroid/view/View;Lorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda1;)V
-HSPLorg/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl;->hideAppMenu()V
-HSPLorg/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl;->onStartWithNative()V
-HSPLorg/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl;->onStopWithNative()V
-Lorg/chromium/chrome/browser/ui/appmenu/AppMenuObserver;
-Lorg/chromium/chrome/browser/ui/appmenu/AppMenuPropertiesDelegate;
-Lorg/chromium/chrome/browser/ui/appmenu/MenuButtonDelegate;
-Lorg/chromium/chrome/browser/ui/favicon/FaviconHelper;
-HSPLorg/chromium/chrome/browser/ui/favicon/FaviconHelper;-><init>()V
-HSPLorg/chromium/chrome/browser/ui/favicon/FaviconHelper;->getLocalFaviconImageForURL(Lorg/chromium/chrome/browser/profiles/Profile;Ljava/lang/String;ILorg/chromium/chrome/browser/ui/favicon/FaviconHelper$FaviconImageCallback;)Z
-Lorg/chromium/chrome/browser/ui/favicon/FaviconHelper$FaviconImageCallback;
-Lorg/chromium/chrome/browser/ui/favicon/FaviconUtils;
-HSPLorg/chromium/chrome/browser/ui/favicon/FaviconUtils;->createCircularIconGenerator(Landroid/content/Context;)Lorg/chromium/components/browser_ui/widget/RoundedIconGenerator;
-HSPLorg/chromium/chrome/browser/ui/favicon/FaviconUtils;->createRoundedBitmapDrawable(Landroid/content/res/Resources;Landroid/graphics/Bitmap;)Landroidx/core/graphics/drawable/RoundedBitmapDrawable21;
-Lorg/chromium/chrome/browser/ui/messages/snackbar/Snackbar;
-Lorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarCollection;
-HSPLorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarCollection;-><init>()V
-HSPLorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarCollection;->getCurrent()Lorg/chromium/chrome/browser/ui/messages/snackbar/Snackbar;
-HSPLorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarCollection;->removeSnackbarFromList(Ljava/util/LinkedList;Lorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager$SnackbarController;)Z
-Lorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager;
-HSPLorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager;-><init>(Landroid/app/Activity;Landroid/view/ViewGroup;Lorg/chromium/ui/base/ActivityWindowAndroid;)V
-HSPLorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager;->dismissSnackbars(Lorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager$SnackbarController;)V
-HSPLorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager;->onActivityStateChange(Landroid/app/Activity;I)V
-HSPLorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager;->updateView()V
-Lorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager$1;
-HSPLorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager$1;-><init>(Lorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager;)V
-Lorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager$SnackbarController;
-Lorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager$SnackbarManageable;
-Lorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarManagerProvider;
-HSPLorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarManagerProvider;->from(Lorg/chromium/ui/base/WindowAndroid;)Lorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager;
-Lorg/chromium/chrome/browser/ui/native_page/NativePage;
-HSPLorg/chromium/chrome/browser/ui/native_page/NativePage;->isNativePageUrl(Lorg/chromium/url/GURL;Z)Z
-HSPLorg/chromium/chrome/browser/ui/native_page/NativePage;->nativePageType(Ljava/lang/String;Lorg/chromium/chrome/browser/ui/native_page/NativePage;Z)I
-Lorg/chromium/chrome/browser/ui/searchactivityutils/SearchActivityPreferencesManager;
-HSPLorg/chromium/chrome/browser/ui/searchactivityutils/SearchActivityPreferencesManager;-><init>()V
-HSPLorg/chromium/chrome/browser/ui/searchactivityutils/SearchActivityPreferencesManager;->get()Lorg/chromium/chrome/browser/ui/searchactivityutils/SearchActivityPreferencesManager;
-HSPLorg/chromium/chrome/browser/ui/searchactivityutils/SearchActivityPreferencesManager;->initializeFromCache()V
-HSPLorg/chromium/chrome/browser/ui/searchactivityutils/SearchActivityPreferencesManager;->onTemplateURLServiceChanged()V
-HSPLorg/chromium/chrome/browser/ui/searchactivityutils/SearchActivityPreferencesManager;->onTemplateUrlServiceLoaded()V
-HSPLorg/chromium/chrome/browser/ui/searchactivityutils/SearchActivityPreferencesManager;->setCurrentlyLoadedPreferences(Lorg/chromium/chrome/browser/ui/searchactivityutils/SearchActivityPreferencesManager$SearchActivityPreferences;Z)V
-HSPLorg/chromium/chrome/browser/ui/searchactivityutils/SearchActivityPreferencesManager;->updateDefaultSearchEngineInfo()V
-Lorg/chromium/chrome/browser/ui/searchactivityutils/SearchActivityPreferencesManager$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/ui/searchactivityutils/SearchActivityPreferencesManager$$ExternalSyntheticLambda0;-><init>(ZLorg/chromium/chrome/browser/ui/searchactivityutils/SearchActivityPreferencesManager$SearchActivityPreferences;Lorg/chromium/chrome/browser/ui/searchactivityutils/SearchActivityPreferencesManager;)V
-HSPLorg/chromium/chrome/browser/ui/searchactivityutils/SearchActivityPreferencesManager$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/ui/searchactivityutils/SearchActivityPreferencesManager$SearchActivityPreferences;
-HSPLorg/chromium/chrome/browser/ui/searchactivityutils/SearchActivityPreferencesManager$SearchActivityPreferences;-><init>(Ljava/lang/String;Ljava/lang/String;ZZZ)V
-HSPLorg/chromium/chrome/browser/ui/searchactivityutils/SearchActivityPreferencesManager$SearchActivityPreferences;->equals(Ljava/lang/Object;)Z
-Lorg/chromium/chrome/browser/ui/system/StatusBarColorController;
-HSPLorg/chromium/chrome/browser/ui/system/StatusBarColorController;-><init>(Landroid/view/Window;ZLandroidx/appcompat/app/AppCompatActivity;Lorg/chromium/chrome/browser/ui/system/StatusBarColorController$StatusBarColorProvider;Lorg/chromium/base/supplier/ObservableSupplierImpl;Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/chrome/browser/theme/TopUiThemeColorProvider;)V
-HSPLorg/chromium/chrome/browser/ui/system/StatusBarColorController;->calculateDefaultStatusBarColor()I
-HSPLorg/chromium/chrome/browser/ui/system/StatusBarColorController;->isStandardNTP()Z
-HSPLorg/chromium/chrome/browser/ui/system/StatusBarColorController;->onDestroy()V
-HSPLorg/chromium/chrome/browser/ui/system/StatusBarColorController;->onToolbarColorChanged(I)V
-HSPLorg/chromium/chrome/browser/ui/system/StatusBarColorController;->setStatusBarColor(Landroid/view/Window;I)V
-HSPLorg/chromium/chrome/browser/ui/system/StatusBarColorController;->updateStatusBarColor()V
-Lorg/chromium/chrome/browser/ui/system/StatusBarColorController$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/ui/system/StatusBarColorController$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/ui/system/StatusBarColorController;)V
-HSPLorg/chromium/chrome/browser/ui/system/StatusBarColorController$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/ui/system/StatusBarColorController$1;
-HSPLorg/chromium/chrome/browser/ui/system/StatusBarColorController$1;-><init>(Lorg/chromium/chrome/browser/ui/system/StatusBarColorController;Lorg/chromium/chrome/browser/ActivityTabProvider;)V
-HSPLorg/chromium/chrome/browser/ui/system/StatusBarColorController$1;->onDestroyed(Lorg/chromium/chrome/browser/tab/Tab;)V
-HSPLorg/chromium/chrome/browser/ui/system/StatusBarColorController$1;->onObservingDifferentTab(Lorg/chromium/chrome/browser/tab/Tab;)V
-Lorg/chromium/chrome/browser/ui/system/StatusBarColorController$2;
-HSPLorg/chromium/chrome/browser/ui/system/StatusBarColorController$2;-><init>(Lorg/chromium/chrome/browser/ui/system/StatusBarColorController;)V
-Lorg/chromium/chrome/browser/ui/system/StatusBarColorController$3;
-HSPLorg/chromium/chrome/browser/ui/system/StatusBarColorController$3;-><init>(Lorg/chromium/chrome/browser/ui/system/StatusBarColorController;)V
-HSPLorg/chromium/chrome/browser/ui/system/StatusBarColorController$3;->onFinishedHiding(I)V
-HSPLorg/chromium/chrome/browser/ui/system/StatusBarColorController$3;->onStartedShowing(IZ)V
-Lorg/chromium/chrome/browser/ui/system/StatusBarColorController$StatusBarColorProvider;
-Lorg/chromium/chrome/browser/undo_tab_close_snackbar/UndoBarController;
-HSPLorg/chromium/chrome/browser/undo_tab_close_snackbar/UndoBarController;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda8;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda4;)V
-Lorg/chromium/chrome/browser/undo_tab_close_snackbar/UndoBarController$1;
-HSPLorg/chromium/chrome/browser/undo_tab_close_snackbar/UndoBarController$1;-><init>(Lorg/chromium/chrome/browser/undo_tab_close_snackbar/UndoBarController;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda4;Landroid/content/Context;)V
-HSPLorg/chromium/chrome/browser/undo_tab_close_snackbar/UndoBarController$1;->allTabsClosureCommitted(Z)V
-HSPLorg/chromium/chrome/browser/undo_tab_close_snackbar/UndoBarController$1;->disableUndo(Z)Z
-Lorg/chromium/chrome/browser/usage_stats/DigitalWellbeingClient;
-HSPLorg/chromium/chrome/browser/usage_stats/DigitalWellbeingClient;-><init>()V
-Lorg/chromium/chrome/browser/usage_stats/EventTracker;
-HSPLorg/chromium/chrome/browser/usage_stats/EventTracker;-><init>(Lorg/chromium/chrome/browser/usage_stats/UsageStatsBridge;)V
-Lorg/chromium/chrome/browser/usage_stats/EventTracker$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/usage_stats/EventTracker$$ExternalSyntheticLambda1;-><init>(I)V
-Lorg/chromium/chrome/browser/usage_stats/EventTracker$$ExternalSyntheticLambda2;
-HSPLorg/chromium/chrome/browser/usage_stats/EventTracker$$ExternalSyntheticLambda2;-><init>(Lorg/chromium/chrome/browser/usage_stats/EventTracker;)V
-HSPLorg/chromium/chrome/browser/usage_stats/EventTracker$$ExternalSyntheticLambda2;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/usage_stats/NotificationSuspender;
-HSPLorg/chromium/chrome/browser/usage_stats/NotificationSuspender;-><init>(Lorg/chromium/chrome/browser/profiles/Profile;)V
-Lorg/chromium/chrome/browser/usage_stats/PageViewObserver;
-HSPLorg/chromium/chrome/browser/usage_stats/PageViewObserver;-><init>(Landroid/app/Activity;Lorg/chromium/base/supplier/ObservableSupplier;Lorg/chromium/chrome/browser/usage_stats/EventTracker;Lorg/chromium/chrome/browser/usage_stats/TokenTracker;Lorg/chromium/chrome/browser/usage_stats/SuspensionTracker;Lorg/chromium/base/supplier/ObservableSupplierImpl;)V
-HSPLorg/chromium/chrome/browser/usage_stats/PageViewObserver;->checkSuspendedTabState(Ljava/lang/String;Z)Z
-HSPLorg/chromium/chrome/browser/usage_stats/PageViewObserver;->didFirstVisuallyNonEmptyPaint(Lorg/chromium/chrome/browser/tab/TabImpl;)V
-HSPLorg/chromium/chrome/browser/usage_stats/PageViewObserver;->onHidden(Lorg/chromium/chrome/browser/tab/Tab;I)V
-HSPLorg/chromium/chrome/browser/usage_stats/PageViewObserver;->onUpdateUrl(Lorg/chromium/url/GURL;)V
-HSPLorg/chromium/chrome/browser/usage_stats/PageViewObserver;->updateUrl(Lorg/chromium/url/GURL;)V
-Lorg/chromium/chrome/browser/usage_stats/PageViewObserver$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/usage_stats/PageViewObserver$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/usage_stats/PageViewObserver;)V
-HSPLorg/chromium/chrome/browser/usage_stats/PageViewObserver$$ExternalSyntheticLambda1;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/usage_stats/SuspendedTab;
-HSPLorg/chromium/chrome/browser/usage_stats/SuspendedTab;-><init>(Lorg/chromium/chrome/browser/tab/Tab;Lorg/chromium/base/supplier/Supplier;)V
-HSPLorg/chromium/chrome/browser/usage_stats/SuspendedTab;->destroy()V
-HSPLorg/chromium/chrome/browser/usage_stats/SuspendedTab;->from(Lorg/chromium/chrome/browser/tab/Tab;Lorg/chromium/base/supplier/Supplier;)Lorg/chromium/chrome/browser/usage_stats/SuspendedTab;
-Lorg/chromium/chrome/browser/usage_stats/SuspensionTracker;
-HSPLorg/chromium/chrome/browser/usage_stats/SuspensionTracker;-><init>(Lorg/chromium/chrome/browser/usage_stats/UsageStatsBridge;Lorg/chromium/chrome/browser/usage_stats/NotificationSuspender;)V
-Lorg/chromium/chrome/browser/usage_stats/SuspensionTracker$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/usage_stats/SuspensionTracker$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/usage_stats/SuspensionTracker;)V
-HSPLorg/chromium/chrome/browser/usage_stats/SuspensionTracker$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/usage_stats/SuspensionTracker$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/usage_stats/SuspensionTracker$$ExternalSyntheticLambda1;-><init>()V
-HSPLorg/chromium/chrome/browser/usage_stats/SuspensionTracker$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-Lorg/chromium/chrome/browser/usage_stats/TokenTracker;
-HSPLorg/chromium/chrome/browser/usage_stats/TokenTracker;-><init>(Lorg/chromium/chrome/browser/usage_stats/UsageStatsBridge;)V
-Lorg/chromium/chrome/browser/usage_stats/TokenTracker$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/usage_stats/TokenTracker$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/usage_stats/TokenTracker;)V
-HSPLorg/chromium/chrome/browser/usage_stats/TokenTracker$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/usage_stats/TokenTracker$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/usage_stats/TokenTracker$$ExternalSyntheticLambda1;-><init>(I)V
-Lorg/chromium/chrome/browser/usage_stats/UsageStatsBridge;
-HSPLorg/chromium/chrome/browser/usage_stats/UsageStatsBridge;-><init>(Lorg/chromium/chrome/browser/profiles/Profile;Lorg/chromium/chrome/browser/usage_stats/UsageStatsService;)V
-HSPLorg/chromium/chrome/browser/usage_stats/UsageStatsBridge;->createEventListAndRunCallback([[BLorg/chromium/base/Callback;)V
-HSPLorg/chromium/chrome/browser/usage_stats/UsageStatsBridge;->createMapAndRunCallback([Ljava/lang/String;[Ljava/lang/String;Lorg/chromium/base/Callback;)V
-Lorg/chromium/chrome/browser/usage_stats/UsageStatsBridge$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/usage_stats/UsageStatsBridge$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/usage_stats/SuspensionTracker$$ExternalSyntheticLambda0;)V
-HSPLorg/chromium/chrome/browser/usage_stats/UsageStatsBridge$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/usage_stats/UsageStatsService;
-HSPLorg/chromium/chrome/browser/usage_stats/UsageStatsService;-><init>()V
-HSPLorg/chromium/chrome/browser/usage_stats/UsageStatsService;->createPageViewObserverIfEnabled(Landroid/app/Activity;Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/base/supplier/ObservableSupplierImpl;)V
-HSPLorg/chromium/chrome/browser/usage_stats/UsageStatsService;->getInstance()Lorg/chromium/chrome/browser/usage_stats/UsageStatsService;
-HSPLorg/chromium/chrome/browser/usage_stats/UsageStatsService;->notifyObserversOfSuspensions(Ljava/util/List;Z)V
-Lorg/chromium/chrome/browser/usage_stats/UsageStatsService$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/browser/usage_stats/UsageStatsService$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/browser/usage_stats/UsageStatsService;I)V
-HSPLorg/chromium/chrome/browser/usage_stats/UsageStatsService$$ExternalSyntheticLambda1;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/usb/UsbNotificationManager;
-HSPLorg/chromium/chrome/browser/usb/UsbNotificationManager;->updateUsbNotificationForTab(Landroid/content/Context;ILorg/chromium/content_public/browser/WebContents;Lorg/chromium/url/GURL;Z)V
-Lorg/chromium/chrome/browser/user_education/IPHCommand;
-HSPLorg/chromium/chrome/browser/user_education/IPHCommand;-><init>(Landroid/content/res/Resources;Ljava/lang/String;I[Ljava/lang/Object;I[Ljava/lang/Object;ZLandroid/view/View;Ljava/lang/Runnable;Ljava/lang/Runnable;Ljava/lang/Runnable;JLorg/chromium/ui/widget/ViewRectProvider;Lorg/chromium/components/browser_ui/widget/highlight/ViewHighlighter$HighlightParams;Landroid/graphics/Rect;ZI)V
-Lorg/chromium/chrome/browser/user_education/IPHCommandBuilder;
-HSPLorg/chromium/chrome/browser/user_education/IPHCommandBuilder;-><init>(Landroid/content/res/Resources;Ljava/lang/String;II)V
-HSPLorg/chromium/chrome/browser/user_education/IPHCommandBuilder;->build()Lorg/chromium/chrome/browser/user_education/IPHCommand;
-Lorg/chromium/chrome/browser/user_education/UserEducationHelper;
-HSPLorg/chromium/chrome/browser/user_education/UserEducationHelper;-><init>(Landroid/app/Activity;Landroid/os/Handler;)V
-HSPLorg/chromium/chrome/browser/user_education/UserEducationHelper;->requestShowIPH(Lorg/chromium/chrome/browser/user_education/IPHCommand;)V
-Lorg/chromium/chrome/browser/user_education/UserEducationHelper$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/user_education/UserEducationHelper$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/user_education/UserEducationHelper;Lorg/chromium/components/feature_engagement/Tracker;Lorg/chromium/chrome/browser/user_education/IPHCommand;)V
-HSPLorg/chromium/chrome/browser/user_education/UserEducationHelper$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/browser/util/AndroidTaskUtils;
-HSPLorg/chromium/chrome/browser/util/AndroidTaskUtils;->getTaskInfoFromTask(Landroid/app/ActivityManager$AppTask;)Landroid/app/ActivityManager$RecentTaskInfo;
-Lorg/chromium/chrome/browser/util/ChromeAccessibilityUtil;
-HSPLorg/chromium/chrome/browser/util/ChromeAccessibilityUtil;-><init>()V
-HSPLorg/chromium/chrome/browser/util/ChromeAccessibilityUtil;->get()Lorg/chromium/chrome/browser/util/ChromeAccessibilityUtil;
-HSPLorg/chromium/chrome/browser/util/ChromeAccessibilityUtil;->isAccessibilityEnabled()Z
-Lorg/chromium/chrome/browser/util/ChromeAccessibilityUtil$ActivityStateListenerImpl;
-HSPLorg/chromium/chrome/browser/util/ChromeAccessibilityUtil$ActivityStateListenerImpl;-><init>(Lorg/chromium/chrome/browser/util/ChromeAccessibilityUtil;)V
-HSPLorg/chromium/chrome/browser/util/ChromeAccessibilityUtil$ActivityStateListenerImpl;->onActivityStateChange(Landroid/app/Activity;I)V
-Lorg/chromium/chrome/browser/util/ChromeFileProvider;
-HSPLorg/chromium/chrome/browser/util/ChromeFileProvider;-><init>()V
-Lorg/chromium/chrome/browser/vr/VrDelegate;
-HSPLorg/chromium/chrome/browser/vr/VrDelegate;-><init>()V
-Lorg/chromium/chrome/browser/vr/VrDelegateFallback;
-HSPLorg/chromium/chrome/browser/vr/VrDelegateFallback;-><init>()V
-Lorg/chromium/chrome/browser/vr/VrDelegateProviderFallback;
-HSPLorg/chromium/chrome/browser/vr/VrDelegateProviderFallback;-><init>()V
-Lorg/chromium/chrome/browser/vr/VrModule;
-Lorg/chromium/chrome/browser/vr/VrModuleProvider;
-HSPLorg/chromium/chrome/browser/vr/VrModuleProvider;->getDelegate()Lorg/chromium/chrome/browser/vr/VrDelegateFallback;
-Lorg/chromium/chrome/browser/webapps/AddToHomescreenIPHController;
-HSPLorg/chromium/chrome/browser/webapps/AddToHomescreenIPHController;-><init>(Landroidx/appcompat/app/AppCompatActivity;Lorg/chromium/ui/base/ActivityWindowAndroid;Lorg/chromium/ui/modaldialog/ModalDialogManager;Lorg/chromium/components/messages/MessageDispatcher;)V
-Lorg/chromium/chrome/browser/webapps/AddToHomescreenMostVisitedTileClickObserver;
-HSPLorg/chromium/chrome/browser/webapps/AddToHomescreenMostVisitedTileClickObserver;-><init>(Lorg/chromium/chrome/browser/ActivityTabProvider;Lorg/chromium/chrome/browser/webapps/AddToHomescreenIPHController;)V
-Lorg/chromium/chrome/browser/webapps/ChromeWebApkHost;
-HSPLorg/chromium/chrome/browser/webapps/ChromeWebApkHost;->init()V
-Lorg/chromium/chrome/browser/webapps/WebappRegistry;
-HSPLorg/chromium/chrome/browser/webapps/WebappRegistry;-><init>()V
-HSPLorg/chromium/chrome/browser/webapps/WebappRegistry;->getOriginsWithWebApk()Ljava/util/HashSet;
-HSPLorg/chromium/chrome/browser/webapps/WebappRegistry;->initStorages(Ljava/lang/String;)V
-Lorg/chromium/chrome/browser/webapps/WebappRegistry$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/browser/webapps/WebappRegistry$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/browser/webapps/WebappRegistry;Ljava/util/ArrayList;Z)V
-HSPLorg/chromium/chrome/browser/webapps/WebappRegistry$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/chrome/browser/webapps/WebappRegistry$Holder;
-Lorg/chromium/chrome/browser/webauthn/CableAuthenticatorModuleProvider;
-HSPLorg/chromium/chrome/browser/webauthn/CableAuthenticatorModuleProvider;->canDeviceSupportCable()Z
-Lorg/chromium/chrome/features/start_surface/ExploreSurfaceCoordinator;
-Lorg/chromium/chrome/features/start_surface/ExploreSurfaceCoordinatorFactory;
-HSPLorg/chromium/chrome/features/start_surface/ExploreSurfaceCoordinatorFactory;-><init>(Landroid/app/Activity;Landroid/view/ViewGroup;Lorg/chromium/ui/modelutil/PropertyModel;Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetController;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/chrome/features/start_surface/StartSurfaceCoordinator$ScrollableContainerDelegateImpl;Lorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/ui/base/WindowAndroid;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/base/supplier/Supplier;JLorg/chromium/chrome/browser/feed/FeedSwipeRefreshLayout;Lorg/chromium/chrome/browser/share/crow/CrowButtonDelegate;)V
-Lorg/chromium/chrome/features/start_surface/ExploreSurfaceCoordinatorFactory$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/features/start_surface/ExploreSurfaceCoordinatorFactory$$ExternalSyntheticLambda0;-><init>()V
-HSPLorg/chromium/chrome/features/start_surface/ExploreSurfaceCoordinatorFactory$$ExternalSyntheticLambda0;->bind(Lorg/chromium/ui/modelutil/PropertyObservable;Ljava/lang/Object;Ljava/lang/Object;)V
-Lorg/chromium/chrome/features/start_surface/StartSurface;
-Lorg/chromium/chrome/features/start_surface/StartSurface$OnTabSelectingListener;
-Lorg/chromium/chrome/features/start_surface/StartSurface$StateObserver;
-Lorg/chromium/chrome/features/start_surface/StartSurfaceConfiguration;
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceConfiguration;->isBehaviouralTargetingEnabled()Z
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceConfiguration;->isStartSurfaceFlagEnabled()Z
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceConfiguration;->recordHistogram(JLjava/lang/String;Z)V
-Lorg/chromium/chrome/features/start_surface/StartSurfaceCoordinator;
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceCoordinator;-><init>(Landroid/app/Activity;Lorg/chromium/components/browser_ui/widget/scrim/ScrimCoordinator;Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerImpl;Lorg/chromium/base/supplier/OneshotSupplierImpl;Lorg/chromium/base/supplier/ObservableSupplierImpl;ZLorg/chromium/ui/base/ActivityWindowAndroid;Landroid/view/ViewGroup;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda16;Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;Lorg/chromium/chrome/browser/fullscreen/BrowserControlsManager;Lorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager;Lorg/chromium/chrome/browser/share/ShareDelegateSupplier;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda18;Lorg/chromium/chrome/browser/compositor/layouts/content/TabContentManager;Lorg/chromium/ui/modaldialog/ModalDialogManager;Lorg/chromium/chrome/browser/init/ChromeActivityNativeDelegate;Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;Lorg/chromium/chrome/browser/tabmodel/TabCreatorManager;Lorg/chromium/components/browser_ui/widget/MenuOrKeyboardActionController;Lorg/chromium/chrome/browser/multiwindow/MultiWindowModeStateDispatcherImpl;Lorg/chromium/base/jank_tracker/JankTrackerImpl;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda18;Lorg/chromium/chrome/browser/share/crow/CrowButtonDelegateImpl;Lorg/chromium/chrome/browser/back_press/BackPressManager;Lorg/chromium/base/supplier/OneshotSupplierImpl;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda13;)V
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceCoordinator;->addHeaderOffsetChangeListener(Lcom/google/android/material/appbar/AppBarLayout$OnOffsetChangedListener;)V
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceCoordinator;->createSwipeRefreshLayout()V
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceCoordinator;->createTasksSurface(Landroid/app/Activity;Lorg/chromium/components/browser_ui/widget/scrim/ScrimCoordinator;Lorg/chromium/ui/modelutil/PropertyModel;ILorg/chromium/base/supplier/Supplier;ZZLorg/chromium/ui/base/WindowAndroid;Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/chrome/browser/compositor/layouts/content/TabContentManager;Lorg/chromium/ui/modaldialog/ModalDialogManager;Lorg/chromium/chrome/browser/browser_controls/BrowserControlsVisibilityManager;Lorg/chromium/chrome/browser/tabmodel/TabCreatorManager;Lorg/chromium/components/browser_ui/widget/MenuOrKeyboardActionController;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/chrome/browser/multiwindow/MultiWindowModeStateDispatcherImpl;Landroid/view/ViewGroup;Lorg/chromium/base/supplier/OneshotSupplier;)Lorg/chromium/chrome/features/tasks/TasksSurfaceCoordinator;
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceCoordinator;->getPixelSize(I)I
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceCoordinator;->initWithNative()V
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceCoordinator;->initializeOffsetChangedListener()V
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceCoordinator;->onHide()V
-PLorg/chromium/chrome/features/start_surface/StartSurfaceCoordinator;->onOverviewShownAtLaunch(JZ)V
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceCoordinator;->setOnTabSelectingListener(Lorg/chromium/chrome/features/start_surface/StartSurface$OnTabSelectingListener;)V
-Lorg/chromium/chrome/features/start_surface/StartSurfaceCoordinator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceCoordinator$$ExternalSyntheticLambda0;-><init>(ILjava/lang/Object;)V
-Lorg/chromium/chrome/features/start_surface/StartSurfaceCoordinator$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceCoordinator$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/features/start_surface/StartSurfaceCoordinator;)V
-Lorg/chromium/chrome/features/start_surface/StartSurfaceCoordinator$$ExternalSyntheticLambda3;
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceCoordinator$$ExternalSyntheticLambda3;-><init>(I)V
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceCoordinator$$ExternalSyntheticLambda3;->bind(Lorg/chromium/ui/modelutil/PropertyObservable;Ljava/lang/Object;Ljava/lang/Object;)V
-Lorg/chromium/chrome/features/start_surface/StartSurfaceCoordinator$$ExternalSyntheticLambda6;
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceCoordinator$$ExternalSyntheticLambda6;-><init>(Lorg/chromium/chrome/features/start_surface/StartSurfaceCoordinator;IIIIIIIII)V
-Lorg/chromium/chrome/features/start_surface/StartSurfaceCoordinator$ScrollableContainerDelegateImpl;
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceCoordinator$ScrollableContainerDelegateImpl;-><init>(Lorg/chromium/chrome/features/start_surface/StartSurfaceCoordinator;)V
-Lorg/chromium/chrome/features/start_surface/StartSurfaceMediator;
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceMediator;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabSwitcher$Controller;Landroid/view/ViewGroup;Lorg/chromium/chrome/browser/tasks/tab_management/TabSwitcher;Lorg/chromium/chrome/browser/tabmodel/TabModelSelectorBase;Lorg/chromium/ui/modelutil/PropertyModel;Lorg/chromium/chrome/features/start_surface/StartSurfaceCoordinator$$ExternalSyntheticLambda1;ZLandroid/content/Context;Lorg/chromium/chrome/browser/browser_controls/BrowserControlsVisibilityManager;Lorg/chromium/chrome/features/start_surface/StartSurfaceCoordinator$$ExternalSyntheticLambda1;ZLorg/chromium/base/supplier/OneshotSupplierImpl;ZLorg/chromium/base/jank_tracker/JankTrackerImpl;Lorg/chromium/chrome/features/start_surface/StartSurfaceCoordinator$$ExternalSyntheticLambda0;Lorg/chromium/base/supplier/ObservableSupplierImpl;Landroid/view/View;Lorg/chromium/chrome/browser/back_press/BackPressManager;Landroid/view/ViewGroup;Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;Lorg/chromium/chrome/browser/ChromeTabbedActivity$$ExternalSyntheticLambda13;)V
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceMediator;->getFeedReliabilityLogger()V
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceMediator;->isHomepageShown()Z
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceMediator;->mayRecordHomepageSessionBegin()V
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceMediator;->mayRecordHomepageSessionEnd()V
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceMediator;->onHide()V
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceMediator;->onPauseWithNative()V
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceMediator;->onResumeWithNative()V
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceMediator;->setStartSurfaceState(II)V
-Lorg/chromium/chrome/features/start_surface/StartSurfaceMediator$1;
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceMediator$1;-><init>(Lorg/chromium/chrome/features/start_surface/StartSurfaceMediator;)V
-Lorg/chromium/chrome/features/start_surface/StartSurfaceMediator$2;
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceMediator$2;-><init>(Lorg/chromium/chrome/features/start_surface/StartSurfaceMediator;)V
-Lorg/chromium/chrome/features/start_surface/StartSurfaceMediator$4;
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceMediator$4;-><init>(Lorg/chromium/chrome/features/start_surface/StartSurfaceMediator;)V
-Lorg/chromium/chrome/features/start_surface/StartSurfaceMediator$5;
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceMediator$5;-><init>(Lorg/chromium/chrome/features/start_surface/StartSurfaceMediator;)V
-Lorg/chromium/chrome/features/start_surface/StartSurfaceProperties;
-Lorg/chromium/chrome/features/start_surface/StartSurfaceUserData;
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceUserData;-><init>()V
-Lorg/chromium/chrome/features/start_surface/StartSurfaceUserData$LazyHolder;
-Lorg/chromium/chrome/features/start_surface/StartSurfaceWithParentViewBinder;
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceWithParentViewBinder;->bind(Lorg/chromium/ui/modelutil/PropertyModel;Lorg/chromium/chrome/features/start_surface/StartSurfaceWithParentViewBinder$ViewHolder;Lorg/chromium/ui/modelutil/PropertyModel$NamedPropertyKey;)V
-Lorg/chromium/chrome/features/start_surface/StartSurfaceWithParentViewBinder$ViewHolder;
-HSPLorg/chromium/chrome/features/start_surface/StartSurfaceWithParentViewBinder$ViewHolder;-><init>(Landroid/view/ViewGroup;Lorg/chromium/chrome/features/tasks/TasksView;Lorg/chromium/chrome/browser/feed/FeedSwipeRefreshLayout;)V
-Lorg/chromium/chrome/features/start_surface/TabSwitcherAndStartSurfaceLayout;
-HSPLorg/chromium/chrome/features/start_surface/TabSwitcherAndStartSurfaceLayout;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/compositor/layouts/LayoutUpdateHost;Lorg/chromium/chrome/browser/compositor/CompositorViewHolder;Lorg/chromium/chrome/features/start_surface/StartSurface;Lorg/chromium/base/jank_tracker/JankTracker;Landroid/view/ViewGroup;Lorg/chromium/components/browser_ui/widget/scrim/ScrimCoordinator;)V
-HSPLorg/chromium/chrome/features/start_surface/TabSwitcherAndStartSurfaceLayout;->destroy()V
-HSPLorg/chromium/chrome/features/start_surface/TabSwitcherAndStartSurfaceLayout;->onFinishNativeInitialization()V
-HSPLorg/chromium/chrome/features/start_surface/TabSwitcherAndStartSurfaceLayout;->setTabModelSelector(Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/chrome/browser/compositor/layouts/content/TabContentManager;)V
-Lorg/chromium/chrome/features/start_surface/TabSwitcherAndStartSurfaceLayout$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/features/start_surface/TabSwitcherAndStartSurfaceLayout$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/features/start_surface/TabSwitcherAndStartSurfaceLayout;)V
-Lorg/chromium/chrome/features/start_surface/TabSwitcherAndStartSurfaceLayout$1;
-HSPLorg/chromium/chrome/features/start_surface/TabSwitcherAndStartSurfaceLayout$1;-><init>(Lorg/chromium/chrome/features/start_surface/TabSwitcherAndStartSurfaceLayout;Landroid/content/Context;)V
-Lorg/chromium/chrome/features/tasks/SingleTabSwitcherCoordinator;
-HSPLorg/chromium/chrome/features/tasks/SingleTabSwitcherCoordinator;-><init>(Landroid/app/Activity;Landroid/widget/FrameLayout;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;)V
-HSPLorg/chromium/chrome/features/tasks/SingleTabSwitcherCoordinator;->getController()Lorg/chromium/chrome/browser/tasks/tab_management/TabSwitcher$Controller;
-HSPLorg/chromium/chrome/features/tasks/SingleTabSwitcherCoordinator;->getTabListDelegate()Lorg/chromium/chrome/browser/tasks/tab_management/TabSwitcher$TabListDelegate;
-HSPLorg/chromium/chrome/features/tasks/SingleTabSwitcherCoordinator;->initWithNative()V
-HSPLorg/chromium/chrome/features/tasks/SingleTabSwitcherCoordinator;->setOnTabSelectingListener(Lorg/chromium/chrome/browser/tasks/tab_management/TabSwitcher$OnTabSelectingListener;)V
-Lorg/chromium/chrome/features/tasks/SingleTabSwitcherCoordinator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/features/tasks/SingleTabSwitcherCoordinator$$ExternalSyntheticLambda0;-><init>()V
-HSPLorg/chromium/chrome/features/tasks/SingleTabSwitcherCoordinator$$ExternalSyntheticLambda0;->bind(Lorg/chromium/ui/modelutil/PropertyObservable;Ljava/lang/Object;Ljava/lang/Object;)V
-Lorg/chromium/chrome/features/tasks/SingleTabSwitcherCoordinator$1;
-HSPLorg/chromium/chrome/features/tasks/SingleTabSwitcherCoordinator$1;-><init>()V
-HSPLorg/chromium/chrome/features/tasks/SingleTabSwitcherCoordinator$1;->postHiding()V
-Lorg/chromium/chrome/features/tasks/SingleTabSwitcherMediator;
-HSPLorg/chromium/chrome/features/tasks/SingleTabSwitcherMediator;-><init>(Landroid/content/Context;Lorg/chromium/ui/modelutil/PropertyModel;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/chrome/browser/tasks/tab_management/TabListFaviconProvider;)V
-HSPLorg/chromium/chrome/features/tasks/SingleTabSwitcherMediator;->addTabSwitcherViewObserver(Lorg/chromium/chrome/browser/tasks/tab_management/TabSwitcher$TabSwitcherViewObserver;)V
-HSPLorg/chromium/chrome/features/tasks/SingleTabSwitcherMediator;->overviewVisible()Z
-Lorg/chromium/chrome/features/tasks/SingleTabSwitcherMediator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/features/tasks/SingleTabSwitcherMediator$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/chrome/features/tasks/SingleTabSwitcherMediator;I)V
-HSPLorg/chromium/chrome/features/tasks/SingleTabSwitcherMediator$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/chrome/features/tasks/SingleTabSwitcherMediator$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/features/tasks/SingleTabSwitcherMediator$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/chrome/features/tasks/SingleTabSwitcherMediator;)V
-Lorg/chromium/chrome/features/tasks/SingleTabSwitcherMediator$1;
-HSPLorg/chromium/chrome/features/tasks/SingleTabSwitcherMediator$1;-><init>(Lorg/chromium/chrome/features/tasks/SingleTabSwitcherMediator;)V
-Lorg/chromium/chrome/features/tasks/SingleTabSwitcherMediator$2;
-HSPLorg/chromium/chrome/features/tasks/SingleTabSwitcherMediator$2;-><init>(Lorg/chromium/chrome/features/tasks/SingleTabSwitcherMediator;)V
-Lorg/chromium/chrome/features/tasks/SingleTabView;
-HSPLorg/chromium/chrome/features/tasks/SingleTabView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/chrome/features/tasks/SingleTabView;->onFinishInflate()V
-Lorg/chromium/chrome/features/tasks/SingleTabViewProperties;
-Lorg/chromium/chrome/features/tasks/TasksSurface;
-Lorg/chromium/chrome/features/tasks/TasksSurfaceCoordinator;
-HSPLorg/chromium/chrome/features/tasks/TasksSurfaceCoordinator;-><init>(Landroid/app/Activity;Lorg/chromium/components/browser_ui/widget/scrim/ScrimCoordinator;Lorg/chromium/ui/modelutil/PropertyModel;ILorg/chromium/base/supplier/Supplier;ZZLorg/chromium/ui/base/WindowAndroid;Lorg/chromium/chrome/browser/init/ActivityLifecycleDispatcherImpl;Lorg/chromium/chrome/browser/tabmodel/TabModelSelector;Lorg/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/chrome/browser/compositor/layouts/content/TabContentManager;Lorg/chromium/ui/modaldialog/ModalDialogManager;Lorg/chromium/chrome/browser/browser_controls/BrowserControlsVisibilityManager;Lorg/chromium/chrome/browser/tabmodel/TabCreatorManager;Lorg/chromium/components/browser_ui/widget/MenuOrKeyboardActionController;Lorg/chromium/base/supplier/Supplier;Lorg/chromium/chrome/browser/multiwindow/MultiWindowModeStateDispatcherImpl;Landroid/view/ViewGroup;Lorg/chromium/base/supplier/OneshotSupplier;)V
-HSPLorg/chromium/chrome/features/tasks/TasksSurfaceCoordinator;->onFinishNativeInitialization(Lorg/chromium/chrome/browser/omnibox/OmniboxStub;)V
-HSPLorg/chromium/chrome/features/tasks/TasksSurfaceCoordinator;->onHide()V
-Lorg/chromium/chrome/features/tasks/TasksSurfaceCoordinator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/chrome/features/tasks/TasksSurfaceCoordinator$$ExternalSyntheticLambda0;-><init>()V
-HSPLorg/chromium/chrome/features/tasks/TasksSurfaceCoordinator$$ExternalSyntheticLambda0;->bind(Lorg/chromium/ui/modelutil/PropertyObservable;Ljava/lang/Object;Ljava/lang/Object;)V
-Lorg/chromium/chrome/features/tasks/TasksSurfaceCoordinator$$ExternalSyntheticLambda1;
-HSPLorg/chromium/chrome/features/tasks/TasksSurfaceCoordinator$$ExternalSyntheticLambda1;-><init>(Landroid/app/Activity;)V
-Lorg/chromium/chrome/features/tasks/TasksSurfaceMediator;
-HSPLorg/chromium/chrome/features/tasks/TasksSurfaceMediator;-><init>(Lorg/chromium/ui/modelutil/PropertyModel;Lorg/chromium/chrome/features/tasks/TasksSurfaceCoordinator$$ExternalSyntheticLambda1;Lorg/chromium/chrome/browser/ntp/IncognitoCookieControlsManager;Z)V
-Lorg/chromium/chrome/features/tasks/TasksSurfaceMediator$1;
-HSPLorg/chromium/chrome/features/tasks/TasksSurfaceMediator$1;-><init>(Lorg/chromium/chrome/features/tasks/TasksSurfaceMediator;I)V
-Lorg/chromium/chrome/features/tasks/TasksSurfaceMediator$2;
-HSPLorg/chromium/chrome/features/tasks/TasksSurfaceMediator$2;-><init>(Lorg/chromium/chrome/features/tasks/TasksSurfaceMediator;)V
-Lorg/chromium/chrome/features/tasks/TasksSurfaceMediator$3;
-HSPLorg/chromium/chrome/features/tasks/TasksSurfaceMediator$3;-><init>(Lorg/chromium/chrome/features/tasks/TasksSurfaceMediator;)V
-Lorg/chromium/chrome/features/tasks/TasksSurfaceMediator$5;
-HSPLorg/chromium/chrome/features/tasks/TasksSurfaceMediator$5;-><init>(Lorg/chromium/chrome/features/tasks/TasksSurfaceMediator;)V
-Lorg/chromium/chrome/features/tasks/TasksSurfaceProperties;
-Lorg/chromium/chrome/features/tasks/TasksView;
-HSPLorg/chromium/chrome/features/tasks/TasksView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/chrome/features/tasks/TasksView;->addHeaderOffsetChangeListener(Lcom/google/android/material/appbar/AppBarLayout$OnOffsetChangedListener;)V
-HSPLorg/chromium/chrome/features/tasks/TasksView;->onFinishInflate()V
-Lorg/chromium/chrome/features/tasks/TasksView$1;
-HSPLorg/chromium/chrome/features/tasks/TasksView$1;-><init>()V
-Lorg/chromium/chrome/features/tasks/TasksViewBinder;
-HSPLorg/chromium/chrome/features/tasks/TasksViewBinder;->bind(Lorg/chromium/ui/modelutil/PropertyModel;Lorg/chromium/chrome/features/tasks/TasksView;Lorg/chromium/ui/modelutil/PropertyModel$NamedPropertyKey;)V
-Lorg/chromium/components/background_task_scheduler/BackgroundTaskSchedulerExternalUma;
-HSPLorg/chromium/components/background_task_scheduler/BackgroundTaskSchedulerExternalUma;-><init>()V
-HSPLorg/chromium/components/background_task_scheduler/BackgroundTaskSchedulerExternalUma;->toUmaEnumValueFromTaskId(I)I
-PLorg/chromium/components/background_task_scheduler/TaskInfo;-><init>(Lorg/chromium/components/background_task_scheduler/TaskInfo$Builder;)V
-PLorg/chromium/components/background_task_scheduler/TaskInfo;->createOneOffTask(IJJ)Lorg/chromium/components/background_task_scheduler/TaskInfo$Builder;
-PLorg/chromium/components/background_task_scheduler/TaskInfo$Builder;-><init>(I)V
-PLorg/chromium/components/background_task_scheduler/TaskInfo$Builder;->build()Lorg/chromium/components/background_task_scheduler/TaskInfo;
-PLorg/chromium/components/background_task_scheduler/TaskInfo$OneOffInfo;-><init>(I)V
-PLorg/chromium/components/background_task_scheduler/TaskInfo$OneOffInfo;-><init>(Lorg/chromium/components/background_task_scheduler/TaskInfo$OneOffInfo;)V
-PLorg/chromium/components/background_task_scheduler/TaskInfo$OneOffInfo;-><init>(Lorg/chromium/components/background_task_scheduler/TaskInfo$OneOffInfo;I)V
-PLorg/chromium/components/background_task_scheduler/TaskInfo$OneOffInfo;->accept(Lorg/chromium/components/background_task_scheduler/TaskInfo$TimingInfoVisitor;)V
-PLorg/chromium/components/background_task_scheduler/TaskInfo$OneOffInfo;->expiresAfterWindowEndTime()Z
-PLorg/chromium/components/background_task_scheduler/TaskParameters;-><init>(Lorg/chromium/components/background_task_scheduler/TaskParameters$Builder;)V
-PLorg/chromium/components/background_task_scheduler/TaskParameters$Builder;-><init>(I)V
-PLorg/chromium/components/background_task_scheduler/internal/BackgroundTaskJobService;-><init>()V
-PLorg/chromium/components/background_task_scheduler/internal/BackgroundTaskJobService;->onStartJob(Landroid/app/job/JobParameters;)Z
-Lorg/chromium/components/background_task_scheduler/internal/BackgroundTaskJobService$$ExternalSyntheticLambda0;
-HSPLorg/chromium/components/background_task_scheduler/internal/BackgroundTaskJobService$$ExternalSyntheticLambda0;-><init>()V
-PLorg/chromium/components/background_task_scheduler/internal/BackgroundTaskJobService$TaskFinishedCallbackJobService;-><init>(Lorg/chromium/components/background_task_scheduler/internal/BackgroundTaskJobService;Lorg/chromium/components/background_task_scheduler/BackgroundTask;Landroid/app/job/JobParameters;)V
-PLorg/chromium/components/background_task_scheduler/internal/BackgroundTaskJobService$TaskFinishedCallbackJobService;->taskFinished(Z)V
-PLorg/chromium/components/background_task_scheduler/internal/BackgroundTaskJobService$TaskFinishedCallbackJobService$1;-><init>(Lorg/chromium/components/background_task_scheduler/internal/BackgroundTaskJobService$TaskFinishedCallbackJobService;Z)V
-PLorg/chromium/components/background_task_scheduler/internal/BackgroundTaskJobService$TaskFinishedCallbackJobService$1;->run()V
-Lorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerDelegate;
-Lorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerFactoryInternal;
-HSPLorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerFactoryInternal;->getScheduler()Lorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerImpl;
-Lorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerImpl;
-HSPLorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerImpl;-><init>(Lorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerJobService;)V
-HSPLorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerImpl;->cancel(Landroid/content/Context;I)V
-PLorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerImpl;->schedule(Landroid/content/Context;Lorg/chromium/components/background_task_scheduler/TaskInfo;)Z
-PLorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerImpl$MetricsVisitor;-><init>(I)V
-PLorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerImpl$MetricsVisitor;->visit(Lorg/chromium/components/background_task_scheduler/TaskInfo$OneOffInfo;)V
-PLorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerImpl$SchedulingVisitor;-><init>(Lorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerImpl;Landroid/content/Context;Lorg/chromium/components/background_task_scheduler/TaskInfo;)V
-PLorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerImpl$SchedulingVisitor;->visit(Lorg/chromium/components/background_task_scheduler/TaskInfo$OneOffInfo;)V
-Lorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerJobService;
-HSPLorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerJobService;-><init>()V
-PLorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerJobService;->getTaskParametersFromJobParameters(Landroid/app/job/JobParameters;)Lorg/chromium/components/background_task_scheduler/TaskParameters;
-HPLorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerJobService;->schedule(Landroid/content/Context;Lorg/chromium/components/background_task_scheduler/TaskInfo;)Z
-PLorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerJobService$JobInfoBuilderVisitor;-><init>(Landroid/app/job/JobInfo$Builder;Landroid/os/PersistableBundle;)V
-PLorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerJobService$JobInfoBuilderVisitor;->visit(Lorg/chromium/components/background_task_scheduler/TaskInfo$OneOffInfo;)V
-Lorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerUma;
-HSPLorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerUma;-><init>()V
-HSPLorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerUma;->cacheEvent(ILjava/lang/String;)V
-PLorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerUma;->flushStats()V
-HSPLorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerUma;->getInstance()Lorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerUma;
-Lorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerUma$CachedUmaEntry;
-HSPLorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerUma$CachedUmaEntry;-><init>(IILjava/lang/String;)V
-HPLorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerUma$CachedUmaEntry;->parseEntry(Ljava/lang/String;)Lorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerUma$CachedUmaEntry;
-HSPLorg/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerUma$CachedUmaEntry;->toString()Ljava/lang/String;
-Lorg/chromium/components/bookmarks/BookmarkId;
-Lorg/chromium/components/browser_ui/accessibility/FontSizePrefs;
-HSPLorg/chromium/components/browser_ui/accessibility/FontSizePrefs;-><init>(Lorg/chromium/chrome/browser/profiles/Profile;)V
-HSPLorg/chromium/components/browser_ui/accessibility/FontSizePrefs;->getUserFontScaleFactor()F
-HSPLorg/chromium/components/browser_ui/accessibility/FontSizePrefs;->onFontScaleFactorChanged(F)V
-HSPLorg/chromium/components/browser_ui/accessibility/FontSizePrefs;->setFontScaleFactor(F)V
-Lorg/chromium/components/browser_ui/accessibility/PageZoomCoordinator;
-HSPLorg/chromium/components/browser_ui/accessibility/PageZoomCoordinator;-><init>(Lorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda4;)V
-Lorg/chromium/components/browser_ui/accessibility/PageZoomCoordinator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/components/browser_ui/accessibility/PageZoomCoordinator$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/components/browser_ui/accessibility/PageZoomCoordinator;)V
-Lorg/chromium/components/browser_ui/accessibility/PageZoomCoordinator$$ExternalSyntheticLambda1;
-HSPLorg/chromium/components/browser_ui/accessibility/PageZoomCoordinator$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/components/browser_ui/accessibility/PageZoomCoordinator;)V
-Lorg/chromium/components/browser_ui/accessibility/PageZoomMediator;
-HSPLorg/chromium/components/browser_ui/accessibility/PageZoomMediator;-><init>(Lorg/chromium/ui/modelutil/PropertyModel;)V
-Lorg/chromium/components/browser_ui/accessibility/PageZoomMediator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/components/browser_ui/accessibility/PageZoomMediator$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/components/browser_ui/accessibility/PageZoomMediator;I)V
-Lorg/chromium/components/browser_ui/accessibility/PageZoomProperties;
-Lorg/chromium/components/browser_ui/accessibility/PageZoomUtils;
-HSPLorg/chromium/components/browser_ui/accessibility/PageZoomUtils;->convertZoomFactorToSeekBarValue(D)I
-HSPLorg/chromium/components/browser_ui/accessibility/PageZoomUtils;->shouldShowZoomMenuItem()Z
-Lorg/chromium/components/browser_ui/banners/SwipableOverlayView;
-HSPLorg/chromium/components/browser_ui/banners/SwipableOverlayView;-><init>(Landroid/content/Context;Z)V
-HSPLorg/chromium/components/browser_ui/banners/SwipableOverlayView;->cancelCurrentAnimation()Z
-HSPLorg/chromium/components/browser_ui/banners/SwipableOverlayView;->createVerticalSnapAnimation(Z)Landroid/animation/ObjectAnimator;
-HSPLorg/chromium/components/browser_ui/banners/SwipableOverlayView;->gatherTransparentRegion(Landroid/graphics/Region;)Z
-HSPLorg/chromium/components/browser_ui/banners/SwipableOverlayView;->onAttachedToWindow()V
-HSPLorg/chromium/components/browser_ui/banners/SwipableOverlayView;->onDetachedFromWindow()V
-HSPLorg/chromium/components/browser_ui/banners/SwipableOverlayView;->onLayout(ZIIII)V
-HSPLorg/chromium/components/browser_ui/banners/SwipableOverlayView;->onWindowFocusChanged(Z)V
-HSPLorg/chromium/components/browser_ui/banners/SwipableOverlayView;->removeFromParentView()Z
-HSPLorg/chromium/components/browser_ui/banners/SwipableOverlayView;->setWebContents(Lorg/chromium/content_public/browser/WebContents;)V
-Lorg/chromium/components/browser_ui/banners/SwipableOverlayView$2;
-HSPLorg/chromium/components/browser_ui/banners/SwipableOverlayView$2;-><init>(Lorg/chromium/components/browser_ui/banners/SwipableOverlayView;)V
-HSPLorg/chromium/components/browser_ui/banners/SwipableOverlayView$2;->onLayoutChange(Landroid/view/View;IIIIIIII)V
-Lorg/chromium/components/browser_ui/banners/SwipableOverlayView$3;
-HSPLorg/chromium/components/browser_ui/banners/SwipableOverlayView$3;-><init>(Lorg/chromium/components/browser_ui/banners/SwipableOverlayView;)V
-HSPLorg/chromium/components/browser_ui/banners/SwipableOverlayView$3;->onAnimationEnd(Landroid/animation/Animator;)V
-Lorg/chromium/components/browser_ui/bottomsheet/BottomSheet;
-Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetController;
-Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerFactory;
-HSPLorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerFactory;->setExceptionReporter(Lorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda5;)V
-Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerImpl;
-HSPLorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerImpl;-><init>(Lorg/chromium/base/supplier/Supplier;Lorg/chromium/base/Callback;Landroid/view/Window;Lorg/chromium/ui/KeyboardVisibilityDelegate;Lorg/chromium/base/supplier/Supplier;)V
-HSPLorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerImpl;->addObserver(Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetObserver;)V
-HSPLorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerImpl;->clearRequestsAndHide()V
-HSPLorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerImpl;->destroy()V
-HSPLorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerImpl;->isSheetOpen()Z
-HSPLorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerImpl;->removeObserver(Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetObserver;)V
-HSPLorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerImpl;->suppressSheet(I)I
-HSPLorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerImpl;->updateBackPressStateChangedSupplier()V
-Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerImpl$$ExternalSyntheticLambda1;
-HSPLorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerImpl$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerImpl;I)V
-HSPLorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerImpl$$ExternalSyntheticLambda1;->run()V
-Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerImpl$$ExternalSyntheticLambda2;
-HSPLorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerImpl$$ExternalSyntheticLambda2;-><init>(Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerImpl;Lorg/chromium/base/Callback;Landroid/view/Window;Lorg/chromium/ui/KeyboardVisibilityDelegate;Lorg/chromium/base/supplier/Supplier;)V
-Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerImpl$1;
-HSPLorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerImpl$1;-><init>(Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerImpl;)V
-Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerProvider;
-HSPLorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerProvider;->from(Lorg/chromium/ui/base/WindowAndroid;)Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetController;
-Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetControllerProvider$Unowned;
-Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetObserver;
-Lorg/chromium/components/browser_ui/bottomsheet/BottomSheetSwipeDetector$SwipeableBottomSheet;
-Lorg/chromium/components/browser_ui/bottomsheet/EmptyBottomSheetObserver;
-HSPLorg/chromium/components/browser_ui/bottomsheet/EmptyBottomSheetObserver;-><init>()V
-Lorg/chromium/components/browser_ui/media/MediaImageCallback;
-Lorg/chromium/components/browser_ui/media/MediaImageManager;
-HSPLorg/chromium/components/browser_ui/media/MediaImageManager;-><init>(I)V
-Lorg/chromium/components/browser_ui/media/MediaNotificationController;
-Lorg/chromium/components/browser_ui/media/MediaNotificationImageUtils;
-HSPLorg/chromium/components/browser_ui/media/MediaNotificationImageUtils;->downscaleIconToIdealSize(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap;
-Lorg/chromium/components/browser_ui/media/MediaNotificationListener;
-Lorg/chromium/components/browser_ui/media/MediaNotificationManager;
-Lorg/chromium/components/browser_ui/media/MediaSessionHelper;
-HSPLorg/chromium/components/browser_ui/media/MediaSessionHelper;->-$$Nest$mupdateNotificationMetadata(Lorg/chromium/components/browser_ui/media/MediaSessionHelper;)V
-HSPLorg/chromium/components/browser_ui/media/MediaSessionHelper;-><init>(Lorg/chromium/content_public/browser/WebContents;Lorg/chromium/chrome/browser/media/ui/MediaSessionTabHelper;)V
-HSPLorg/chromium/components/browser_ui/media/MediaSessionHelper;->cleanupMediaSessionObserver()V
-HSPLorg/chromium/components/browser_ui/media/MediaSessionHelper;->getActivity()Landroid/app/Activity;
-HSPLorg/chromium/components/browser_ui/media/MediaSessionHelper;->getMetadata()Lorg/chromium/services/media_session/MediaMetadata;
-HSPLorg/chromium/components/browser_ui/media/MediaSessionHelper;->hideNotificationInternal()V
-HSPLorg/chromium/components/browser_ui/media/MediaSessionHelper;->isNotificationHidingOrHidden()Z
-HSPLorg/chromium/components/browser_ui/media/MediaSessionHelper;->setWebContents(Lorg/chromium/content_public/browser/WebContents;)V
-Lorg/chromium/components/browser_ui/media/MediaSessionHelper$1;
-HSPLorg/chromium/components/browser_ui/media/MediaSessionHelper$1;-><init>(Lorg/chromium/components/browser_ui/media/MediaSessionHelper;)V
-Lorg/chromium/components/browser_ui/media/MediaSessionHelper$2;
-HSPLorg/chromium/components/browser_ui/media/MediaSessionHelper$2;-><init>(Lorg/chromium/components/browser_ui/media/MediaSessionHelper;)V
-HSPLorg/chromium/components/browser_ui/media/MediaSessionHelper$2;->run()V
-Lorg/chromium/components/browser_ui/media/MediaSessionHelper$3;
-HSPLorg/chromium/components/browser_ui/media/MediaSessionHelper$3;-><init>(Lorg/chromium/components/browser_ui/media/MediaSessionHelper;Lorg/chromium/content/browser/MediaSessionImpl;)V
-HSPLorg/chromium/components/browser_ui/media/MediaSessionHelper$3;->mediaSessionActionsChanged(Ljava/util/HashSet;)V
-HSPLorg/chromium/components/browser_ui/media/MediaSessionHelper$3;->mediaSessionArtworkChanged(Ljava/util/List;)V
-HSPLorg/chromium/components/browser_ui/media/MediaSessionHelper$3;->mediaSessionMetadataChanged(Lorg/chromium/services/media_session/MediaMetadata;)V
-HSPLorg/chromium/components/browser_ui/media/MediaSessionHelper$3;->mediaSessionPositionChanged(Lorg/chromium/services/media_session/MediaPosition;)V
-HSPLorg/chromium/components/browser_ui/media/MediaSessionHelper$3;->mediaSessionStateChanged(ZZ)V
-Lorg/chromium/components/browser_ui/media/MediaSessionHelper$4;
-HSPLorg/chromium/components/browser_ui/media/MediaSessionHelper$4;-><init>(Lorg/chromium/components/browser_ui/media/MediaSessionHelper;Lorg/chromium/content_public/browser/WebContents;Lorg/chromium/content_public/browser/WebContents;)V
-HSPLorg/chromium/components/browser_ui/media/MediaSessionHelper$4;->didFinishNavigationInPrimaryMainFrame(Lorg/chromium/content_public/browser/NavigationHandle;)V
-HSPLorg/chromium/components/browser_ui/media/MediaSessionHelper$4;->wasShown()V
-Lorg/chromium/components/browser_ui/modaldialog/AppModalPresenter;
-HSPLorg/chromium/components/browser_ui/modaldialog/AppModalPresenter;-><init>(Landroid/content/Context;)V
-Lorg/chromium/components/browser_ui/modaldialog/TabModalPresenter;
-HSPLorg/chromium/components/browser_ui/modaldialog/TabModalPresenter;-><init>(Landroid/content/Context;)V
-Lorg/chromium/components/browser_ui/notifications/NotificationManagerProxy;
-Lorg/chromium/components/browser_ui/notifications/NotificationManagerProxyImpl;
-HSPLorg/chromium/components/browser_ui/notifications/NotificationManagerProxyImpl;-><init>(Landroid/content/Context;)V
-HSPLorg/chromium/components/browser_ui/notifications/NotificationManagerProxyImpl;->createNotificationChannel(Landroid/app/NotificationChannel;)V
-HSPLorg/chromium/components/browser_ui/notifications/NotificationManagerProxyImpl;->createNotificationChannelGroup(Landroid/app/NotificationChannelGroup;)V
-HSPLorg/chromium/components/browser_ui/notifications/NotificationManagerProxyImpl;->deleteNotificationChannel(Ljava/lang/String;)V
-HSPLorg/chromium/components/browser_ui/notifications/NotificationManagerProxyImpl;->getNotificationChannels()Ljava/util/List;
-Lorg/chromium/components/browser_ui/notifications/channels/ChannelDefinitions;
-Lorg/chromium/components/browser_ui/notifications/channels/ChannelDefinitions$PredefinedChannel;
-HSPLorg/chromium/components/browser_ui/notifications/channels/ChannelDefinitions$PredefinedChannel;-><init>(Ljava/lang/String;IIZZ)V
-HSPLorg/chromium/components/browser_ui/notifications/channels/ChannelDefinitions$PredefinedChannel;->create(IILjava/lang/String;)Lorg/chromium/components/browser_ui/notifications/channels/ChannelDefinitions$PredefinedChannel;
-Lorg/chromium/components/browser_ui/notifications/channels/ChannelDefinitions$PredefinedChannelGroup;
-HSPLorg/chromium/components/browser_ui/notifications/channels/ChannelDefinitions$PredefinedChannelGroup;-><init>(ILjava/lang/String;)V
-Lorg/chromium/components/browser_ui/notifications/channels/ChannelDefinitions$PredefinedChannelGroup$$ExternalSyntheticApiModelOutline0;
-HSPLorg/chromium/components/browser_ui/notifications/channels/ChannelDefinitions$PredefinedChannelGroup$$ExternalSyntheticApiModelOutline0;->m()V
-HSPLorg/chromium/components/browser_ui/notifications/channels/ChannelDefinitions$PredefinedChannelGroup$$ExternalSyntheticApiModelOutline0;->m(Ljava/lang/String;Ljava/lang/String;)Landroid/app/NotificationChannelGroup;
-Lorg/chromium/components/browser_ui/notifications/channels/ChannelsInitializer;
-HSPLorg/chromium/components/browser_ui/notifications/channels/ChannelsInitializer;-><init>(Lorg/chromium/components/browser_ui/notifications/NotificationManagerProxy;Landroid/content/res/Resources;)V
-HSPLorg/chromium/components/browser_ui/notifications/channels/ChannelsInitializer;->ensureInitializedWithEnabledState(Ljava/util/Collection;Ljava/util/Collection;)V
-HSPLorg/chromium/components/browser_ui/notifications/channels/ChannelsInitializer;->initializeStartupChannels()V
-Lorg/chromium/components/browser_ui/photo_picker/DecodeVideoTask$VideoDecodingCallback;
-Lorg/chromium/components/browser_ui/photo_picker/DecoderServiceHost;
-Lorg/chromium/components/browser_ui/photo_picker/IDecoderServiceCallback;
-Lorg/chromium/components/browser_ui/photo_picker/IDecoderServiceCallback$Stub;
-Lorg/chromium/components/browser_ui/photo_picker/PhotoPickerDelegateBase;
-HSPLorg/chromium/components/browser_ui/photo_picker/PhotoPickerDelegateBase;-><init>()V
-Lorg/chromium/components/browser_ui/settings/SettingsLauncher;
-Lorg/chromium/components/browser_ui/share/ClipboardImageFileProvider;
-HSPLorg/chromium/components/browser_ui/share/ClipboardImageFileProvider;-><init>()V
-HSPLorg/chromium/components/browser_ui/share/ClipboardImageFileProvider;->getLastCopiedImageMetadata()Lorg/chromium/ui/base/Clipboard$ImageFileProvider$ClipboardFileMetadata;
-Lorg/chromium/components/browser_ui/share/ShareImageFileUtils;
-HSPLorg/chromium/components/browser_ui/share/ShareImageFileUtils;->getSharedFilesDirectory()Ljava/io/File;
-Lorg/chromium/components/browser_ui/share/ShareImageFileUtils$$ExternalSyntheticApiModelOutline0;
-HSPLorg/chromium/components/browser_ui/share/ShareImageFileUtils$$ExternalSyntheticApiModelOutline0;->m()Landroid/net/Uri;
-Lorg/chromium/components/browser_ui/share/ShareImageFileUtils$$ExternalSyntheticLambda3;
-HSPLorg/chromium/components/browser_ui/share/ShareImageFileUtils$$ExternalSyntheticLambda3;-><init>()V
-HSPLorg/chromium/components/browser_ui/share/ShareImageFileUtils$$ExternalSyntheticLambda3;->run()V
-Lorg/chromium/components/browser_ui/share/ShareImageFileUtils$$ExternalSyntheticLambda6;
-HSPLorg/chromium/components/browser_ui/share/ShareImageFileUtils$$ExternalSyntheticLambda6;-><init>(Ljava/lang/String;)V
-Lorg/chromium/components/browser_ui/share/ShareParams$TargetChosenCallback;
-Lorg/chromium/components/browser_ui/styles/ChromeColors;
-HSPLorg/chromium/components/browser_ui/styles/ChromeColors;->getDefaultThemeColor(Landroid/content/Context;Z)I
-HSPLorg/chromium/components/browser_ui/styles/ChromeColors;->getPrimaryBackgroundColor(Landroid/content/Context;Z)I
-HSPLorg/chromium/components/browser_ui/styles/ChromeColors;->getSurfaceColor(Landroid/content/Context;I)I
-Lorg/chromium/components/browser_ui/styles/SemanticColorUtils;
-HSPLorg/chromium/components/browser_ui/styles/SemanticColorUtils;->getDefaultBgColor(Landroid/content/Context;)I
-HSPLorg/chromium/components/browser_ui/styles/SemanticColorUtils;->getDefaultControlColorActive(Landroid/content/Context;)I
-HSPLorg/chromium/components/browser_ui/styles/SemanticColorUtils;->getDefaultIconColor(Landroid/content/Context;)I
-HSPLorg/chromium/components/browser_ui/styles/SemanticColorUtils;->getDividerLineBgColor(Landroid/content/Context;)I
-HSPLorg/chromium/components/browser_ui/styles/SemanticColorUtils;->resolve(Landroid/content/Context;I)I
-Lorg/chromium/components/browser_ui/util/BitmapCache;
-HSPLorg/chromium/components/browser_ui/util/BitmapCache;-><init>(Lorg/chromium/base/DiscardableReferencePool;I)V
-Lorg/chromium/components/browser_ui/util/BitmapCache$RecentlyUsedCache;
-HSPLorg/chromium/components/browser_ui/util/BitmapCache$RecentlyUsedCache;-><init>(I)V
-Lorg/chromium/components/browser_ui/util/BrowserControlsVisibilityDelegate;
-HSPLorg/chromium/components/browser_ui/util/BrowserControlsVisibilityDelegate;-><init>()V
-HSPLorg/chromium/components/browser_ui/util/BrowserControlsVisibilityDelegate;->set(Ljava/lang/Integer;)V
-Lorg/chromium/components/browser_ui/util/ComposedBrowserControlsVisibilityDelegate;
-HSPLorg/chromium/components/browser_ui/util/ComposedBrowserControlsVisibilityDelegate;->$r8$lambda$bSxtxU-NyBJzu8vAHQiKOc2_5Kc(Lorg/chromium/components/browser_ui/util/ComposedBrowserControlsVisibilityDelegate;)V
-HSPLorg/chromium/components/browser_ui/util/ComposedBrowserControlsVisibilityDelegate;-><init>([Lorg/chromium/components/browser_ui/util/BrowserControlsVisibilityDelegate;)V
-HSPLorg/chromium/components/browser_ui/util/ComposedBrowserControlsVisibilityDelegate;->calculateVisibilityConstraints()I
-HSPLorg/chromium/components/browser_ui/util/ComposedBrowserControlsVisibilityDelegate;->set(Ljava/lang/Integer;)V
-Lorg/chromium/components/browser_ui/util/ComposedBrowserControlsVisibilityDelegate$$ExternalSyntheticLambda0;
-HSPLorg/chromium/components/browser_ui/util/ComposedBrowserControlsVisibilityDelegate$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/components/browser_ui/util/ComposedBrowserControlsVisibilityDelegate;)V
-HSPLorg/chromium/components/browser_ui/util/ComposedBrowserControlsVisibilityDelegate$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/components/browser_ui/util/DimensionCompat;
-HSPLorg/chromium/components/browser_ui/util/DimensionCompat;-><init>(Landroid/app/Activity;)V
-Lorg/chromium/components/browser_ui/util/DimensionCompat$DimensionCompatR;
-HSPLorg/chromium/components/browser_ui/util/DimensionCompat$DimensionCompatR;-><init>(Landroid/app/Activity;)V
-HSPLorg/chromium/components/browser_ui/util/DimensionCompat$DimensionCompatR;-><init>(Landroid/app/Activity;II)V
-Lorg/chromium/components/browser_ui/util/FirstDrawDetector;
-HSPLorg/chromium/components/browser_ui/util/FirstDrawDetector;-><init>(Landroid/view/View;Ljava/lang/Runnable;)V
-HSPLorg/chromium/components/browser_ui/util/FirstDrawDetector;->startWaiting(Z)V
-Lorg/chromium/components/browser_ui/util/FirstDrawDetector$1;
-HSPLorg/chromium/components/browser_ui/util/FirstDrawDetector$1;-><init>(Lorg/chromium/components/browser_ui/util/FirstDrawDetector;)V
-HSPLorg/chromium/components/browser_ui/util/FirstDrawDetector$1;->onDraw()V
-Lorg/chromium/components/browser_ui/util/FirstDrawDetector$1$$ExternalSyntheticLambda0;
-HSPLorg/chromium/components/browser_ui/util/FirstDrawDetector$1$$ExternalSyntheticLambda0;-><init>(ILjava/lang/Object;)V
-HSPLorg/chromium/components/browser_ui/util/FirstDrawDetector$1$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/components/browser_ui/util/FirstDrawDetector$2;
-HSPLorg/chromium/components/browser_ui/util/FirstDrawDetector$2;-><init>(Lorg/chromium/components/browser_ui/util/FirstDrawDetector;)V
-HSPLorg/chromium/components/browser_ui/util/FirstDrawDetector$2;->onPreDraw()Z
-Lorg/chromium/components/browser_ui/util/GlobalDiscardableReferencePool;
-Lorg/chromium/components/browser_ui/widget/ChromeTransitionDrawable;
-HSPLorg/chromium/components/browser_ui/widget/ChromeTransitionDrawable;-><init>(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V
-HSPLorg/chromium/components/browser_ui/widget/ChromeTransitionDrawable;->draw(Landroid/graphics/Canvas;)V
-HSPLorg/chromium/components/browser_ui/widget/ChromeTransitionDrawable;->startTransition()Lorg/chromium/components/browser_ui/widget/ChromeTransitionDrawable$TransitionHandle;
-Lorg/chromium/components/browser_ui/widget/ChromeTransitionDrawable$1;
-HSPLorg/chromium/components/browser_ui/widget/ChromeTransitionDrawable$1;-><init>()V
-HSPLorg/chromium/components/browser_ui/widget/ChromeTransitionDrawable$1;->get(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLorg/chromium/components/browser_ui/widget/ChromeTransitionDrawable$1;->setValue(Ljava/lang/Object;I)V
-Lorg/chromium/components/browser_ui/widget/ChromeTransitionDrawable$TransitionHandle;
-HSPLorg/chromium/components/browser_ui/widget/ChromeTransitionDrawable$TransitionHandle;-><init>(Landroid/animation/ObjectAnimator;)V
-Lorg/chromium/components/browser_ui/widget/ChromeTransitionDrawable$TransitionHandle$1;
-HSPLorg/chromium/components/browser_ui/widget/ChromeTransitionDrawable$TransitionHandle$1;-><init>(Lorg/chromium/chrome/browser/omnibox/status/StatusView$$ExternalSyntheticLambda1;)V
-HSPLorg/chromium/components/browser_ui/widget/ChromeTransitionDrawable$TransitionHandle$1;->onEnd()V
-Lorg/chromium/components/browser_ui/widget/ClipDrawableProgressBar;
-HSPLorg/chromium/components/browser_ui/widget/ClipDrawableProgressBar;-><init>(Landroid/content/Context;I)V
-HSPLorg/chromium/components/browser_ui/widget/ClipDrawableProgressBar;->onSetAlpha(I)Z
-HSPLorg/chromium/components/browser_ui/widget/ClipDrawableProgressBar;->setBackgroundColor(I)V
-HSPLorg/chromium/components/browser_ui/widget/ClipDrawableProgressBar;->setProgress(F)V
-HSPLorg/chromium/components/browser_ui/widget/ClipDrawableProgressBar;->setVisibility(I)V
-Lorg/chromium/components/browser_ui/widget/ClipDrawableProgressBar$DrawingInfo;
-HSPLorg/chromium/components/browser_ui/widget/ClipDrawableProgressBar$DrawingInfo;-><init>()V
-Lorg/chromium/components/browser_ui/widget/CompositeTouchDelegate;
-HSPLorg/chromium/components/browser_ui/widget/CompositeTouchDelegate;-><init>(Landroid/view/View;)V
-Lorg/chromium/components/browser_ui/widget/CoordinatorLayoutForPointer;
-HSPLorg/chromium/components/browser_ui/widget/CoordinatorLayoutForPointer;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-Lorg/chromium/components/browser_ui/widget/InsetObserverView;
-HSPLorg/chromium/components/browser_ui/widget/InsetObserverView;-><init>(Landroid/content/Context;)V
-HSPLorg/chromium/components/browser_ui/widget/InsetObserverView;->onApplyWindowInsets(Landroid/view/WindowInsets;)Landroid/view/WindowInsets;
-Lorg/chromium/components/browser_ui/widget/InsetObserverView$BottomInsetObservableSupplier;
-HSPLorg/chromium/components/browser_ui/widget/InsetObserverView$BottomInsetObservableSupplier;-><init>()V
-HSPLorg/chromium/components/browser_ui/widget/InsetObserverView$BottomInsetObservableSupplier;->onInsetChanged(I)V
-Lorg/chromium/components/browser_ui/widget/InsetObserverView$InsetObserverViewApi28;
-HSPLorg/chromium/components/browser_ui/widget/InsetObserverView$InsetObserverViewApi28;-><init>(Landroid/content/Context;)V
-HSPLorg/chromium/components/browser_ui/widget/InsetObserverView$InsetObserverViewApi28;->onApplyWindowInsets(Landroid/view/WindowInsets;)Landroid/view/WindowInsets;
-Lorg/chromium/components/browser_ui/widget/InsetObserverView$WindowInsetObserver;
-Lorg/chromium/components/browser_ui/widget/InsetObserverViewSupplier;
-HSPLorg/chromium/components/browser_ui/widget/InsetObserverViewSupplier;-><init>()V
-Lorg/chromium/components/browser_ui/widget/MenuOrKeyboardActionController;
-Lorg/chromium/components/browser_ui/widget/MenuOrKeyboardActionController$MenuOrKeyboardActionHandler;
-Lorg/chromium/components/browser_ui/widget/RoundedCornerImageView;
-HSPLorg/chromium/components/browser_ui/widget/RoundedCornerImageView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/components/browser_ui/widget/RoundedCornerImageView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
-HSPLorg/chromium/components/browser_ui/widget/RoundedCornerImageView;->refreshState()V
-HSPLorg/chromium/components/browser_ui/widget/RoundedCornerImageView;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V
-HSPLorg/chromium/components/browser_ui/widget/RoundedCornerImageView;->setRoundedCorners(IIII)V
-Lorg/chromium/components/browser_ui/widget/RoundedIconGenerator;
-HSPLorg/chromium/components/browser_ui/widget/RoundedIconGenerator;-><init>(IIIIF)V
-Lorg/chromium/components/browser_ui/widget/TintedDrawable;
-HSPLorg/chromium/components/browser_ui/widget/TintedDrawable;-><init>(Landroid/content/Context;Landroid/graphics/Bitmap;)V
-HSPLorg/chromium/components/browser_ui/widget/TintedDrawable;->isStateful()Z
-HSPLorg/chromium/components/browser_ui/widget/TintedDrawable;->onStateChange([I)Z
-HSPLorg/chromium/components/browser_ui/widget/TintedDrawable;->setTint(Landroid/content/res/ColorStateList;)V
-Lorg/chromium/components/browser_ui/widget/ViewResourceFrameLayout;
-HSPLorg/chromium/components/browser_ui/widget/ViewResourceFrameLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/components/browser_ui/widget/ViewResourceFrameLayout;->isReadyForCapture()Z
-HSPLorg/chromium/components/browser_ui/widget/ViewResourceFrameLayout;->onDescendantInvalidated(Landroid/view/View;Landroid/view/View;)V
-HSPLorg/chromium/components/browser_ui/widget/ViewResourceFrameLayout;->onFinishInflate()V
-Lorg/chromium/components/browser_ui/widget/animation/CancelAwareAnimatorListener;
-HSPLorg/chromium/components/browser_ui/widget/animation/CancelAwareAnimatorListener;-><init>()V
-HSPLorg/chromium/components/browser_ui/widget/animation/CancelAwareAnimatorListener;->onAnimationEnd(Landroid/animation/Animator;)V
-Lorg/chromium/components/browser_ui/widget/animation/Interpolators;
-Lorg/chromium/components/browser_ui/widget/displaystyle/DisplayStyleObserver;
-Lorg/chromium/components/browser_ui/widget/displaystyle/DisplayStyleObserverAdapter;
-HSPLorg/chromium/components/browser_ui/widget/displaystyle/DisplayStyleObserverAdapter;-><init>(Landroid/view/View;Lorg/chromium/components/browser_ui/widget/displaystyle/UiConfig;Lorg/chromium/components/browser_ui/widget/displaystyle/DisplayStyleObserver;)V
-HSPLorg/chromium/components/browser_ui/widget/displaystyle/DisplayStyleObserverAdapter;->onDisplayStyleChanged(Lorg/chromium/components/browser_ui/widget/displaystyle/UiConfig$DisplayStyle;)V
-Lorg/chromium/components/browser_ui/widget/displaystyle/UiConfig;
-HSPLorg/chromium/components/browser_ui/widget/displaystyle/UiConfig;-><init>(Landroid/view/View;)V
-HSPLorg/chromium/components/browser_ui/widget/displaystyle/UiConfig;->addObserver(Lorg/chromium/components/browser_ui/widget/displaystyle/DisplayStyleObserver;)V
-HSPLorg/chromium/components/browser_ui/widget/displaystyle/UiConfig;->computeDisplayStyleForCurrentConfig()Lorg/chromium/components/browser_ui/widget/displaystyle/UiConfig$DisplayStyle;
-Lorg/chromium/components/browser_ui/widget/displaystyle/UiConfig$1;
-HSPLorg/chromium/components/browser_ui/widget/displaystyle/UiConfig$1;-><init>(Lorg/chromium/components/browser_ui/widget/displaystyle/UiConfig;)V
-Lorg/chromium/components/browser_ui/widget/displaystyle/UiConfig$DisplayStyle;
-HSPLorg/chromium/components/browser_ui/widget/displaystyle/UiConfig$DisplayStyle;-><init>(II)V
-Lorg/chromium/components/browser_ui/widget/displaystyle/ViewResizer;
-HSPLorg/chromium/components/browser_ui/widget/displaystyle/ViewResizer;-><init>(Landroid/view/View;Lorg/chromium/components/browser_ui/widget/displaystyle/UiConfig;II)V
-HSPLorg/chromium/components/browser_ui/widget/displaystyle/ViewResizer;->attach$1()V
-Lorg/chromium/components/browser_ui/widget/gesture/BackPressHandler;
-HSPLorg/chromium/components/browser_ui/widget/gesture/BackPressHandler;->getHandleBackPressChangedSupplier()Lorg/chromium/base/supplier/ObservableSupplier;
-Lorg/chromium/components/browser_ui/widget/gesture/SwipeGestureListener;
-HSPLorg/chromium/components/browser_ui/widget/gesture/SwipeGestureListener;-><init>(Landroid/content/Context;Lorg/chromium/components/browser_ui/widget/gesture/SwipeGestureListener$SwipeHandler;)V
-Lorg/chromium/components/browser_ui/widget/gesture/SwipeGestureListener$SwipeHandler;
-Lorg/chromium/components/browser_ui/widget/highlight/ViewHighlighter$HighlightParams;
-HSPLorg/chromium/components/browser_ui/widget/highlight/ViewHighlighter$HighlightParams;-><init>(I)V
-Lorg/chromium/components/browser_ui/widget/listmenu/ListMenuButton;
-HSPLorg/chromium/components/browser_ui/widget/listmenu/ListMenuButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/components/browser_ui/widget/listmenu/ListMenuButton;->dismiss()V
-HSPLorg/chromium/components/browser_ui/widget/listmenu/ListMenuButton;->onAttachedToWindow()V
-HSPLorg/chromium/components/browser_ui/widget/listmenu/ListMenuButton;->onDetachedFromWindow()V
-HSPLorg/chromium/components/browser_ui/widget/listmenu/ListMenuButton;->onFinishInflate()V
-Lorg/chromium/components/browser_ui/widget/scrim/ScrimCoordinator;
-HSPLorg/chromium/components/browser_ui/widget/scrim/ScrimCoordinator;-><init>(Landroid/content/Context;Lorg/chromium/components/browser_ui/widget/scrim/ScrimCoordinator$SystemUiScrimDelegate;Landroid/view/ViewGroup;I)V
-Lorg/chromium/components/browser_ui/widget/scrim/ScrimCoordinator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/components/browser_ui/widget/scrim/ScrimCoordinator$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/components/browser_ui/widget/scrim/ScrimCoordinator;)V
-Lorg/chromium/components/browser_ui/widget/scrim/ScrimCoordinator$$ExternalSyntheticLambda1;
-HSPLorg/chromium/components/browser_ui/widget/scrim/ScrimCoordinator$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/components/browser_ui/widget/scrim/ScrimCoordinator;Landroid/content/Context;Landroid/view/ViewGroup;I)V
-Lorg/chromium/components/browser_ui/widget/scrim/ScrimCoordinator$SystemUiScrimDelegate;
-Lorg/chromium/components/browser_ui/widget/scrim/ScrimCoordinator$TouchEventDelegate;
-Lorg/chromium/components/browser_ui/widget/scrim/ScrimMediator;
-HSPLorg/chromium/components/browser_ui/widget/scrim/ScrimMediator;-><init>(Lorg/chromium/components/browser_ui/widget/scrim/ScrimCoordinator$$ExternalSyntheticLambda0;Lorg/chromium/components/browser_ui/widget/scrim/ScrimCoordinator$SystemUiScrimDelegate;)V
-Lorg/chromium/components/browser_ui/widget/scrim/ScrimProperties;
-Lorg/chromium/components/browser_ui/widget/text/VerticallyFixedEditText;
-HSPLorg/chromium/components/browser_ui/widget/text/VerticallyFixedEditText;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/components/browser_ui/widget/text/VerticallyFixedEditText;->scrollTo(II)V
-Lorg/chromium/components/commerce/core/ShoppingService;
-HSPLorg/chromium/components/commerce/core/ShoppingService;-><init>(J)V
-HSPLorg/chromium/components/commerce/core/ShoppingService;->create(J)Lorg/chromium/components/commerce/core/ShoppingService;
-Lorg/chromium/components/commerce/core/SubscriptionsObserver;
-Lorg/chromium/components/content_capture/OnscreenContentProvider;
-HSPLorg/chromium/components/content_capture/OnscreenContentProvider;-><init>(Landroid/content/Context;Landroid/view/View;Lorg/chromium/content_public/browser/WebContents;)V
-Lorg/chromium/components/content_capture/PlatformContentCaptureController;
-HSPLorg/chromium/components/content_capture/PlatformContentCaptureController;-><init>(Landroid/content/Context;)V
-HSPLorg/chromium/components/content_capture/PlatformContentCaptureController;->log(Ljava/lang/String;)V
-Lorg/chromium/components/content_capture/PlatformContentCaptureController$$ExternalSyntheticApiModelOutline0;
-HSPLorg/chromium/components/content_capture/PlatformContentCaptureController$$ExternalSyntheticApiModelOutline0;->m()Ljava/lang/Class;
-HSPLorg/chromium/components/content_capture/PlatformContentCaptureController$$ExternalSyntheticApiModelOutline0;->m(Ljava/lang/Object;)Landroid/view/contentcapture/ContentCaptureManager;
-Lorg/chromium/components/content_capture/UrlAllowlist;
-HSPLorg/chromium/components/content_capture/UrlAllowlist;-><init>(Ljava/util/HashSet;Ljava/util/ArrayList;)V
-Lorg/chromium/components/crash/CrashKeys;
-HSPLorg/chromium/components/crash/CrashKeys;-><init>()V
-HSPLorg/chromium/components/crash/CrashKeys;->flushToNative()V
-HSPLorg/chromium/components/crash/CrashKeys;->getInstance()Lorg/chromium/components/crash/CrashKeys;
-HSPLorg/chromium/components/crash/CrashKeys;->set(ILjava/lang/String;)V
-Lorg/chromium/components/crash/CrashKeys$Holder;
-Lorg/chromium/components/crash/PureJavaExceptionHandler;
-HSPLorg/chromium/components/crash/PureJavaExceptionHandler;-><init>(Ljava/lang/Thread$UncaughtExceptionHandler;Lorg/chromium/chrome/browser/base/SplitCompatApplication$1;)V
-HSPLorg/chromium/components/crash/PureJavaExceptionHandler;->uninstallHandler()V
-Lorg/chromium/components/crash/browser/ChildProcessCrashObserver;
-Lorg/chromium/components/dom_distiller/content/DistillablePageUtils$PageDistillableDelegate;
-Lorg/chromium/components/dom_distiller/core/DomDistillerUrlUtils;
-HSPLorg/chromium/components/dom_distiller/core/DomDistillerUrlUtils;->isDistilledPage(Ljava/lang/String;)Z
-HSPLorg/chromium/components/dom_distiller/core/DomDistillerUrlUtils;->isDistilledPage(Lorg/chromium/url/GURL;)Z
-Lorg/chromium/components/download/BackgroundNetworkStatusListener;
-HSPLorg/chromium/components/download/BackgroundNetworkStatusListener;-><init>(Lorg/chromium/components/download/NetworkStatusListenerAndroid$Helper;)V
-HSPLorg/chromium/components/download/BackgroundNetworkStatusListener;->onNetworkConnect(IJ)V
-Lorg/chromium/components/download/BackgroundNetworkStatusListener$$ExternalSyntheticLambda0;
-HSPLorg/chromium/components/download/BackgroundNetworkStatusListener$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/components/download/BackgroundNetworkStatusListener;II)V
-HSPLorg/chromium/components/download/BackgroundNetworkStatusListener$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/components/download/BackgroundNetworkStatusListener$Observer;
-Lorg/chromium/components/download/DownloadCollectionBridge;
-HSPLorg/chromium/components/download/DownloadCollectionBridge;->getDisplayNamesForDownloads()[Lorg/chromium/components/download/DownloadCollectionBridge$DisplayNameInfo;
-PLorg/chromium/components/download/DownloadCollectionBridge;->shouldPublishDownload(Ljava/lang/String;)Z
-Lorg/chromium/components/download/DownloadDelegate;
-HSPLorg/chromium/components/download/DownloadDelegate;-><init>()V
-Lorg/chromium/components/download/NetworkStatusListenerAndroid;
-HSPLorg/chromium/components/download/NetworkStatusListenerAndroid;-><init>(J)V
-HSPLorg/chromium/components/download/NetworkStatusListenerAndroid;->create(J)Lorg/chromium/components/download/NetworkStatusListenerAndroid;
-HSPLorg/chromium/components/download/NetworkStatusListenerAndroid;->getCurrentConnectionType()I
-HSPLorg/chromium/components/download/NetworkStatusListenerAndroid;->onNetworkStatusReady(I)V
-Lorg/chromium/components/download/NetworkStatusListenerAndroid$Helper;
-HSPLorg/chromium/components/download/NetworkStatusListenerAndroid$Helper;-><init>()V
-HSPLorg/chromium/components/download/NetworkStatusListenerAndroid$Helper;->onNetworkStatusReady(I)V
-Lorg/chromium/components/download/NetworkStatusListenerAndroid$Helper$$ExternalSyntheticLambda0;
-HSPLorg/chromium/components/download/NetworkStatusListenerAndroid$Helper$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/components/download/NetworkStatusListenerAndroid$Helper;I)V
-HSPLorg/chromium/components/download/NetworkStatusListenerAndroid$Helper$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/components/download/internal/BatteryStatusListenerAndroid;
-HSPLorg/chromium/components/download/internal/BatteryStatusListenerAndroid;->getBatteryPercentage()I
-Lorg/chromium/components/embedder_support/browser_context/PartitionResolverSupplier;
-Lorg/chromium/components/embedder_support/delegate/WebContentsDelegateAndroid;
-HSPLorg/chromium/components/embedder_support/delegate/WebContentsDelegateAndroid;-><init>()V
-HSPLorg/chromium/components/embedder_support/delegate/WebContentsDelegateAndroid;->getDisplayModeChecked()I
-HSPLorg/chromium/components/embedder_support/delegate/WebContentsDelegateAndroid;->loadingStateChanged(Z)V
-HSPLorg/chromium/components/embedder_support/delegate/WebContentsDelegateAndroid;->navigationStateChanged(I)V
-HSPLorg/chromium/components/embedder_support/delegate/WebContentsDelegateAndroid;->onUpdateUrl(Lorg/chromium/url/GURL;)V
-HSPLorg/chromium/components/embedder_support/delegate/WebContentsDelegateAndroid;->visibleSSLStateChanged()V
-Lorg/chromium/components/embedder_support/simple_factory_key/SimpleFactoryKeyHandle;
-Lorg/chromium/components/embedder_support/util/UrlUtilities;
-HSPLorg/chromium/components/embedder_support/util/UrlUtilities;->hasIntentScheme(Lorg/chromium/url/GURL;)Z
-HSPLorg/chromium/components/embedder_support/util/UrlUtilities;->isAcceptedScheme(Lorg/chromium/url/GURL;)Z
-HSPLorg/chromium/components/embedder_support/util/UrlUtilities;->isCanonicalizedNTPUrl(Ljava/lang/String;)Z
-HSPLorg/chromium/components/embedder_support/util/UrlUtilities;->isHttpOrHttps(Lorg/chromium/url/GURL;)Z
-HSPLorg/chromium/components/embedder_support/util/UrlUtilities;->isInternalScheme(Lorg/chromium/url/GURL;)Z
-HSPLorg/chromium/components/embedder_support/util/UrlUtilities;->isNTPUrl(Ljava/lang/String;)Z
-HSPLorg/chromium/components/embedder_support/util/UrlUtilities;->isNTPUrl(Lorg/chromium/url/GURL;)Z
-HSPLorg/chromium/components/embedder_support/util/UrlUtilities;->isSchemeHttpOrHttps(Ljava/lang/String;)Z
-Lorg/chromium/components/embedder_support/view/ContentView;
-HSPLorg/chromium/components/embedder_support/view/ContentView;-><init>(Landroid/content/Context;Lorg/chromium/content_public/browser/WebContents;)V
-HSPLorg/chromium/components/embedder_support/view/ContentView;->awakenScrollBars(IZ)Z
-HSPLorg/chromium/components/embedder_support/view/ContentView;->getAccessibilityNodeProvider()Landroid/view/accessibility/AccessibilityNodeProvider;
-HSPLorg/chromium/components/embedder_support/view/ContentView;->getViewEventSink()Lorg/chromium/content_public/browser/ViewEventSink;
-HSPLorg/chromium/components/embedder_support/view/ContentView;->hasValidWebContents()Z
-HSPLorg/chromium/components/embedder_support/view/ContentView;->onAttachedToWindow()V
-HSPLorg/chromium/components/embedder_support/view/ContentView;->onCheckIsTextEditor()Z
-HSPLorg/chromium/components/embedder_support/view/ContentView;->onCreateInputConnection(Landroid/view/inputmethod/EditorInfo;)Landroid/view/inputmethod/InputConnection;
-HSPLorg/chromium/components/embedder_support/view/ContentView;->onDetachedFromWindow()V
-HSPLorg/chromium/components/embedder_support/view/ContentView;->onFocusChanged(ZILandroid/graphics/Rect;)V
-HSPLorg/chromium/components/embedder_support/view/ContentView;->onMeasure(II)V
-HSPLorg/chromium/components/embedder_support/view/ContentView;->onScrollChanged(IIII)V
-HSPLorg/chromium/components/embedder_support/view/ContentView;->onWindowFocusChanged(Z)V
-HSPLorg/chromium/components/embedder_support/view/ContentView;->setDeferKeepScreenOnChanges(Z)V
-Lorg/chromium/components/external_intents/ExternalNavigationDelegate;
-Lorg/chromium/components/external_intents/ExternalNavigationHandler;
-HSPLorg/chromium/components/external_intents/ExternalNavigationHandler;-><init>(Lorg/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl;)V
-HSPLorg/chromium/components/external_intents/ExternalNavigationHandler;->debug()Z
-HSPLorg/chromium/components/external_intents/ExternalNavigationHandler;->handleFallbackUrl(Lorg/chromium/components/external_intents/ExternalNavigationParams;Lorg/chromium/url/GURL;Z)Lorg/chromium/components/external_intents/ExternalNavigationHandler$OverrideUrlLoadingResult;
-HSPLorg/chromium/components/external_intents/ExternalNavigationHandler;->isIncomingIntentRedirect(Lorg/chromium/components/external_intents/ExternalNavigationParams;)Z
-HSPLorg/chromium/components/external_intents/ExternalNavigationHandler;->isInternalScheme(Ljava/lang/String;)Z
-HSPLorg/chromium/components/external_intents/ExternalNavigationHandler;->sanitizeQueryIntentActivitiesIntent(Landroid/content/Intent;)V
-HSPLorg/chromium/components/external_intents/ExternalNavigationHandler;->shouldBlockAllExternalAppLaunches(Lorg/chromium/components/external_intents/ExternalNavigationParams;Z)Z
-HSPLorg/chromium/components/external_intents/ExternalNavigationHandler;->shouldOverrideUrlLoading(Lorg/chromium/components/external_intents/ExternalNavigationParams;)Lorg/chromium/components/external_intents/ExternalNavigationHandler$OverrideUrlLoadingResult;
-Lorg/chromium/components/external_intents/ExternalNavigationHandler$IntentBasedSupplier;
-HSPLorg/chromium/components/external_intents/ExternalNavigationHandler$IntentBasedSupplier;-><init>(Landroid/content/Intent;Lorg/chromium/base/supplier/Supplier;)V
-Lorg/chromium/components/external_intents/ExternalNavigationHandler$LazySupplier;
-HSPLorg/chromium/components/external_intents/ExternalNavigationHandler$LazySupplier;-><init>(Lorg/chromium/base/supplier/Supplier;)V
-Lorg/chromium/components/external_intents/ExternalNavigationHandler$OverrideUrlLoadingResult;
-HSPLorg/chromium/components/external_intents/ExternalNavigationHandler$OverrideUrlLoadingResult;-><init>(I)V
-HSPLorg/chromium/components/external_intents/ExternalNavigationHandler$OverrideUrlLoadingResult;-><init>(IZ)V
-HSPLorg/chromium/components/external_intents/ExternalNavigationHandler$OverrideUrlLoadingResult;->forNoOverride()Lorg/chromium/components/external_intents/ExternalNavigationHandler$OverrideUrlLoadingResult;
-Lorg/chromium/components/external_intents/ExternalNavigationHandler$QueryIntentActivitiesSupplier;
-HSPLorg/chromium/components/external_intents/ExternalNavigationHandler$QueryIntentActivitiesSupplier;-><init>(Landroid/content/Intent;Lorg/chromium/components/external_intents/ExternalNavigationHandler;)V
-Lorg/chromium/components/external_intents/ExternalNavigationHandler$QueryIntentActivitiesSupplier$$ExternalSyntheticLambda0;
-HSPLorg/chromium/components/external_intents/ExternalNavigationHandler$QueryIntentActivitiesSupplier$$ExternalSyntheticLambda0;-><init>(Landroid/content/Intent;Lorg/chromium/components/external_intents/ExternalNavigationHandler;)V
-Lorg/chromium/components/external_intents/ExternalNavigationHandler$QueryIntentActivitiesSupplier$QueryNonDefaultSupplier;
-HSPLorg/chromium/components/external_intents/ExternalNavigationHandler$QueryIntentActivitiesSupplier$QueryNonDefaultSupplier;-><init>(Landroid/content/Intent;)V
-Lorg/chromium/components/external_intents/ExternalNavigationHandler$ResolveActivitySupplier$$ExternalSyntheticLambda0;
-HSPLorg/chromium/components/external_intents/ExternalNavigationHandler$ResolveActivitySupplier$$ExternalSyntheticLambda0;-><init>(Landroid/content/Intent;I)V
-Lorg/chromium/components/external_intents/ExternalNavigationParams;
-HSPLorg/chromium/components/external_intents/ExternalNavigationParams;-><init>(Lorg/chromium/url/GURL;ZLorg/chromium/url/GURL;IZZLorg/chromium/components/external_intents/RedirectHandler;ZZZZZLorg/chromium/base/Callback;ZZZ)V
-Lorg/chromium/components/external_intents/InterceptNavigationDelegateClient;
-Lorg/chromium/components/external_intents/InterceptNavigationDelegateImpl;
-HSPLorg/chromium/components/external_intents/InterceptNavigationDelegateImpl;-><init>(Lorg/chromium/chrome/browser/tab/InterceptNavigationDelegateClientImpl;)V
-HSPLorg/chromium/components/external_intents/InterceptNavigationDelegateImpl;->associateWithWebContents(Lorg/chromium/content_public/browser/WebContents;)V
-HSPLorg/chromium/components/external_intents/InterceptNavigationDelegateImpl;->getLastCommittedEntryIndex()I
-HSPLorg/chromium/components/external_intents/InterceptNavigationDelegateImpl;->isTabOnInitialNavigationChain()Z
-HSPLorg/chromium/components/external_intents/InterceptNavigationDelegateImpl;->shouldIgnoreNavigation(Lorg/chromium/content_public/browser/NavigationHandle;Lorg/chromium/url/GURL;Z)Z
-HSPLorg/chromium/components/external_intents/InterceptNavigationDelegateImpl;->shouldOverrideUrlLoading(Lorg/chromium/components/external_intents/RedirectHandler;Lorg/chromium/url/GURL;IZZZLorg/chromium/url/GURL;ZZLorg/chromium/components/external_intents/InterceptNavigationDelegateImpl$$ExternalSyntheticLambda0;Z)Lorg/chromium/components/external_intents/ExternalNavigationHandler$OverrideUrlLoadingResult;
-Lorg/chromium/components/external_intents/InterceptNavigationDelegateImpl$$ExternalSyntheticLambda0;
-HSPLorg/chromium/components/external_intents/InterceptNavigationDelegateImpl$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/components/external_intents/InterceptNavigationDelegateImpl;I)V
-Lorg/chromium/components/external_intents/RedirectHandler;
-HSPLorg/chromium/components/external_intents/RedirectHandler;-><init>()V
-HSPLorg/chromium/components/external_intents/RedirectHandler;->updateNewUrlLoading(IZZJIZZ)V
-Lorg/chromium/components/external_intents/RedirectHandler$InitialNavigationState;
-HSPLorg/chromium/components/external_intents/RedirectHandler$InitialNavigationState;-><init>(ZZZZZ)V
-Lorg/chromium/components/external_intents/RedirectHandler$IntentState;
-HSPLorg/chromium/components/external_intents/RedirectHandler$IntentState;-><init>(Landroid/content/Intent;ZZZ)V
-Lorg/chromium/components/external_intents/RedirectHandler$NavigationChainState;
-HSPLorg/chromium/components/external_intents/RedirectHandler$NavigationChainState;-><init>(Lorg/chromium/components/external_intents/RedirectHandler;ZLorg/chromium/components/external_intents/RedirectHandler$InitialNavigationState;)V
-Lorg/chromium/components/externalauth/ExternalAuthGoogleDelegateImpl;
-HSPLorg/chromium/components/externalauth/ExternalAuthGoogleDelegateImpl;-><init>()V
-Lorg/chromium/components/externalauth/ExternalAuthUtils;
-HSPLorg/chromium/components/externalauth/ExternalAuthUtils;-><init>()V
-HSPLorg/chromium/components/externalauth/ExternalAuthUtils;->canUseGooglePlayServices()Z
-HSPLorg/chromium/components/externalauth/ExternalAuthUtils;->canUseGooglePlayServices(Lorg/chromium/components/externalauth/UserRecoverableErrorHandler;)Z
-HSPLorg/chromium/components/externalauth/ExternalAuthUtils;->checkGooglePlayServicesAvailable(Landroid/content/Context;)I
-PLorg/chromium/components/externalauth/ExternalAuthUtils;->isGoogleSigned()V
-Lorg/chromium/components/externalauth/UserRecoverableErrorHandler;
-HSPLorg/chromium/components/externalauth/UserRecoverableErrorHandler;-><init>()V
-Lorg/chromium/components/externalauth/UserRecoverableErrorHandler$Silent;
-HSPLorg/chromium/components/externalauth/UserRecoverableErrorHandler$Silent;-><init>()V
-Lorg/chromium/components/favicon/LargeIconBridge;
-HSPLorg/chromium/components/favicon/LargeIconBridge;-><init>(Lorg/chromium/content_public/browser/BrowserContextHandle;)V
-HSPLorg/chromium/components/favicon/LargeIconBridge;->destroy()V
-Lorg/chromium/components/favicon/LargeIconBridge$LargeIconCallback;
-Lorg/chromium/components/feature_engagement/Tracker;
-Lorg/chromium/components/feature_engagement/internal/TrackerImpl;
-HSPLorg/chromium/components/feature_engagement/internal/TrackerImpl;-><init>(J)V
-HSPLorg/chromium/components/feature_engagement/internal/TrackerImpl;->addOnInitializedCallback(Lorg/chromium/base/Callback;)V
-HSPLorg/chromium/components/feature_engagement/internal/TrackerImpl;->create(J)Lorg/chromium/components/feature_engagement/internal/TrackerImpl;
-HSPLorg/chromium/components/feature_engagement/internal/TrackerImpl;->getPendingPriorityNotification()Ljava/lang/String;
-HSPLorg/chromium/components/feature_engagement/internal/TrackerImpl;->registerPriorityNotificationHandler(Ljava/lang/String;Ljava/lang/Runnable;)V
-HSPLorg/chromium/components/feature_engagement/internal/TrackerImpl;->shouldTriggerHelpUI(Ljava/lang/String;)Z
-HSPLorg/chromium/components/feature_engagement/internal/TrackerImpl;->unregisterPriorityNotificationHandler(Ljava/lang/String;)V
-Lorg/chromium/components/gcm_driver/GCMDriver;
-HSPLorg/chromium/components/gcm_driver/GCMDriver;-><init>(J)V
-HSPLorg/chromium/components/gcm_driver/GCMDriver;->create(J)Lorg/chromium/components/gcm_driver/GCMDriver;
-HSPLorg/chromium/components/gcm_driver/GCMDriver;->replayPersistedMessages(Ljava/lang/String;)V
-Lorg/chromium/components/gcm_driver/GoogleCloudMessagingV2;
-HSPLorg/chromium/components/gcm_driver/GoogleCloudMessagingV2;-><init>()V
-Lorg/chromium/components/gcm_driver/instance_id/InstanceIDBridge;
-HSPLorg/chromium/components/gcm_driver/instance_id/InstanceIDBridge;-><init>(JLjava/lang/String;)V
-HSPLorg/chromium/components/gcm_driver/instance_id/InstanceIDBridge;->create(JLjava/lang/String;)Lorg/chromium/components/gcm_driver/instance_id/InstanceIDBridge;
-Lorg/chromium/components/image_fetcher/ImageFetcher;
-HSPLorg/chromium/components/image_fetcher/ImageFetcher;-><init>(Lorg/chromium/components/image_fetcher/ImageFetcher;)V
-HSPLorg/chromium/components/image_fetcher/ImageFetcher;-><init>(Lorg/chromium/components/image_fetcher/ImageFetcherBridge;)V
-Lorg/chromium/components/image_fetcher/ImageFetcherBridge;
-HSPLorg/chromium/components/image_fetcher/ImageFetcherBridge;-><init>(Lorg/chromium/chrome/browser/profiles/ProfileKey;)V
-Lorg/chromium/components/image_fetcher/ImageFetcherFactory;
-HSPLorg/chromium/components/image_fetcher/ImageFetcherFactory;->createImageFetcher(ILorg/chromium/components/image_fetcher/ImageFetcherBridge;Lorg/chromium/base/DiscardableReferencePool;I)Lorg/chromium/components/image_fetcher/ImageFetcher;
-Lorg/chromium/components/image_fetcher/InMemoryCachedImageFetcher;
-HSPLorg/chromium/components/image_fetcher/InMemoryCachedImageFetcher;-><init>(Lorg/chromium/components/image_fetcher/ImageFetcher;Lorg/chromium/base/DiscardableReferencePool;I)V
-HSPLorg/chromium/components/image_fetcher/InMemoryCachedImageFetcher;->destroy()V
-Lorg/chromium/components/image_fetcher/NetworkImageFetcher;
-HSPLorg/chromium/components/image_fetcher/NetworkImageFetcher;-><init>(Lorg/chromium/components/image_fetcher/ImageFetcherBridge;)V
-HSPLorg/chromium/components/image_fetcher/NetworkImageFetcher;->destroy()V
-HSPLorg/chromium/components/image_fetcher/NetworkImageFetcher;->getConfig()I
-Lorg/chromium/components/infobars/InfoBar$Container;
-Lorg/chromium/components/infobars/InfoBarAnimationListener;
-Lorg/chromium/components/infobars/InfoBarContainerLayout;
-HSPLorg/chromium/components/infobars/InfoBarContainerLayout;-><init>(Landroid/content/Context;Lorg/chromium/chrome/browser/infobar/InfoBarContainerView$$ExternalSyntheticLambda0;Lorg/chromium/chrome/browser/infobar/InfoBarContainerView$1;)V
-HSPLorg/chromium/components/infobars/InfoBarContainerLayout;->onLayout(ZIIII)V
-HSPLorg/chromium/components/infobars/InfoBarContainerLayout;->onMeasure(II)V
-Lorg/chromium/components/infobars/InfoBarContainerLayout$FloatingBehavior;
-HSPLorg/chromium/components/infobars/InfoBarContainerLayout$FloatingBehavior;-><init>(Landroid/widget/FrameLayout;)V
-HSPLorg/chromium/components/infobars/InfoBarContainerLayout$FloatingBehavior;->updateShadowPosition()V
-Lorg/chromium/components/media_router/BrowserMediaRouter;
-HSPLorg/chromium/components/media_router/BrowserMediaRouter;-><init>(J)V
-HSPLorg/chromium/components/media_router/BrowserMediaRouter;->create(J)Lorg/chromium/components/media_router/BrowserMediaRouter;
-HSPLorg/chromium/components/media_router/BrowserMediaRouter;->getAndroidMediaRouter()Landroidx/mediarouter/media/MediaRouter;
-Lorg/chromium/components/media_router/DiscoveryDelegate;
-Lorg/chromium/components/media_router/MediaRouteManager;
-Lorg/chromium/components/media_router/MediaRouteProvider;
-Lorg/chromium/components/media_router/caf/BaseNotificationController;
-HSPLorg/chromium/components/media_router/caf/BaseNotificationController;-><init>(Lorg/chromium/components/media_router/caf/BaseSessionController;)V
-Lorg/chromium/components/media_router/caf/BaseSessionController;
-HSPLorg/chromium/components/media_router/caf/BaseSessionController;-><init>(Lorg/chromium/components/media_router/caf/CafBaseMediaRouteProvider;)V
-Lorg/chromium/components/media_router/caf/BaseSessionController$Callback;
-Lorg/chromium/components/media_router/caf/BaseSessionController$RemoteMediaClientCallback;
-HSPLorg/chromium/components/media_router/caf/BaseSessionController$RemoteMediaClientCallback;-><init>(Lorg/chromium/components/media_router/caf/BaseSessionController;)V
-Lorg/chromium/components/media_router/caf/CafBaseMediaRouteProvider;
-HSPLorg/chromium/components/media_router/caf/CafBaseMediaRouteProvider;-><init>(Landroidx/mediarouter/media/MediaRouter;Lorg/chromium/components/media_router/BrowserMediaRouter;)V
-Lorg/chromium/components/media_router/caf/CafMediaRouteProvider;
-HSPLorg/chromium/components/media_router/caf/CafMediaRouteProvider;-><init>(Landroidx/mediarouter/media/MediaRouter;Lorg/chromium/components/media_router/BrowserMediaRouter;)V
-Lorg/chromium/components/media_router/caf/CafMessageHandler;
-HSPLorg/chromium/components/media_router/caf/CafMessageHandler;-><init>(Lorg/chromium/components/media_router/caf/CafMediaRouteProvider;Lorg/chromium/components/media_router/caf/CastSessionController;)V
-Lorg/chromium/components/media_router/caf/CafNotificationController;
-HSPLorg/chromium/components/media_router/caf/CafNotificationController;-><init>(Lorg/chromium/components/media_router/caf/BaseSessionController;)V
-Lorg/chromium/components/media_router/caf/CastSessionController;
-HSPLorg/chromium/components/media_router/caf/CastSessionController;-><init>(Lorg/chromium/components/media_router/caf/CafBaseMediaRouteProvider;)V
-Lorg/chromium/components/media_router/caf/CastSessionController$CastListener;
-HSPLorg/chromium/components/media_router/caf/CastSessionController$CastListener;-><init>(Lorg/chromium/components/media_router/caf/CastSessionController;)V
-Lorg/chromium/components/media_router/caf/remoting/CafRemotingMediaRouteProvider;
-HSPLorg/chromium/components/media_router/caf/remoting/CafRemotingMediaRouteProvider;-><init>(Landroidx/mediarouter/media/MediaRouter;Lorg/chromium/components/media_router/BrowserMediaRouter;)V
-Lorg/chromium/components/media_router/caf/remoting/RemotingNotificationController;
-HSPLorg/chromium/components/media_router/caf/remoting/RemotingNotificationController;-><init>(Lorg/chromium/components/media_router/caf/BaseSessionController;)V
-Lorg/chromium/components/media_router/caf/remoting/RemotingSessionController;
-HSPLorg/chromium/components/media_router/caf/remoting/RemotingSessionController;-><init>(Lorg/chromium/components/media_router/caf/CafBaseMediaRouteProvider;)V
-Lorg/chromium/components/messages/ManagedMessageDispatcher;
-Lorg/chromium/components/messages/MessageAnimationCoordinator;
-HSPLorg/chromium/components/messages/MessageAnimationCoordinator;-><init>(Lorg/chromium/components/messages/MessageContainer;Lorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda0;)V
-Lorg/chromium/components/messages/MessageContainer;
-HSPLorg/chromium/components/messages/MessageContainer;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/components/messages/MessageContainer;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V
-Lorg/chromium/components/messages/MessageContainer$$ExternalSyntheticLambda0;
-HSPLorg/chromium/components/messages/MessageContainer$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/components/messages/MessageContainer;)V
-Lorg/chromium/components/messages/MessageContainer$MessageContainerA11yDelegateProxy;
-HSPLorg/chromium/components/messages/MessageContainer$MessageContainerA11yDelegateProxy;-><init>(Lorg/chromium/components/messages/MessageContainer;)V
-Lorg/chromium/components/messages/MessageDispatcher;
-Lorg/chromium/components/messages/MessageDispatcherImpl;
-HSPLorg/chromium/components/messages/MessageDispatcherImpl;-><init>(Lorg/chromium/components/messages/MessageContainer;Lorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda1;Lorg/chromium/chrome/browser/messages/ChromeMessageAutodismissDurationProvider;Lorg/chromium/chrome/browser/ui/RootUiCoordinator$$ExternalSyntheticLambda0;Lorg/chromium/ui/base/ActivityWindowAndroid;)V
-Lorg/chromium/components/messages/MessageDispatcherProvider;
-HSPLorg/chromium/components/messages/MessageDispatcherProvider;->from(Lorg/chromium/ui/base/WindowAndroid;)Lorg/chromium/components/messages/MessageDispatcher;
-Lorg/chromium/components/messages/MessageQueueDelegate;
-Lorg/chromium/components/messages/MessageQueueManager;
-HSPLorg/chromium/components/messages/MessageQueueManager;-><init>(Lorg/chromium/components/messages/MessageAnimationCoordinator;)V
-HSPLorg/chromium/components/messages/MessageQueueManager;->getNextMessages()Ljava/util/List;
-HSPLorg/chromium/components/messages/MessageQueueManager;->updateCurrentDisplayedMessages()V
-HSPLorg/chromium/components/messages/MessageQueueManager;->updateCurrentDisplayedWithoutStacking()Lorg/chromium/components/messages/MessageQueueManager$MessageState;
-Lorg/chromium/components/messages/MessageQueueManager$$ExternalSyntheticLambda0;
-HSPLorg/chromium/components/messages/MessageQueueManager$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/components/messages/MessageQueueManager;I)V
-HSPLorg/chromium/components/messages/MessageQueueManager$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/components/messages/MessageQueueManager$MessageState;
-Lorg/chromium/components/messages/ScopeChangeController;
-HSPLorg/chromium/components/messages/ScopeChangeController;-><init>(Lorg/chromium/components/messages/ScopeChangeController$Delegate;)V
-Lorg/chromium/components/messages/ScopeChangeController$Delegate;
-Lorg/chromium/components/messages/SwipeAnimationHandler;
-Lorg/chromium/components/metrics/LowEntropySource;
-HSPLorg/chromium/components/metrics/LowEntropySource;->generateLowEntropySource()I
-HSPLorg/chromium/components/metrics/LowEntropySource;->generatePseudoLowEntropySource()I
-Lorg/chromium/components/metrics/LowEntropySource$LazyHolder;
-Lorg/chromium/components/metrics/LowEntropySource$LazyHolderForPseudo;
-Lorg/chromium/components/minidump_uploader/CrashFileManager;
-HSPLorg/chromium/components/minidump_uploader/CrashFileManager;-><init>(Ljava/io/File;)V
-HSPLorg/chromium/components/minidump_uploader/CrashFileManager;->cleanOutAllNonFreshMinidumpFiles()V
-HSPLorg/chromium/components/minidump_uploader/CrashFileManager;->getCrashDirectory()Ljava/io/File;
-HSPLorg/chromium/components/minidump_uploader/CrashFileManager;->getMinidumpsReadyForUpload()[Ljava/io/File;
-HSPLorg/chromium/components/minidump_uploader/CrashFileManager;->importCrashpadMinidumps()V
-HSPLorg/chromium/components/minidump_uploader/CrashFileManager;->listCrashFiles(Ljava/util/regex/Pattern;)[Ljava/io/File;
-Lorg/chromium/components/minidump_uploader/CrashFileManager$1;
-HSPLorg/chromium/components/minidump_uploader/CrashFileManager$1;-><init>()V
-Lorg/chromium/components/minidump_uploader/CrashFileManager$2;
-HSPLorg/chromium/components/minidump_uploader/CrashFileManager$2;-><init>(Ljava/util/regex/Pattern;)V
-Lorg/chromium/components/minidump_uploader/util/CrashReportingPermissionManager;
-HSPLorg/chromium/components/minidump_uploader/util/CrashReportingPermissionManager;->isUsageAndCrashReportingPermitted()Z
-Lorg/chromium/components/module_installer/builder/Module;
-HSPLorg/chromium/components/module_installer/builder/Module;-><init>(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;)V
-HSPLorg/chromium/components/module_installer/builder/Module;->getImpl()Ljava/lang/Object;
-HSPLorg/chromium/components/module_installer/builder/Module;->getInstallEngine()Lorg/chromium/components/module_installer/engine/InstallEngine;
-HSPLorg/chromium/components/module_installer/builder/Module;->isInstalled()Z
-Lorg/chromium/components/module_installer/builder/ModuleEngine;
-HSPLorg/chromium/components/module_installer/builder/ModuleEngine;-><init>(Ljava/lang/String;)V
-HSPLorg/chromium/components/module_installer/builder/ModuleEngine;->isInstalled(Ljava/lang/String;)Z
-Lorg/chromium/components/module_installer/engine/EngineFactory;
-HSPLorg/chromium/components/module_installer/engine/EngineFactory;-><init>()V
-Lorg/chromium/components/module_installer/engine/InstallEngine;
-Lorg/chromium/components/module_installer/util/Timer;
-HSPLorg/chromium/components/module_installer/util/Timer;-><init>()V
-HSPLorg/chromium/components/module_installer/util/Timer;->close()V
-Lorg/chromium/components/navigation_interception/InterceptNavigationDelegate;
-HSPLorg/chromium/components/navigation_interception/InterceptNavigationDelegate;-><init>()V
-Lorg/chromium/components/offline_items_collection/OfflineContentAggregatorBridge;
-HSPLorg/chromium/components/offline_items_collection/OfflineContentAggregatorBridge;-><init>(J)V
-HSPLorg/chromium/components/offline_items_collection/OfflineContentAggregatorBridge;->create(J)Lorg/chromium/components/offline_items_collection/OfflineContentAggregatorBridge;
-Lorg/chromium/components/offline_items_collection/OfflineContentProvider$Observer;
-Lorg/chromium/components/offline_items_collection/OfflineItemVisuals;
-HSPLorg/chromium/components/offline_items_collection/OfflineItemVisuals;-><init>()V
-Lorg/chromium/components/offline_items_collection/VisualsCallback;
-PLorg/chromium/components/offline_items_collection/bridges/OfflineItemBridge;->createArrayList()Ljava/util/ArrayList;
-Lorg/chromium/components/omnibox/AutocompleteMatch;
-Lorg/chromium/components/omnibox/AutocompleteResult;
-HSPLorg/chromium/components/omnibox/AutocompleteResult;-><init>(JLjava/util/List;Lorg/chromium/components/omnibox/GroupsProto$GroupsInfo;)V
-Lorg/chromium/components/omnibox/AutocompleteSchemeClassifier;
-HSPLorg/chromium/components/omnibox/AutocompleteSchemeClassifier;-><init>(J)V
-HSPLorg/chromium/components/omnibox/AutocompleteSchemeClassifier;->getNativePtr()J
-Lorg/chromium/components/omnibox/GroupsProto$GroupConfig;
-HSPLorg/chromium/components/omnibox/GroupsProto$GroupConfig;-><init>()V
-Lorg/chromium/components/omnibox/GroupsProto$GroupsInfo;
-HSPLorg/chromium/components/omnibox/GroupsProto$GroupsInfo;-><init>()V
-HSPLorg/chromium/components/omnibox/GroupsProto$GroupsInfo;->dynamicMethod(Lcom/google/protobuf/GeneratedMessageLite$MethodToInvoke;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-Lorg/chromium/components/omnibox/GroupsProto$GroupsInfo$Builder;
-HSPLorg/chromium/components/omnibox/GroupsProto$GroupsInfo$Builder;-><init>(I)V
-Lorg/chromium/components/omnibox/GroupsProto$GroupsInfo$GroupConfigsDefaultEntryHolder;
-Lorg/chromium/components/omnibox/OmniboxUrlEmphasizer;
-HSPLorg/chromium/components/omnibox/OmniboxUrlEmphasizer;->emphasizeUrl(Landroid/text/Spannable;Lorg/chromium/components/omnibox/AutocompleteSchemeClassifier;IZIIII)V
-HSPLorg/chromium/components/omnibox/OmniboxUrlEmphasizer;->parseForEmphasizeComponents(Ljava/lang/String;Lorg/chromium/components/omnibox/AutocompleteSchemeClassifier;)Lorg/chromium/components/omnibox/OmniboxUrlEmphasizer$EmphasizeComponentsResponse;
-Lorg/chromium/components/omnibox/OmniboxUrlEmphasizer$EmphasizeComponentsResponse;
-HSPLorg/chromium/components/omnibox/OmniboxUrlEmphasizer$EmphasizeComponentsResponse;-><init>(IIII)V
-HSPLorg/chromium/components/omnibox/OmniboxUrlEmphasizer$EmphasizeComponentsResponse;->extractScheme(Ljava/lang/String;)Ljava/lang/String;
-Lorg/chromium/components/omnibox/OmniboxUrlEmphasizer$UrlEmphasisColorSpan;
-HSPLorg/chromium/components/omnibox/OmniboxUrlEmphasizer$UrlEmphasisColorSpan;-><init>(I)V
-Lorg/chromium/components/omnibox/OmniboxUrlEmphasizer$UrlEmphasisSpan;
-Lorg/chromium/components/omnibox/SecurityStatusIcon;
-HSPLorg/chromium/components/omnibox/SecurityStatusIcon;->getSecurityIconResource(IZZZ)I
-Lorg/chromium/components/omnibox/action/OmniboxPedal;
-HSPLorg/chromium/components/omnibox/action/OmniboxPedal;-><init>(ILjava/lang/String;)V
-HSPLorg/chromium/components/omnibox/action/OmniboxPedal;->build(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/chromium/url/GURL;)Lorg/chromium/components/omnibox/action/OmniboxPedal;
-Lorg/chromium/components/page_info/PageInfoDiscoverabilityMetrics;
-HSPLorg/chromium/components/page_info/PageInfoDiscoverabilityMetrics;-><init>()V
-Lorg/chromium/components/paintpreview/browser/NativePaintPreviewServiceProvider;
-Lorg/chromium/components/permissions/AndroidPermissionRequester$RequestDelegate;
-Lorg/chromium/components/permissions/PermissionDialogController;
-HSPLorg/chromium/components/permissions/PermissionDialogController;-><init>()V
-Lorg/chromium/components/permissions/PermissionDialogController$Holder;
-Lorg/chromium/components/permissions/PermissionDialogController$Observer;
-Lorg/chromium/components/policy/AbstractAppRestrictionsProvider$1;
-HSPLorg/chromium/components/policy/AbstractAppRestrictionsProvider$1;-><init>(Lorg/chromium/components/policy/AppRestrictionsProvider;)V
-Lorg/chromium/components/policy/AppRestrictionsProvider;
-HSPLorg/chromium/components/policy/AppRestrictionsProvider;-><init>(Landroid/content/Context;)V
-HSPLorg/chromium/components/policy/AppRestrictionsProvider;->refresh()V
-HSPLorg/chromium/components/policy/AppRestrictionsProvider;->startListeningForPolicyChanges()V
-Lorg/chromium/components/policy/CombinedPolicyProvider;
-HSPLorg/chromium/components/policy/CombinedPolicyProvider;-><init>()V
-HSPLorg/chromium/components/policy/CombinedPolicyProvider;->get()Lorg/chromium/components/policy/CombinedPolicyProvider;
-HSPLorg/chromium/components/policy/CombinedPolicyProvider;->linkNative(JLorg/chromium/components/policy/PolicyConverter;)Lorg/chromium/components/policy/CombinedPolicyProvider;
-HSPLorg/chromium/components/policy/CombinedPolicyProvider;->refreshPolicies()V
-Lorg/chromium/components/policy/PolicyCache;
-HSPLorg/chromium/components/policy/PolicyCache;-><init>()V
-Lorg/chromium/components/policy/PolicyCache$Type;
-HSPLorg/chromium/components/policy/PolicyCache$Type;-><init>(ILjava/lang/String;)V
-Lorg/chromium/components/policy/PolicyCacheProvider;
-HSPLorg/chromium/components/policy/PolicyCacheProvider;-><init>()V
-HSPLorg/chromium/components/policy/PolicyCacheProvider;->refresh()V
-Lorg/chromium/components/policy/PolicyCacheUpdater;
-HSPLorg/chromium/components/policy/PolicyCacheUpdater;->cachePolicies(Lorg/chromium/components/policy/PolicyMap;)V
-Lorg/chromium/components/policy/PolicyConverter;
-HSPLorg/chromium/components/policy/PolicyConverter;-><init>(J)V
-HSPLorg/chromium/components/policy/PolicyConverter;->create(J)Lorg/chromium/components/policy/PolicyConverter;
-Lorg/chromium/components/policy/PolicyMap;
-HSPLorg/chromium/components/policy/PolicyMap;-><init>(J)V
-Lorg/chromium/components/policy/PolicyProvider;
-HSPLorg/chromium/components/policy/PolicyProvider;-><init>()V
-HSPLorg/chromium/components/policy/PolicyProvider;->notifySettingsAvailable(Landroid/os/Bundle;)V
-Lorg/chromium/components/policy/PolicyService;
-HSPLorg/chromium/components/policy/PolicyService;-><init>(J)V
-Lorg/chromium/components/policy/PolicyService$Observer;
-Lorg/chromium/components/prefs/PrefService;
-HSPLorg/chromium/components/prefs/PrefService;-><init>(J)V
-HSPLorg/chromium/components/prefs/PrefService;->create(J)Lorg/chromium/components/prefs/PrefService;
-HSPLorg/chromium/components/prefs/PrefService;->getBoolean(Ljava/lang/String;)Z
-HSPLorg/chromium/components/prefs/PrefService;->getString(Ljava/lang/String;)Ljava/lang/String;
-HSPLorg/chromium/components/prefs/PrefService;->isManagedPreference(Ljava/lang/String;)Z
-HSPLorg/chromium/components/prefs/PrefService;->setBoolean(Ljava/lang/String;Z)V
-Lorg/chromium/components/safe_browsing/SafeBrowsingApiBridge;
-HSPLorg/chromium/components/safe_browsing/SafeBrowsingApiBridge;->ensureInitialized()Z
-HSPLorg/chromium/components/safe_browsing/SafeBrowsingApiBridge;->getHandler()V
-Lorg/chromium/components/search_engines/TemplateUrl;
-HSPLorg/chromium/components/search_engines/TemplateUrl;-><init>(J)V
-HSPLorg/chromium/components/search_engines/TemplateUrl;->create(J)Lorg/chromium/components/search_engines/TemplateUrl;
-HSPLorg/chromium/components/search_engines/TemplateUrl;->getKeyword()Ljava/lang/String;
-HSPLorg/chromium/components/search_engines/TemplateUrl;->getShortName()Ljava/lang/String;
-Lorg/chromium/components/search_engines/TemplateUrlService;
-HSPLorg/chromium/components/search_engines/TemplateUrlService;-><init>(J)V
-HSPLorg/chromium/components/search_engines/TemplateUrlService;->addObserver(Lorg/chromium/components/search_engines/TemplateUrlService$TemplateUrlServiceObserver;)V
-HSPLorg/chromium/components/search_engines/TemplateUrlService;->create(J)Lorg/chromium/components/search_engines/TemplateUrlService;
-HSPLorg/chromium/components/search_engines/TemplateUrlService;->doesDefaultSearchEngineHaveLogo()Z
-HSPLorg/chromium/components/search_engines/TemplateUrlService;->getDefaultSearchEngineTemplateUrl()Lorg/chromium/components/search_engines/TemplateUrl;
-HSPLorg/chromium/components/search_engines/TemplateUrlService;->isDefaultSearchEngineGoogle()Z
-HSPLorg/chromium/components/search_engines/TemplateUrlService;->isLoaded()Z
-HSPLorg/chromium/components/search_engines/TemplateUrlService;->onTemplateURLServiceChanged()V
-HSPLorg/chromium/components/search_engines/TemplateUrlService;->registerLoadListener(Lorg/chromium/components/search_engines/TemplateUrlService$LoadListener;)V
-HSPLorg/chromium/components/search_engines/TemplateUrlService;->removeObserver(Lorg/chromium/components/search_engines/TemplateUrlService$TemplateUrlServiceObserver;)V
-HSPLorg/chromium/components/search_engines/TemplateUrlService;->runWhenLoaded(Ljava/lang/Runnable;)V
-HSPLorg/chromium/components/search_engines/TemplateUrlService;->templateUrlServiceLoaded()V
-Lorg/chromium/components/search_engines/TemplateUrlService$LoadListener;
-Lorg/chromium/components/search_engines/TemplateUrlService$TemplateUrlServiceObserver;
-Lorg/chromium/components/security_state/SecurityStateModel;
-HSPLorg/chromium/components/security_state/SecurityStateModel;->getSecurityLevelForWebContents(Lorg/chromium/content_public/browser/WebContents;)I
-Lorg/chromium/components/segmentation_platform/SegmentSelectionResult;
-HSPLorg/chromium/components/segmentation_platform/SegmentSelectionResult;-><init>(ZILjava/lang/Float;)V
-Lorg/chromium/components/segmentation_platform/SegmentationPlatformConversionBridge;
-HSPLorg/chromium/components/segmentation_platform/SegmentationPlatformConversionBridge;->createSegmentSelectionResult(ZIZF)Lorg/chromium/components/segmentation_platform/SegmentSelectionResult;
-Lorg/chromium/components/segmentation_platform/SegmentationPlatformServiceImpl;
-HSPLorg/chromium/components/segmentation_platform/SegmentationPlatformServiceImpl;-><init>(J)V
-HSPLorg/chromium/components/segmentation_platform/SegmentationPlatformServiceImpl;->create(J)Lorg/chromium/components/segmentation_platform/SegmentationPlatformServiceImpl;
-Lorg/chromium/components/signin/AccountManagerDelegate;
-Lorg/chromium/components/signin/AccountManagerFacade;
-Lorg/chromium/components/signin/AccountManagerFacadeImpl;
-HSPLorg/chromium/components/signin/AccountManagerFacadeImpl;-><init>(Lorg/chromium/components/signin/SystemAccountManagerDelegate;)V
-HSPLorg/chromium/components/signin/AccountManagerFacadeImpl;->addObserver(Lorg/chromium/components/signin/AccountsChangeObserver;)V
-HSPLorg/chromium/components/signin/AccountManagerFacadeImpl;->getAccounts()Lorg/chromium/base/Promise;
-HSPLorg/chromium/components/signin/AccountManagerFacadeImpl;->removeObserver(Lorg/chromium/components/signin/AccountsChangeObserver;)V
-HSPLorg/chromium/components/signin/AccountManagerFacadeImpl;->updateAccounts()V
-Lorg/chromium/components/signin/AccountManagerFacadeImpl$$ExternalSyntheticLambda0;
-HSPLorg/chromium/components/signin/AccountManagerFacadeImpl$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/components/signin/AccountManagerFacadeImpl;)V
-Lorg/chromium/components/signin/AccountManagerFacadeImpl$$ExternalSyntheticLambda1;
-HSPLorg/chromium/components/signin/AccountManagerFacadeImpl$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/components/signin/AccountManagerFacadeImpl;I)V
-HSPLorg/chromium/components/signin/AccountManagerFacadeImpl$$ExternalSyntheticLambda1;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/components/signin/AccountManagerFacadeImpl$$ExternalSyntheticLambda2;
-HSPLorg/chromium/components/signin/AccountManagerFacadeImpl$$ExternalSyntheticLambda2;-><init>()V
-HSPLorg/chromium/components/signin/AccountManagerFacadeImpl$$ExternalSyntheticLambda2;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/components/signin/AccountManagerFacadeImpl$3;
-HSPLorg/chromium/components/signin/AccountManagerFacadeImpl$3;-><init>(Lorg/chromium/components/signin/AccountManagerFacadeImpl;Ljava/util/ArrayList;)V
-HSPLorg/chromium/components/signin/AccountManagerFacadeImpl$3;->doInBackground()Ljava/lang/Object;
-HSPLorg/chromium/components/signin/AccountManagerFacadeImpl$3;->onPostExecute(Ljava/lang/Object;)V
-Lorg/chromium/components/signin/AccountManagerFacadeImpl$4;
-HSPLorg/chromium/components/signin/AccountManagerFacadeImpl$4;-><init>(Lorg/chromium/components/signin/AccountManagerFacadeImpl;)V
-HSPLorg/chromium/components/signin/AccountManagerFacadeImpl$4;->doInBackground()Ljava/lang/Object;
-HSPLorg/chromium/components/signin/AccountManagerFacadeImpl$4;->onPostExecute(Ljava/lang/Object;)V
-Lorg/chromium/components/signin/AccountManagerFacadeProvider;
-HSPLorg/chromium/components/signin/AccountManagerFacadeProvider;->getInstance()Lorg/chromium/components/signin/AccountManagerFacade;
-Lorg/chromium/components/signin/AccountRestrictionPatternReceiver;
-HSPLorg/chromium/components/signin/AccountRestrictionPatternReceiver;-><init>(Lorg/chromium/components/signin/AccountManagerFacadeImpl$$ExternalSyntheticLambda1;)V
-Lorg/chromium/components/signin/AccountRestrictionPatternReceiver$1;
-HSPLorg/chromium/components/signin/AccountRestrictionPatternReceiver$1;-><init>(Lorg/chromium/components/signin/AccountRestrictionPatternReceiver;Lorg/chromium/components/signin/AccountManagerFacadeImpl$$ExternalSyntheticLambda1;)V
-Lorg/chromium/components/signin/AccountRestrictionPatternReceiver$2;
-HSPLorg/chromium/components/signin/AccountRestrictionPatternReceiver$2;-><init>(Lorg/chromium/components/signin/AccountRestrictionPatternReceiver;Lorg/chromium/base/Promise;)V
-HSPLorg/chromium/components/signin/AccountRestrictionPatternReceiver$2;->doInBackground()Ljava/lang/Object;
-HSPLorg/chromium/components/signin/AccountRestrictionPatternReceiver$2;->onPostExecute(Ljava/lang/Object;)V
-Lorg/chromium/components/signin/AccountUtils;
-PLorg/chromium/components/signin/AccountUtils;->checkChildAccountStatus(Lorg/chromium/components/signin/AccountManagerFacade;Ljava/util/List;Lorg/chromium/components/signin/AccountManagerFacade$ChildAccountStatusListener;)V
-HSPLorg/chromium/components/signin/AccountUtils;->getAccountsIfFulfilledOrEmpty(Lorg/chromium/base/Promise;)Ljava/util/List;
-HSPLorg/chromium/components/signin/AccountUtils;->toAccountNames(Ljava/util/List;)Ljava/util/ArrayList;
-Lorg/chromium/components/signin/AccountsChangeObserver;
-HSPLorg/chromium/components/signin/AccountsChangeObserver;->onCoreAccountInfosChanged()V
-Lorg/chromium/components/signin/PatternMatcher$IllegalPatternException;
-Lorg/chromium/components/signin/SystemAccountManagerDelegate;
-HSPLorg/chromium/components/signin/SystemAccountManagerDelegate;-><init>()V
-Lorg/chromium/components/signin/SystemAccountManagerDelegate$1;
-HSPLorg/chromium/components/signin/SystemAccountManagerDelegate$1;-><init>(Lorg/chromium/components/signin/SystemAccountManagerDelegate;)V
-Lorg/chromium/components/signin/base/CoreAccountInfo;
-Lorg/chromium/components/signin/identitymanager/AccountInfoServiceImpl;
-HSPLorg/chromium/components/signin/identitymanager/AccountInfoServiceImpl;-><init>(Lorg/chromium/components/signin/identitymanager/IdentityManager;Lorg/chromium/components/signin/identitymanager/AccountTrackerService;)V
-HSPLorg/chromium/components/signin/identitymanager/AccountInfoServiceImpl;->onAccountsSeeded(Ljava/util/List;Z)V
-Lorg/chromium/components/signin/identitymanager/AccountInfoServiceProvider;
-Lorg/chromium/components/signin/identitymanager/AccountTrackerService;
-HSPLorg/chromium/components/signin/identitymanager/AccountTrackerService;-><init>(J)V
-HSPLorg/chromium/components/signin/identitymanager/AccountTrackerService;->finishSeedingAccounts(Ljava/util/List;Z)V
-HSPLorg/chromium/components/signin/identitymanager/AccountTrackerService;->onCoreAccountInfosChanged()V
-HSPLorg/chromium/components/signin/identitymanager/AccountTrackerService;->seedAccounts(Z)V
-HSPLorg/chromium/components/signin/identitymanager/AccountTrackerService;->seedAccountsIfNeeded(Ljava/lang/Runnable;)V
-Lorg/chromium/components/signin/identitymanager/AccountTrackerService$$ExternalSyntheticLambda1;
-HSPLorg/chromium/components/signin/identitymanager/AccountTrackerService$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/components/signin/identitymanager/AccountTrackerService;Lorg/chromium/components/signin/AccountManagerFacade;Z)V
-HSPLorg/chromium/components/signin/identitymanager/AccountTrackerService$$ExternalSyntheticLambda1;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/components/signin/identitymanager/AccountTrackerService$1;
-HSPLorg/chromium/components/signin/identitymanager/AccountTrackerService$1;-><init>(Ljava/util/ArrayList;Lorg/chromium/components/signin/AccountManagerFacade;Lorg/chromium/components/signin/identitymanager/AccountTrackerService;Z)V
-HSPLorg/chromium/components/signin/identitymanager/AccountTrackerService$1;->doInBackground()Ljava/lang/Object;
-HSPLorg/chromium/components/signin/identitymanager/AccountTrackerService$1;->onPostExecute(Ljava/lang/Object;)V
-Lorg/chromium/components/signin/identitymanager/AccountTrackerService$Observer;
-Lorg/chromium/components/signin/identitymanager/IdentityManager;
-HSPLorg/chromium/components/signin/identitymanager/IdentityManager;-><init>(J)V
-HSPLorg/chromium/components/signin/identitymanager/IdentityManager;->addObserver(Lorg/chromium/components/signin/identitymanager/IdentityManager$Observer;)V
-HSPLorg/chromium/components/signin/identitymanager/IdentityManager;->create(JLorg/chromium/components/signin/identitymanager/ProfileOAuth2TokenServiceDelegate;)Lorg/chromium/components/signin/identitymanager/IdentityManager;
-HSPLorg/chromium/components/signin/identitymanager/IdentityManager;->getPrimaryAccountInfo(I)Lorg/chromium/components/signin/base/CoreAccountInfo;
-PLorg/chromium/components/signin/identitymanager/IdentityManager;->hasPrimaryAccount(I)Z
-HSPLorg/chromium/components/signin/identitymanager/IdentityManager;->removeObserver(Lorg/chromium/components/signin/identitymanager/IdentityManager$Observer;)V
-Lorg/chromium/components/signin/identitymanager/IdentityManager$Observer;
-Lorg/chromium/components/signin/identitymanager/IdentityMutator;
-HSPLorg/chromium/components/signin/identitymanager/IdentityMutator;-><init>(J)V
-Lorg/chromium/components/signin/identitymanager/ProfileOAuth2TokenServiceDelegate;
-HSPLorg/chromium/components/signin/identitymanager/ProfileOAuth2TokenServiceDelegate;-><init>(JLorg/chromium/components/signin/identitymanager/AccountTrackerService;)V
-HSPLorg/chromium/components/signin/identitymanager/ProfileOAuth2TokenServiceDelegate;->seedAndReloadAccountsWithPrimaryAccount(Ljava/lang/String;)V
-Lorg/chromium/components/signin/identitymanager/ProfileOAuth2TokenServiceDelegate$$ExternalSyntheticLambda1;
-HSPLorg/chromium/components/signin/identitymanager/ProfileOAuth2TokenServiceDelegate$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/components/signin/identitymanager/ProfileOAuth2TokenServiceDelegate;Ljava/lang/String;)V
-HSPLorg/chromium/components/signin/identitymanager/ProfileOAuth2TokenServiceDelegate$$ExternalSyntheticLambda1;->run()V
-Lorg/chromium/components/strictmode/ReflectiveThreadStrictModeInterceptor;
-HSPLorg/chromium/components/strictmode/ReflectiveThreadStrictModeInterceptor;-><init>(Ljava/util/ArrayList;Ljava/util/function/Consumer;)V
-Lorg/chromium/components/strictmode/ReflectiveThreadStrictModeInterceptor$1;
-HSPLorg/chromium/components/strictmode/ReflectiveThreadStrictModeInterceptor$1;-><init>(Lorg/chromium/components/strictmode/ReflectiveThreadStrictModeInterceptor;)V
-Lorg/chromium/components/strictmode/ThreadStrictModeInterceptor$Builder;
-HSPLorg/chromium/components/strictmode/ThreadStrictModeInterceptor$Builder;-><init>()V
-HSPLorg/chromium/components/strictmode/ThreadStrictModeInterceptor$Builder;->ignoreExternalMethod(ILjava/lang/String;)V
-Lorg/chromium/components/strictmode/ThreadStrictModeInterceptor$Builder$$ExternalSyntheticLambda0;
-HSPLorg/chromium/components/strictmode/ThreadStrictModeInterceptor$Builder$$ExternalSyntheticLambda0;-><init>()V
-Lorg/chromium/components/strictmode/ThreadStrictModeInterceptor$Builder$$ExternalSyntheticLambda1;
-HSPLorg/chromium/components/strictmode/ThreadStrictModeInterceptor$Builder$$ExternalSyntheticLambda1;-><init>(IILjava/lang/String;)V
-Lorg/chromium/components/strictmode/ThreadStrictModeInterceptor$Builder$$ExternalSyntheticLambda3;
-HSPLorg/chromium/components/strictmode/ThreadStrictModeInterceptor$Builder$$ExternalSyntheticLambda3;-><init>(ILjava/lang/String;Ljava/lang/String;)V
-Lorg/chromium/components/stylus_handwriting/DirectWritingSettingsHelper;
-HSPLorg/chromium/components/stylus_handwriting/DirectWritingSettingsHelper;->isEnabled(Landroid/content/Context;)Z
-Lorg/chromium/components/stylus_handwriting/DisabledStylusWritingHandler;
-HSPLorg/chromium/components/stylus_handwriting/DisabledStylusWritingHandler;-><init>()V
-HSPLorg/chromium/components/stylus_handwriting/DisabledStylusWritingHandler;->onWebContentsChanged(Landroid/content/Context;Lorg/chromium/content_public/browser/WebContents;)V
-HSPLorg/chromium/components/stylus_handwriting/DisabledStylusWritingHandler;->onWindowFocusChanged(Landroid/content/Context;Z)V
-Lorg/chromium/components/stylus_handwriting/StylusApiOption;
-HSPLorg/chromium/components/stylus_handwriting/StylusApiOption;->getStylusWritingCursorHandler()Lorg/chromium/ui/base/ViewAndroidDelegate$StylusWritingCursorHandler;
-Lorg/chromium/components/stylus_handwriting/StylusWritingController;
-HSPLorg/chromium/components/stylus_handwriting/StylusWritingController;-><init>(Landroid/content/Context;)V
-HSPLorg/chromium/components/stylus_handwriting/StylusWritingController;->getHandler()Lorg/chromium/components/stylus_handwriting/StylusApiOption;
-HSPLorg/chromium/components/stylus_handwriting/StylusWritingController;->onWebContentsChanged(Lorg/chromium/content_public/browser/WebContents;)V
-Lorg/chromium/components/url_formatter/UrlFormatter;
-HSPLorg/chromium/components/url_formatter/UrlFormatter;->fixupUrl(Ljava/lang/String;)Lorg/chromium/url/GURL;
-Lorg/chromium/components/user_prefs/UserPrefs;
-HSPLorg/chromium/components/user_prefs/UserPrefs;->get(Lorg/chromium/content_public/browser/BrowserContextHandle;)Lorg/chromium/components/prefs/PrefService;
-Lorg/chromium/components/variations/NormalizedMurmurHashEntropyProvider;
-HSPLorg/chromium/components/variations/NormalizedMurmurHashEntropyProvider;->hash16(I)I
-Lorg/chromium/components/variations/firstrun/VariationsSeedBridge;
-HSPLorg/chromium/components/variations/firstrun/VariationsSeedBridge;->clearFirstRunPrefs()V
-HSPLorg/chromium/components/variations/firstrun/VariationsSeedBridge;->getVariationsFirstRunSeedCountry()Ljava/lang/String;
-HSPLorg/chromium/components/variations/firstrun/VariationsSeedBridge;->getVariationsFirstRunSeedData()[B
-HSPLorg/chromium/components/variations/firstrun/VariationsSeedBridge;->getVariationsFirstRunSeedDate()J
-HSPLorg/chromium/components/variations/firstrun/VariationsSeedBridge;->getVariationsFirstRunSeedIsGzipCompressed()Z
-HSPLorg/chromium/components/variations/firstrun/VariationsSeedBridge;->getVariationsFirstRunSeedSignature()Ljava/lang/String;
-Lorg/chromium/components/version_info/VersionConstantsBridge;
-HSPLorg/chromium/components/version_info/VersionConstantsBridge;->getChannel()I
-Lorg/chromium/components/webapk/lib/client/ChromeWebApkHostSignature;
-Lorg/chromium/components/webapk/lib/client/WebApkValidator;
-Lorg/chromium/components/webapps/AddToHomescreenViewDelegate;
-Lorg/chromium/components/webapps/AppBannerManager;
-HSPLorg/chromium/components/webapps/AppBannerManager;-><init>()V
-HSPLorg/chromium/components/webapps/AppBannerManager;->create(J)Lorg/chromium/components/webapps/AppBannerManager;
-HSPLorg/chromium/components/webapps/AppBannerManager;->destroy()V
-HSPLorg/chromium/components/webapps/AppBannerManager;->isSupported()Z
-Lorg/chromium/components/webapps/AppBannerManager$InstallStringPair;
-HSPLorg/chromium/components/webapps/AppBannerManager$InstallStringPair;-><init>(II)V
-Lorg/chromium/components/webapps/WebappsUtils;
-HSPLorg/chromium/components/webapps/WebappsUtils;->isAddToHomeIntentSupported()Z
-HSPLorg/chromium/components/webapps/WebappsUtils;->isRequestPinShortcutSupported()Z
-Lorg/chromium/components/webapps/WebappsUtils$$ExternalSyntheticApiModelOutline2;
-HSPLorg/chromium/components/webapps/WebappsUtils$$ExternalSyntheticApiModelOutline2;->m(Landroid/content/pm/ShortcutManager;)Z
-Lorg/chromium/components/webapps/bottomsheet/PwaBottomSheetController;
-HSPLorg/chromium/components/webapps/bottomsheet/PwaBottomSheetController;-><init>(Landroidx/appcompat/app/AppCompatActivity;)V
-Lorg/chromium/components/webapps/bottomsheet/PwaBottomSheetController$1;
-HSPLorg/chromium/components/webapps/bottomsheet/PwaBottomSheetController$1;-><init>(Lorg/chromium/components/webapps/bottomsheet/PwaBottomSheetController;)V
-Lorg/chromium/components/webapps/bottomsheet/PwaBottomSheetControllerProvider;
-Lorg/chromium/content/browser/AudioFocusDelegate;
-HSPLorg/chromium/content/browser/AudioFocusDelegate;-><init>(J)V
-HSPLorg/chromium/content/browser/AudioFocusDelegate;->abandonAudioFocus()V
-HSPLorg/chromium/content/browser/AudioFocusDelegate;->create(J)Lorg/chromium/content/browser/AudioFocusDelegate;
-HSPLorg/chromium/content/browser/AudioFocusDelegate;->tearDown()V
-Lorg/chromium/content/browser/BackgroundSyncNetworkObserver;
-HSPLorg/chromium/content/browser/BackgroundSyncNetworkObserver;-><init>()V
-HSPLorg/chromium/content/browser/BackgroundSyncNetworkObserver;->broadcastNetworkChangeIfNecessary(I)V
-HSPLorg/chromium/content/browser/BackgroundSyncNetworkObserver;->createObserver(J)Lorg/chromium/content/browser/BackgroundSyncNetworkObserver;
-HSPLorg/chromium/content/browser/BackgroundSyncNetworkObserver;->onNetworkConnect(IJ)V
-Lorg/chromium/content/browser/BindingManager;
-HSPLorg/chromium/content/browser/BindingManager;-><init>(Landroid/content/Context;ILorg/chromium/content/browser/ChildProcessRanking;)V
-PLorg/chromium/content/browser/BindingManager;->addBinding(Lorg/chromium/base/process_launcher/ChildProcessConnection;)V
-HSPLorg/chromium/content/browser/BindingManager;->ensureLowestRankIsWaived()V
-PLorg/chromium/content/browser/BindingManager;->removeBinding(Lorg/chromium/base/process_launcher/ChildProcessConnection;)V
-PLorg/chromium/content/browser/BindingManager;->useNotPerceptibleBinding()Z
-Lorg/chromium/content/browser/BindingManager$2;
-HSPLorg/chromium/content/browser/BindingManager$2;-><init>(Lorg/chromium/content/browser/BindingManager;I)V
-Lorg/chromium/content/browser/BrowserContextHandleImpl;
-HSPLorg/chromium/content/browser/BrowserContextHandleImpl;->getNativeBrowserContextPointer(Lorg/chromium/content_public/browser/BrowserContextHandle;)J
-Lorg/chromium/content/browser/BrowserStartupControllerImpl;
-HSPLorg/chromium/content/browser/BrowserStartupControllerImpl;-><init>()V
-HSPLorg/chromium/content/browser/BrowserStartupControllerImpl;->addStartupCompletedObserver(Lorg/chromium/content_public/browser/BrowserStartupController$StartupCallback;)V
-HSPLorg/chromium/content/browser/BrowserStartupControllerImpl;->browserStartupComplete(I)V
-HSPLorg/chromium/content/browser/BrowserStartupControllerImpl;->contentStart()I
-HSPLorg/chromium/content/browser/BrowserStartupControllerImpl;->executeEnqueuedCallbacks(I)V
-HSPLorg/chromium/content/browser/BrowserStartupControllerImpl;->executeMinimalBrowserStartupCallbacks(I)V
-HSPLorg/chromium/content/browser/BrowserStartupControllerImpl;->isFullBrowserStarted()Z
-HSPLorg/chromium/content/browser/BrowserStartupControllerImpl;->prepareToStartBrowserProcess(Lorg/chromium/content/browser/BrowserStartupControllerImpl$2;)V
-HSPLorg/chromium/content/browser/BrowserStartupControllerImpl;->recordStartupUma()V
-HSPLorg/chromium/content/browser/BrowserStartupControllerImpl;->shouldStartGpuProcessOnBrowserStartup()Z
-HSPLorg/chromium/content/browser/BrowserStartupControllerImpl;->startBrowserProcessesAsync(ZZLorg/chromium/chrome/browser/init/ChromeBrowserInitializer$2;)V
-Lorg/chromium/content/browser/BrowserStartupControllerImpl$1;
-HSPLorg/chromium/content/browser/BrowserStartupControllerImpl$1;-><init>(Lorg/chromium/content/browser/BrowserStartupControllerImpl;)V
-HSPLorg/chromium/content/browser/BrowserStartupControllerImpl$1;->run()V
-Lorg/chromium/content/browser/BrowserStartupControllerImpl$1$1;
-HSPLorg/chromium/content/browser/BrowserStartupControllerImpl$1$1;-><init>(Lorg/chromium/content/browser/BrowserStartupControllerImpl$1;)V
-HSPLorg/chromium/content/browser/BrowserStartupControllerImpl$1$1;->onSuccess()V
-Lorg/chromium/content/browser/BrowserStartupControllerImpl$2;
-HSPLorg/chromium/content/browser/BrowserStartupControllerImpl$2;-><init>(Lorg/chromium/content/browser/BrowserStartupControllerImpl;Z)V
-HSPLorg/chromium/content/browser/BrowserStartupControllerImpl$2;->run()V
-Lorg/chromium/content/browser/BrowserStartupControllerImpl$3;
-HSPLorg/chromium/content/browser/BrowserStartupControllerImpl$3;-><init>(Lorg/chromium/content/browser/BrowserStartupControllerImpl;Lorg/chromium/content_public/browser/BrowserStartupController$StartupCallback;)V
-HSPLorg/chromium/content/browser/BrowserStartupControllerImpl$3;->run()V
-Lorg/chromium/content/browser/ChildProcessConnectionMetrics;
-HSPLorg/chromium/content/browser/ChildProcessConnectionMetrics;-><init>()V
-HSPLorg/chromium/content/browser/ChildProcessConnectionMetrics;->getInstance()Lorg/chromium/content/browser/ChildProcessConnectionMetrics;
-Lorg/chromium/content/browser/ChildProcessConnectionMetrics$$ExternalSyntheticLambda0;
-HSPLorg/chromium/content/browser/ChildProcessConnectionMetrics$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/content/browser/ChildProcessConnectionMetrics;I)V
-HSPLorg/chromium/content/browser/ChildProcessConnectionMetrics$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/content/browser/ChildProcessConnectionMetrics$$ExternalSyntheticLambda1;
-HSPLorg/chromium/content/browser/ChildProcessConnectionMetrics$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/content/browser/ChildProcessConnectionMetrics;)V
-HSPLorg/chromium/content/browser/ChildProcessConnectionMetrics$$ExternalSyntheticLambda1;->onApplicationStateChange(I)V
-Lorg/chromium/content/browser/ChildProcessLauncherHelperImpl;
-HSPLorg/chromium/content/browser/ChildProcessLauncherHelperImpl;-><init>(J[Ljava/lang/String;[Lorg/chromium/base/process_launcher/FileDescriptorInfo;ZZZLorg/chromium/content/browser/GpuProcessCallback;)V
-HSPLorg/chromium/content/browser/ChildProcessLauncherHelperImpl;->createAndStart(J[Ljava/lang/String;[Lorg/chromium/base/process_launcher/FileDescriptorInfo;Z)Lorg/chromium/content/browser/ChildProcessLauncherHelperImpl;
-HSPLorg/chromium/content/browser/ChildProcessLauncherHelperImpl;->getConnectionAllocator(Landroid/content/Context;Z)Lorg/chromium/base/process_launcher/ChildConnectionAllocator;
-HSPLorg/chromium/content/browser/ChildProcessLauncherHelperImpl;->getTerminationInfoAndStop(J)V
-HSPLorg/chromium/content/browser/ChildProcessLauncherHelperImpl;->makeFdInfo(IIZJJ)Lorg/chromium/base/process_launcher/FileDescriptorInfo;
-HSPLorg/chromium/content/browser/ChildProcessLauncherHelperImpl;->setPriority(IZZZJZZI)V
-Lorg/chromium/content/browser/ChildProcessLauncherHelperImpl$$ExternalSyntheticLambda0;
-HSPLorg/chromium/content/browser/ChildProcessLauncherHelperImpl$$ExternalSyntheticLambda0;-><init>(I)V
-HSPLorg/chromium/content/browser/ChildProcessLauncherHelperImpl$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/content/browser/ChildProcessLauncherHelperImpl$$ExternalSyntheticLambda1;
-HSPLorg/chromium/content/browser/ChildProcessLauncherHelperImpl$$ExternalSyntheticLambda1;-><init>(ILjava/lang/Object;)V
-HSPLorg/chromium/content/browser/ChildProcessLauncherHelperImpl$$ExternalSyntheticLambda1;->run()V
-Lorg/chromium/content/browser/ChildProcessLauncherHelperImpl$$ExternalSyntheticLambda2;
-HSPLorg/chromium/content/browser/ChildProcessLauncherHelperImpl$$ExternalSyntheticLambda2;-><init>(ILorg/chromium/base/process_launcher/ChildProcessConnection;)V
-HSPLorg/chromium/content/browser/ChildProcessLauncherHelperImpl$$ExternalSyntheticLambda2;->run()V
-Lorg/chromium/content/browser/ChildProcessLauncherHelperImpl$$ExternalSyntheticLambda3;
-HSPLorg/chromium/content/browser/ChildProcessLauncherHelperImpl$$ExternalSyntheticLambda3;-><init>()V
-HSPLorg/chromium/content/browser/ChildProcessLauncherHelperImpl$$ExternalSyntheticLambda3;->onApplicationStateChange(I)V
-Lorg/chromium/content/browser/ChildProcessLauncherHelperImpl$1;
-HSPLorg/chromium/content/browser/ChildProcessLauncherHelperImpl$1;-><init>(Lorg/chromium/content/browser/ChildProcessLauncherHelperImpl;)V
-HSPLorg/chromium/content/browser/ChildProcessLauncherHelperImpl$1;->getBoundConnection(Lorg/chromium/base/process_launcher/ChildConnectionAllocator;Lorg/chromium/base/process_launcher/ChildProcessLauncher$1;)Lorg/chromium/base/process_launcher/ChildProcessConnection;
-Lorg/chromium/content/browser/ChildProcessLauncherHelperImpl$2;
-HSPLorg/chromium/content/browser/ChildProcessLauncherHelperImpl$2;-><init>(Landroid/content/Context;Z)V
-HSPLorg/chromium/content/browser/ChildProcessLauncherHelperImpl$2;->run()V
-Lorg/chromium/content/browser/ChildProcessLauncherHelperImpl$3;
-HSPLorg/chromium/content/browser/ChildProcessLauncherHelperImpl$3;-><init>(Landroid/content/Context;I)V
-HSPLorg/chromium/content/browser/ChildProcessLauncherHelperImpl$3;->run()V
-Lorg/chromium/content/browser/ChildProcessRanking;
-HSPLorg/chromium/content/browser/ChildProcessRanking;->$r8$lambda$-oTVVp0pFyCDWD4D1LzuoctqOYk(Lorg/chromium/content/browser/ChildProcessRanking;)V
-HSPLorg/chromium/content/browser/ChildProcessRanking;-><init>()V
-HSPLorg/chromium/content/browser/ChildProcessRanking;->iterator()Ljava/util/Iterator;
-HSPLorg/chromium/content/browser/ChildProcessRanking;->reposition(I)V
-HSPLorg/chromium/content/browser/ChildProcessRanking;->reshuffleGroupImportance()V
-Lorg/chromium/content/browser/ChildProcessRanking$$ExternalSyntheticLambda0;
-HSPLorg/chromium/content/browser/ChildProcessRanking$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/content/browser/ChildProcessRanking;I)V
-HSPLorg/chromium/content/browser/ChildProcessRanking$$ExternalSyntheticLambda0;->run()V
-Lorg/chromium/content/browser/ChildProcessRanking$ConnectionWithRank;
-HSPLorg/chromium/content/browser/ChildProcessRanking$ConnectionWithRank;-><init>(Lorg/chromium/base/process_launcher/ChildProcessConnection;)V
-HSPLorg/chromium/content/browser/ChildProcessRanking$ConnectionWithRank;->shouldBeInLowRankGroup()Z
-Lorg/chromium/content/browser/ChildProcessRanking$RankComparator;
-HSPLorg/chromium/content/browser/ChildProcessRanking$RankComparator;->compare(Lorg/chromium/content/browser/ChildProcessRanking$ConnectionWithRank;Lorg/chromium/content/browser/ChildProcessRanking$ConnectionWithRank;)I
-HSPLorg/chromium/content/browser/ChildProcessRanking$RankComparator;->compareByIntersectsViewportAndDepth(Lorg/chromium/content/browser/ChildProcessRanking$ConnectionWithRank;Lorg/chromium/content/browser/ChildProcessRanking$ConnectionWithRank;)I
-Lorg/chromium/content/browser/ChildProcessRanking$ReverseRankIterator;
-HSPLorg/chromium/content/browser/ChildProcessRanking$ReverseRankIterator;-><init>(Lorg/chromium/content/browser/ChildProcessRanking;)V
-HSPLorg/chromium/content/browser/ChildProcessRanking$ReverseRankIterator;->hasNext()Z
-HSPLorg/chromium/content/browser/ChildProcessRanking$ReverseRankIterator;->next()Ljava/lang/Object;
-Lorg/chromium/content/browser/ContentClassFactory;
-HSPLorg/chromium/content/browser/ContentClassFactory;-><init>()V
-Lorg/chromium/content/browser/ContentNfcDelegate;
-HSPLorg/chromium/content/browser/ContentNfcDelegate;-><init>()V
-HSPLorg/chromium/content/browser/ContentNfcDelegate;->create()Lorg/chromium/content/browser/ContentNfcDelegate;
-Lorg/chromium/content/browser/ContentUiEventHandler;
-HSPLorg/chromium/content/browser/ContentUiEventHandler;-><init>(Lorg/chromium/content/browser/webcontents/WebContentsImpl;)V
-Lorg/chromium/content/browser/GestureListenerManagerImpl;
-HSPLorg/chromium/content/browser/GestureListenerManagerImpl;-><init>(Lorg/chromium/content_public/browser/WebContents;)V
-HSPLorg/chromium/content/browser/GestureListenerManagerImpl;->addListener(Lorg/chromium/content_public/browser/GestureStateListener;I)V
-HSPLorg/chromium/content/browser/GestureListenerManagerImpl;->fromWebContents(Lorg/chromium/content_public/browser/WebContents;)Lorg/chromium/content/browser/GestureListenerManagerImpl;
-HSPLorg/chromium/content/browser/GestureListenerManagerImpl;->isScrollInProgress()Z
-HSPLorg/chromium/content/browser/GestureListenerManagerImpl;->onNativeDestroyed()V
-HSPLorg/chromium/content/browser/GestureListenerManagerImpl;->onRootScrollOffsetChangedImpl(FFF)V
-HSPLorg/chromium/content/browser/GestureListenerManagerImpl;->onWindowFocusChanged(Z)V
-HSPLorg/chromium/content/browser/GestureListenerManagerImpl;->removeListener(Lorg/chromium/content_public/browser/GestureStateListener;)V
-HSPLorg/chromium/content/browser/GestureListenerManagerImpl;->resetPopupsAndInput(Z)V
-HSPLorg/chromium/content/browser/GestureListenerManagerImpl;->updateRootScrollOffsetUpdateFrequency()V
-HSPLorg/chromium/content/browser/GestureListenerManagerImpl;->updateScrollInfo(FFFFFFFFFFZ)V
-HSPLorg/chromium/content/browser/GestureListenerManagerImpl;->verticalScrollExtent()I
-HSPLorg/chromium/content/browser/GestureListenerManagerImpl;->verticalScrollOffset()I
-Lorg/chromium/content/browser/GpuProcessCallback;
-HSPLorg/chromium/content/browser/GpuProcessCallback;-><init>()V
-HSPLorg/chromium/content/browser/GpuProcessCallback;->getViewSurface(I)Lorg/chromium/content/common/SurfaceWrapper;
-Lorg/chromium/content/browser/InterfaceRegistrarImpl;
-HSPLorg/chromium/content/browser/InterfaceRegistrarImpl;->createInterfaceRegistryOnIOThread(J)V
-Lorg/chromium/content/browser/LauncherThread;
-HSPLorg/chromium/content/browser/LauncherThread;->getHandlerThread()Lorg/chromium/base/JavaHandlerThread;
-HSPLorg/chromium/content/browser/LauncherThread;->post(Ljava/lang/Runnable;)V
-Lorg/chromium/content/browser/MediaSessionImpl;
-HSPLorg/chromium/content/browser/MediaSessionImpl;-><init>(J)V
-HSPLorg/chromium/content/browser/MediaSessionImpl;->create(J)Lorg/chromium/content/browser/MediaSessionImpl;
-HSPLorg/chromium/content/browser/MediaSessionImpl;->hasObservers()Z
-HSPLorg/chromium/content/browser/MediaSessionImpl;->mediaSessionActionsChanged([I)V
-HSPLorg/chromium/content/browser/MediaSessionImpl;->mediaSessionArtworkChanged([Lorg/chromium/services/media_session/MediaImage;)V
-HSPLorg/chromium/content/browser/MediaSessionImpl;->mediaSessionDestroyed()V
-HSPLorg/chromium/content/browser/MediaSessionImpl;->mediaSessionMetadataChanged(Lorg/chromium/services/media_session/MediaMetadata;)V
-HSPLorg/chromium/content/browser/MediaSessionImpl;->mediaSessionPositionChanged(Lorg/chromium/services/media_session/MediaPosition;)V
-HSPLorg/chromium/content/browser/MediaSessionImpl;->mediaSessionStateChanged(ZZ)V
-Lorg/chromium/content/browser/PopupController;
-HSPLorg/chromium/content/browser/PopupController;-><init>()V
-HSPLorg/chromium/content/browser/PopupController;->fromWebContents(Lorg/chromium/content_public/browser/WebContents;)Lorg/chromium/content/browser/PopupController;
-HSPLorg/chromium/content/browser/PopupController;->hideAllPopups()V
-Lorg/chromium/content/browser/PopupController$HideablePopup;
-Lorg/chromium/content/browser/PopupController$UserDataFactoryLazyHolder;
-Lorg/chromium/content/browser/PopupController$UserDataFactoryLazyHolder$$ExternalSyntheticLambda0;
-HSPLorg/chromium/content/browser/PopupController$UserDataFactoryLazyHolder$$ExternalSyntheticLambda0;-><init>()V
-Lorg/chromium/content/browser/RenderCoordinatesImpl;
-HSPLorg/chromium/content/browser/RenderCoordinatesImpl;-><init>()V
-HSPLorg/chromium/content/browser/RenderCoordinatesImpl;->fromLocalCssToPix(F)F
-HSPLorg/chromium/content/browser/RenderCoordinatesImpl;->getScrollYPixInt()I
-Lorg/chromium/content/browser/RenderWidgetHostViewImpl;
-HSPLorg/chromium/content/browser/RenderWidgetHostViewImpl;-><init>(J)V
-HSPLorg/chromium/content/browser/RenderWidgetHostViewImpl;->clearNativePtr()V
-HSPLorg/chromium/content/browser/RenderWidgetHostViewImpl;->create(J)Lorg/chromium/content/browser/RenderWidgetHostViewImpl;
-Lorg/chromium/content/browser/ScreenOrientationProviderImpl;
-HSPLorg/chromium/content/browser/ScreenOrientationProviderImpl;-><init>()V
-HSPLorg/chromium/content/browser/ScreenOrientationProviderImpl;->getInstance()Lorg/chromium/content/browser/ScreenOrientationProviderImpl;
-Lorg/chromium/content/browser/ScreenOrientationProviderImpl$Holder;
-Lorg/chromium/content/browser/ServicificationStartupUma;
-HSPLorg/chromium/content/browser/ServicificationStartupUma;-><init>()V
-HSPLorg/chromium/content/browser/ServicificationStartupUma;->getStartupMode(ZZZ)I
-Lorg/chromium/content/browser/SpareChildConnection;
-HSPLorg/chromium/content/browser/SpareChildConnection;-><init>(Landroid/content/Context;Lorg/chromium/base/process_launcher/ChildConnectionAllocator;Landroid/os/Bundle;)V
-Lorg/chromium/content/browser/SpareChildConnection$1;
-HSPLorg/chromium/content/browser/SpareChildConnection$1;-><init>(Lorg/chromium/content/browser/SpareChildConnection;)V
-HSPLorg/chromium/content/browser/SpareChildConnection$1;->onChildProcessDied(Lorg/chromium/base/process_launcher/ChildProcessConnection;)V
-HSPLorg/chromium/content/browser/SpareChildConnection$1;->onChildStarted()V
-Lorg/chromium/content/browser/SpareChildConnection$2;
-HSPLorg/chromium/content/browser/SpareChildConnection$2;-><init>(Lorg/chromium/base/process_launcher/ChildProcessLauncher$1;)V
-HSPLorg/chromium/content/browser/SpareChildConnection$2;->run()V
-Lorg/chromium/content/browser/SpeechRecognitionImpl;
-HSPLorg/chromium/content/browser/SpeechRecognitionImpl;->getComponent(ILjava/lang/String;)Landroid/content/ComponentName;
-Lorg/chromium/content/browser/TracingControllerAndroidImpl;
-HSPLorg/chromium/content/browser/TracingControllerAndroidImpl;-><init>(Landroid/content/Context;)V
-Lorg/chromium/content/browser/TracingControllerAndroidImpl$TracingBroadcastReceiver;
-HSPLorg/chromium/content/browser/TracingControllerAndroidImpl$TracingBroadcastReceiver;-><init>(Lorg/chromium/content/browser/TracingControllerAndroidImpl;)V
-Lorg/chromium/content/browser/TracingControllerAndroidImpl$TracingIntentFilter;
-HSPLorg/chromium/content/browser/TracingControllerAndroidImpl$TracingIntentFilter;-><init>(Landroid/content/Context;)V
-Lorg/chromium/content/browser/UiThreadTaskTraitsImpl;
-Lorg/chromium/content/browser/UiThreadTaskTraitsImpl$Descriptor;
-HSPLorg/chromium/content/browser/UiThreadTaskTraitsImpl$Descriptor;-><init>()V
-Lorg/chromium/content/browser/ViewEventSinkImpl;
-HSPLorg/chromium/content/browser/ViewEventSinkImpl;-><init>(Lorg/chromium/content_public/browser/WebContents;)V
-HSPLorg/chromium/content/browser/ViewEventSinkImpl;->from(Lorg/chromium/content_public/browser/WebContents;)Lorg/chromium/content/browser/ViewEventSinkImpl;
-HSPLorg/chromium/content/browser/ViewEventSinkImpl;->onActivityPaused()V
-HSPLorg/chromium/content/browser/ViewEventSinkImpl;->onActivityResumed()V
-HSPLorg/chromium/content/browser/ViewEventSinkImpl;->onFocusChanged$1()V
-Lorg/chromium/content/browser/WindowEventObserver;
-HSPLorg/chromium/content/browser/WindowEventObserver;->onAttachedToWindow()V
-HSPLorg/chromium/content/browser/WindowEventObserver;->onDetachedFromWindow()V
-HSPLorg/chromium/content/browser/WindowEventObserver;->onViewFocusChanged(ZZ)V
-HSPLorg/chromium/content/browser/WindowEventObserver;->onWindowFocusChanged(Z)V
-Lorg/chromium/content/browser/WindowEventObserverManager;
-HSPLorg/chromium/content/browser/WindowEventObserverManager;-><init>(Lorg/chromium/content/browser/webcontents/WebContentsImpl;)V
-HSPLorg/chromium/content/browser/WindowEventObserverManager;->addObserver(Lorg/chromium/content/browser/WindowEventObserver;)V
-HSPLorg/chromium/content/browser/WindowEventObserverManager;->addUiObservers()V
-HSPLorg/chromium/content/browser/WindowEventObserverManager;->from(Lorg/chromium/content_public/browser/WebContents;)Lorg/chromium/content/browser/WindowEventObserverManager;
-HSPLorg/chromium/content/browser/WindowEventObserverManager;->onDIPScaleChanged(F)V
-HSPLorg/chromium/content/browser/WindowEventObserverManager;->onRotationChanged(I)V
-HSPLorg/chromium/content/browser/WindowEventObserverManager;->onWindowAndroidChanged(Lorg/chromium/ui/base/WindowAndroid;)V
-Lorg/chromium/content/browser/WindowEventObserverManager$UserDataFactoryLazyHolder;
-Lorg/chromium/content/browser/WindowEventObserverManager$UserDataFactoryLazyHolder$$ExternalSyntheticLambda0;
-HSPLorg/chromium/content/browser/WindowEventObserverManager$UserDataFactoryLazyHolder$$ExternalSyntheticLambda0;-><init>()V
-HSPLorg/chromium/content/browser/WindowEventObserverManager$UserDataFactoryLazyHolder$$ExternalSyntheticLambda0;->create(Lorg/chromium/content/browser/webcontents/WebContentsImpl;)Ljava/lang/Object;
-Lorg/chromium/content/browser/accessibility/AccessibilityDelegate;
-HSPLorg/chromium/content/browser/accessibility/AccessibilityDelegate;->getNativeAXTree()J
-HSPLorg/chromium/content/browser/accessibility/AccessibilityDelegate;->setOnScrollPositionChangedCallback(Lorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl$$ExternalSyntheticLambda1;)V
-Lorg/chromium/content/browser/accessibility/AccessibilityDelegate$AccessibilityCoordinates;
-Lorg/chromium/content/browser/accessibility/AccessibilityEventDispatcher;
-HSPLorg/chromium/content/browser/accessibility/AccessibilityEventDispatcher;-><init>(Lorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl$1;Ljava/util/HashMap;Ljava/util/HashSet;Ljava/util/HashSet;)V
-Lorg/chromium/content/browser/accessibility/AccessibilityHistogramRecorder;
-HSPLorg/chromium/content/browser/accessibility/AccessibilityHistogramRecorder;-><init>()V
-Lorg/chromium/content/browser/accessibility/AccessibilityNodeInfoBuilder;
-HSPLorg/chromium/content/browser/accessibility/AccessibilityNodeInfoBuilder;-><init>(Lorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl$1;)V
-HSPLorg/chromium/content/browser/accessibility/AccessibilityNodeInfoBuilder;->addAccessibilityNodeInfoActions(Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat;IZZZZZZZZZZZZZZZZZ)V
-HSPLorg/chromium/content/browser/accessibility/AccessibilityNodeInfoBuilder;->addAccessibilityNodeInfoChildren(Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat;[I)V
-HSPLorg/chromium/content/browser/accessibility/AccessibilityNodeInfoBuilder;->convertWebRectToAndroidCoordinates(Landroid/graphics/Rect;Landroid/os/Bundle;)V
-HSPLorg/chromium/content/browser/accessibility/AccessibilityNodeInfoBuilder;->setAccessibilityNodeInfoBaseAttributes(Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZIILjava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-HSPLorg/chromium/content/browser/accessibility/AccessibilityNodeInfoBuilder;->setAccessibilityNodeInfoBooleanAttributes(Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat;IZZZZZZZZZZZZ)V
-HSPLorg/chromium/content/browser/accessibility/AccessibilityNodeInfoBuilder;->setAccessibilityNodeInfoLocation(Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat;IIIIIIIZ)V
-HSPLorg/chromium/content/browser/accessibility/AccessibilityNodeInfoBuilder;->setAccessibilityNodeInfoOAttributes(Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat;ZZLjava/lang/String;)V
-HSPLorg/chromium/content/browser/accessibility/AccessibilityNodeInfoBuilder;->setAccessibilityNodeInfoText(Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat;Ljava/lang/String;ZZLjava/lang/String;[I[I[Ljava/lang/String;Ljava/lang/String;)V
-Lorg/chromium/content/browser/accessibility/AccessibilityNodeInfoBuilder$$ExternalSyntheticApiModelOutline0;
-HSPLorg/chromium/content/browser/accessibility/AccessibilityNodeInfoBuilder$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/accessibility/AccessibilityNodeInfo;Ljava/util/List;)V
-Lorg/chromium/content/browser/accessibility/WebContentsAccessibilityDelegate;
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityDelegate;-><init>(Lorg/chromium/content_public/browser/WebContents;)V
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityDelegate;->getAccessibilityCoordinates()Lorg/chromium/content/browser/accessibility/AccessibilityDelegate$AccessibilityCoordinates;
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityDelegate;->getContainerView()Landroid/view/View;
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityDelegate;->getProductVersion()Ljava/lang/String;
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityDelegate;->getWebContents()Lorg/chromium/content_public/browser/WebContents;
-Lorg/chromium/content/browser/accessibility/WebContentsAccessibilityDelegate$AccessibilityCoordinatesImpl;
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityDelegate$AccessibilityCoordinatesImpl;-><init>(Lorg/chromium/content/browser/accessibility/WebContentsAccessibilityDelegate;)V
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityDelegate$AccessibilityCoordinatesImpl;->fromLocalCssToPix(F)F
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityDelegate$AccessibilityCoordinatesImpl;->getContentOffsetYPix()F
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityDelegate$AccessibilityCoordinatesImpl;->getContentWidthCss()F
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityDelegate$AccessibilityCoordinatesImpl;->getLastFrameViewportHeightPixInt()I
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityDelegate$AccessibilityCoordinatesImpl;->getRenderCoordinates()Lorg/chromium/content/browser/RenderCoordinatesImpl;
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityDelegate$AccessibilityCoordinatesImpl;->getScrollX()F
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityDelegate$AccessibilityCoordinatesImpl;->getScrollY()F
-Lorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl;
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl;-><init>(Lorg/chromium/content/browser/accessibility/AccessibilityDelegate;)V
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl;->buildAccessibilityEvent(II)Landroid/view/accessibility/AccessibilityEvent;
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl;->clearNodeInfoCacheForGivenId(I)V
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl;->createAccessibilityNodeInfo(I)Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat;
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl;->fromWebContents(Lorg/chromium/content_public/browser/WebContents;)Lorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl;
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl;->getAccessibilityNodeProvider()Landroid/view/accessibility/AccessibilityNodeProvider;
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl;->handleFocusChanged(I)V
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl;->handleNavigate(I)V
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl;->isAccessibilityEnabled()Z
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl;->isFrameInfoInitialized()Z
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl;->isNativeInitialized()Z
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl;->moveAccessibilityFocusToId(I)Z
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl;->notifyFrameInfoInitialized()V
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl;->onAttachedToWindow()V
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl;->onDetachedFromWindow()V
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl;->onNativeInit()V
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl;->onNativeObjectDestroyed()V
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl;->performAction(IILandroid/os/Bundle;)Z
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl;->refreshNativeState()V
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl;->registerLocaleChangeReceiver()V
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl;->requestSendAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl;->sendAccessibilityEvent(II)V
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl;->setAccessibilityEventBaseAttributes(Landroid/view/accessibility/AccessibilityEvent;ZZZZIIIIIILjava/lang/String;)V
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl;->updateMaxNodesInCache()V
-Lorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl$$ExternalSyntheticApiModelOutline0;
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/autofill/AutofillManager;)Z
-Lorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl$$ExternalSyntheticLambda1;
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl;I)V
-Lorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl$1;
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl$1;-><init>(Lorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl;)V
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl$1;->dispatchEvent(II)Z
-Lorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl$3;
-HSPLorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl$3;-><init>(Lorg/chromium/content/browser/accessibility/WebContentsAccessibilityImpl;)V
-Lorg/chromium/content/browser/accessibility/captioning/CaptioningBridge;
-HSPLorg/chromium/content/browser/accessibility/captioning/CaptioningBridge;-><init>()V
-HSPLorg/chromium/content/browser/accessibility/captioning/CaptioningBridge;->getCaptioningStyleFrom(Landroid/view/accessibility/CaptioningManager$CaptionStyle;)Lorg/chromium/content/browser/accessibility/captioning/CaptioningStyle;
-HSPLorg/chromium/content/browser/accessibility/captioning/CaptioningBridge;->syncToDelegate()V
-Lorg/chromium/content/browser/accessibility/captioning/CaptioningChangeDelegate;
-HSPLorg/chromium/content/browser/accessibility/captioning/CaptioningChangeDelegate;-><init>()V
-HSPLorg/chromium/content/browser/accessibility/captioning/CaptioningChangeDelegate;->androidColorToCssColor(Ljava/lang/Integer;)Ljava/lang/String;
-HSPLorg/chromium/content/browser/accessibility/captioning/CaptioningChangeDelegate;->notifyListener(Lorg/chromium/content/browser/accessibility/captioning/CaptioningController;)V
-HSPLorg/chromium/content/browser/accessibility/captioning/CaptioningChangeDelegate;->notifySettingsChanged()V
-HSPLorg/chromium/content/browser/accessibility/captioning/CaptioningChangeDelegate;->onUserStyleChanged(Lorg/chromium/content/browser/accessibility/captioning/CaptioningStyle;)V
-Lorg/chromium/content/browser/accessibility/captioning/CaptioningController;
-HSPLorg/chromium/content/browser/accessibility/captioning/CaptioningController;-><init>(Lorg/chromium/content_public/browser/WebContents;)V
-HSPLorg/chromium/content/browser/accessibility/captioning/CaptioningController;->onDestroy()V
-HSPLorg/chromium/content/browser/accessibility/captioning/CaptioningController;->onRenderProcessChange()V
-Lorg/chromium/content/browser/accessibility/captioning/CaptioningStyle;
-HSPLorg/chromium/content/browser/accessibility/captioning/CaptioningStyle;-><init>(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Landroid/graphics/Typeface;)V
-Lorg/chromium/content/browser/font/AndroidFontLookupImpl;
-HSPLorg/chromium/content/browser/font/AndroidFontLookupImpl;-><init>(Landroid/content/Context;)V
-HSPLorg/chromium/content/browser/font/AndroidFontLookupImpl;->close()V
-HSPLorg/chromium/content/browser/font/AndroidFontLookupImpl;->createFontQuery(ILjava/lang/String;)Ljava/lang/String;
-HSPLorg/chromium/content/browser/font/AndroidFontLookupImpl;->fetchAllFontFiles(Lorg/chromium/blink/mojom/AndroidFontLookup_Internal$AndroidFontLookupFetchAllFontFilesResponseParamsProxyToResponder;)V
-HSPLorg/chromium/content/browser/font/AndroidFontLookupImpl;->fetchFontInBackground(Ljava/lang/String;Lorg/chromium/mojo/system/Core;)Lorg/chromium/mojo_base/mojom/ReadOnlyFile;
-HSPLorg/chromium/content/browser/font/AndroidFontLookupImpl;->onConnectionError(Lorg/chromium/mojo/system/MojoException;)V
-Lorg/chromium/content/browser/font/AndroidFontLookupImpl$$ExternalSyntheticLambda1;
-HSPLorg/chromium/content/browser/font/AndroidFontLookupImpl$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/content/browser/font/AndroidFontLookupImpl;Lorg/chromium/mojo/system/impl/CoreImpl;JLjava/util/concurrent/Executor;Lorg/chromium/blink/mojom/AndroidFontLookup_Internal$AndroidFontLookupFetchAllFontFilesResponseParamsProxyToResponder;)V
-HSPLorg/chromium/content/browser/font/AndroidFontLookupImpl$$ExternalSyntheticLambda1;->run()V
-Lorg/chromium/content/browser/font/AndroidFontLookupImpl$$ExternalSyntheticLambda2;
-HSPLorg/chromium/content/browser/font/AndroidFontLookupImpl$$ExternalSyntheticLambda2;-><init>(Lorg/chromium/blink/mojom/AndroidFontLookup_Internal$AndroidFontLookupFetchAllFontFilesResponseParamsProxyToResponder;Ljava/lang/Object;I)V
-HSPLorg/chromium/content/browser/font/AndroidFontLookupImpl$$ExternalSyntheticLambda2;->run()V
-Lorg/chromium/content/browser/font/AndroidFontLookupImpl$Factory;
-HSPLorg/chromium/content/browser/font/AndroidFontLookupImpl$Factory;-><init>()V
-HSPLorg/chromium/content/browser/font/AndroidFontLookupImpl$Factory;->createImpl()Lorg/chromium/mojo/bindings/Interface;
-Lorg/chromium/content/browser/font/FontsContractWrapper;
-HSPLorg/chromium/content/browser/font/FontsContractWrapper;-><init>()V
-Lorg/chromium/content/browser/framehost/NavigationControllerImpl;
-HSPLorg/chromium/content/browser/framehost/NavigationControllerImpl;-><init>(J)V
-HSPLorg/chromium/content/browser/framehost/NavigationControllerImpl;->canGoBack()Z
-HSPLorg/chromium/content/browser/framehost/NavigationControllerImpl;->canGoForward()Z
-HSPLorg/chromium/content/browser/framehost/NavigationControllerImpl;->create(J)Lorg/chromium/content/browser/framehost/NavigationControllerImpl;
-HSPLorg/chromium/content/browser/framehost/NavigationControllerImpl;->createNavigationEntry(ILorg/chromium/url/GURL;Lorg/chromium/url/GURL;Lorg/chromium/url/GURL;Ljava/lang/String;Landroid/graphics/Bitmap;IJZ)Lorg/chromium/content_public/browser/NavigationEntry;
-HSPLorg/chromium/content/browser/framehost/NavigationControllerImpl;->destroy()V
-HSPLorg/chromium/content/browser/framehost/NavigationControllerImpl;->getEntryAtIndex(I)Lorg/chromium/content_public/browser/NavigationEntry;
-HSPLorg/chromium/content/browser/framehost/NavigationControllerImpl;->getLastCommittedEntryIndex()I
-HSPLorg/chromium/content/browser/framehost/NavigationControllerImpl;->getUseDesktopUserAgent()Z
-HSPLorg/chromium/content/browser/framehost/NavigationControllerImpl;->isInitialNavigation()Z
-HSPLorg/chromium/content/browser/framehost/NavigationControllerImpl;->loadUrl(Lorg/chromium/content_public/browser/LoadUrlParams;)V
-HSPLorg/chromium/content/browser/framehost/NavigationControllerImpl;->needsReload()Z
-Lorg/chromium/content/browser/framehost/RenderFrameHostDelegate;
-Lorg/chromium/content/browser/input/CursorAnchorInfoController;
-HSPLorg/chromium/content/browser/input/CursorAnchorInfoController;-><init>(Lorg/chromium/content/browser/input/InputMethodManagerWrapperImpl;Lorg/chromium/content/browser/input/ImeAdapterImpl$1;Lorg/chromium/content/browser/input/CursorAnchorInfoController$1;)V
-Lorg/chromium/content/browser/input/CursorAnchorInfoController$1;
-HSPLorg/chromium/content/browser/input/CursorAnchorInfoController$1;-><init>()V
-Lorg/chromium/content/browser/input/ImeAdapterImpl;
-HSPLorg/chromium/content/browser/input/ImeAdapterImpl;-><init>(Lorg/chromium/content/browser/webcontents/WebContentsImpl;)V
-HSPLorg/chromium/content/browser/input/ImeAdapterImpl;->fromWebContents(Lorg/chromium/content_public/browser/WebContents;)Lorg/chromium/content/browser/input/ImeAdapterImpl;
-HSPLorg/chromium/content/browser/input/ImeAdapterImpl;->getContainerView()Landroid/view/View;
-HSPLorg/chromium/content/browser/input/ImeAdapterImpl;->hideKeyboard()V
-HSPLorg/chromium/content/browser/input/ImeAdapterImpl;->isValid()Z
-HSPLorg/chromium/content/browser/input/ImeAdapterImpl;->onAttachedToWindow()V
-HSPLorg/chromium/content/browser/input/ImeAdapterImpl;->onConnectedToRenderProcess()V
-HSPLorg/chromium/content/browser/input/ImeAdapterImpl;->onDetachedFromWindow()V
-HSPLorg/chromium/content/browser/input/ImeAdapterImpl;->onNativeDestroyed()V
-HSPLorg/chromium/content/browser/input/ImeAdapterImpl;->onResizeScrollableViewport(Z)V
-HSPLorg/chromium/content/browser/input/ImeAdapterImpl;->onViewFocusChanged(ZZ)V
-HSPLorg/chromium/content/browser/input/ImeAdapterImpl;->onWindowFocusChanged(Z)V
-HSPLorg/chromium/content/browser/input/ImeAdapterImpl;->resetAndHideKeyboard()V
-HSPLorg/chromium/content/browser/input/ImeAdapterImpl;->updateFrameInfo(FFZZFFF)V
-Lorg/chromium/content/browser/input/ImeAdapterImpl$$ExternalSyntheticLambda0;
-HSPLorg/chromium/content/browser/input/ImeAdapterImpl$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/content/browser/input/ImeAdapterImpl;)V
-Lorg/chromium/content/browser/input/ImeAdapterImpl$1;
-HSPLorg/chromium/content/browser/input/ImeAdapterImpl$1;-><init>(Lorg/chromium/content/browser/input/ImeAdapterImpl;)V
-Lorg/chromium/content/browser/input/ImeAdapterImpl$UserDataFactoryLazyHolder;
-Lorg/chromium/content/browser/input/ImeAdapterImpl$UserDataFactoryLazyHolder$$ExternalSyntheticLambda0;
-HSPLorg/chromium/content/browser/input/ImeAdapterImpl$UserDataFactoryLazyHolder$$ExternalSyntheticLambda0;-><init>()V
-HSPLorg/chromium/content/browser/input/ImeAdapterImpl$UserDataFactoryLazyHolder$$ExternalSyntheticLambda0;->create(Lorg/chromium/content/browser/webcontents/WebContentsImpl;)Ljava/lang/Object;
-Lorg/chromium/content/browser/input/InputMethodManagerWrapperImpl;
-HSPLorg/chromium/content/browser/input/InputMethodManagerWrapperImpl;-><init>(Landroid/content/Context;Lorg/chromium/ui/base/WindowAndroid;Lorg/chromium/content_public/browser/InputMethodManagerWrapper$Delegate;)V
-HSPLorg/chromium/content/browser/input/InputMethodManagerWrapperImpl;->getInputMethodManager()Landroid/view/inputmethod/InputMethodManager;
-HSPLorg/chromium/content/browser/input/InputMethodManagerWrapperImpl;->hideSoftInputFromWindow(Landroid/os/IBinder;)Z
-HSPLorg/chromium/content/browser/input/InputMethodManagerWrapperImpl;->isActive(Landroid/view/View;)Z
-Lorg/chromium/content/browser/input/ThreadedInputConnectionFactory;
-HSPLorg/chromium/content/browser/input/ThreadedInputConnectionFactory;-><init>(Lorg/chromium/content_public/browser/InputMethodManagerWrapper;)V
-Lorg/chromium/content/browser/selection/AdditionalMenuItemProviderImpl;
-HSPLorg/chromium/content/browser/selection/AdditionalMenuItemProviderImpl;-><init>()V
-Lorg/chromium/content/browser/selection/MagnifierAnimator;
-HSPLorg/chromium/content/browser/selection/MagnifierAnimator;-><init>(Lorg/chromium/content/browser/selection/MagnifierWrapperImpl;)V
-HSPLorg/chromium/content/browser/selection/MagnifierAnimator;->createValueAnimator()V
-Lorg/chromium/content/browser/selection/MagnifierAnimator$$ExternalSyntheticLambda0;
-HSPLorg/chromium/content/browser/selection/MagnifierAnimator$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/content/browser/selection/MagnifierAnimator;)V
-Lorg/chromium/content/browser/selection/MagnifierWrapper;
-Lorg/chromium/content/browser/selection/MagnifierWrapperImpl;
-HSPLorg/chromium/content/browser/selection/MagnifierWrapperImpl;-><init>(Lorg/chromium/content/browser/selection/SelectionPopupControllerImpl$$ExternalSyntheticLambda0;)V
-Lorg/chromium/content/browser/selection/SelectionPopupControllerImpl;
-HSPLorg/chromium/content/browser/selection/SelectionPopupControllerImpl;-><init>(Lorg/chromium/content_public/browser/WebContents;)V
-HSPLorg/chromium/content/browser/selection/SelectionPopupControllerImpl;->clearSelection()V
-HSPLorg/chromium/content/browser/selection/SelectionPopupControllerImpl;->destroyPastePopup()V
-HSPLorg/chromium/content/browser/selection/SelectionPopupControllerImpl;->dismissTextHandles()V
-HSPLorg/chromium/content/browser/selection/SelectionPopupControllerImpl;->finishActionMode()V
-HSPLorg/chromium/content/browser/selection/SelectionPopupControllerImpl;->fromWebContents(Lorg/chromium/content_public/browser/WebContents;)Lorg/chromium/content/browser/selection/SelectionPopupControllerImpl;
-HSPLorg/chromium/content/browser/selection/SelectionPopupControllerImpl;->hide()V
-HSPLorg/chromium/content/browser/selection/SelectionPopupControllerImpl;->hidePopupsAndPreserveSelection()V
-HSPLorg/chromium/content/browser/selection/SelectionPopupControllerImpl;->isActionModeValid()Z
-HSPLorg/chromium/content/browser/selection/SelectionPopupControllerImpl;->nativeSelectionPopupControllerDestroyed()V
-HSPLorg/chromium/content/browser/selection/SelectionPopupControllerImpl;->onAttachedToWindow()V
-HSPLorg/chromium/content/browser/selection/SelectionPopupControllerImpl;->onDetachedFromWindow()V
-HSPLorg/chromium/content/browser/selection/SelectionPopupControllerImpl;->onViewFocusChanged(ZZ)V
-HSPLorg/chromium/content/browser/selection/SelectionPopupControllerImpl;->onWindowFocusChanged(Z)V
-HSPLorg/chromium/content/browser/selection/SelectionPopupControllerImpl;->restoreSelectionPopupsIfNecessary()V
-HSPLorg/chromium/content/browser/selection/SelectionPopupControllerImpl;->setSelectionClient(Lorg/chromium/content_public/browser/SelectionClient;)V
-HSPLorg/chromium/content/browser/selection/SelectionPopupControllerImpl;->updateTextSelectionUI(Z)V
-Lorg/chromium/content/browser/selection/SelectionPopupControllerImpl$$ExternalSyntheticLambda0;
-HSPLorg/chromium/content/browser/selection/SelectionPopupControllerImpl$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/content/browser/selection/SelectionPopupControllerImpl;)V
-Lorg/chromium/content/browser/selection/SelectionPopupControllerImpl$1;
-HSPLorg/chromium/content/browser/selection/SelectionPopupControllerImpl$1;-><init>(Lorg/chromium/content/browser/selection/SelectionPopupControllerImpl;)V
-Lorg/chromium/content/browser/selection/SelectionPopupControllerImpl$2;
-HSPLorg/chromium/content/browser/selection/SelectionPopupControllerImpl$2;-><init>(Lorg/chromium/content/browser/selection/SelectionPopupControllerImpl;)V
-Lorg/chromium/content/browser/selection/SmartSelectionClient;
-HSPLorg/chromium/content/browser/selection/SmartSelectionClient;-><init>(Lorg/chromium/content/browser/selection/SelectionPopupControllerImpl$2;Lorg/chromium/content_public/browser/WebContents;)V
-HSPLorg/chromium/content/browser/selection/SmartSelectionClient;->getSelectionEventProcessor()Lorg/chromium/content_public/browser/SelectionEventProcessor;
-HSPLorg/chromium/content/browser/selection/SmartSelectionClient;->onNativeSideDestroyed(J)V
-Lorg/chromium/content/browser/selection/SmartSelectionEventProcessor;
-HSPLorg/chromium/content/browser/selection/SmartSelectionEventProcessor;-><init>(Lorg/chromium/content_public/browser/WebContents;)V
-Lorg/chromium/content/browser/selection/SmartSelectionEventProcessor$1;
-HSPLorg/chromium/content/browser/selection/SmartSelectionEventProcessor$1;-><init>(Lorg/chromium/content/browser/selection/SmartSelectionEventProcessor;)V
-Lorg/chromium/content/browser/selection/SmartSelectionProvider;
-HSPLorg/chromium/content/browser/selection/SmartSelectionProvider;-><init>(Lorg/chromium/content/browser/selection/SelectionPopupControllerImpl$2;Lorg/chromium/content_public/browser/WebContents;Lorg/chromium/content/browser/selection/SmartSelectionEventProcessor;)V
-Lorg/chromium/content/browser/selection/SmartSelectionProvider$1;
-HSPLorg/chromium/content/browser/selection/SmartSelectionProvider$1;-><init>(Lorg/chromium/content/browser/selection/SmartSelectionProvider;)V
-Lorg/chromium/content/browser/selection/SmartSelectionProvider$2;
-HSPLorg/chromium/content/browser/selection/SmartSelectionProvider$2;-><init>(Lorg/chromium/content/browser/selection/SmartSelectionProvider;)V
-Lorg/chromium/content/browser/sms/SmsProviderGms;
-HSPLorg/chromium/content/browser/sms/SmsProviderGms;-><init>(JIZ)V
-HSPLorg/chromium/content/browser/sms/SmsProviderGms;->create(JI)Lorg/chromium/content/browser/sms/SmsProviderGms;
-Lorg/chromium/content/browser/sms/SmsUserConsentReceiver;
-HSPLorg/chromium/content/browser/sms/SmsUserConsentReceiver;-><init>(Lorg/chromium/content/browser/sms/SmsProviderGms;Lorg/chromium/content/browser/sms/Wrappers$WebOTPServiceContext;)V
-Lorg/chromium/content/browser/sms/SmsVerificationReceiver;
-HSPLorg/chromium/content/browser/sms/SmsVerificationReceiver;-><init>(Lorg/chromium/content/browser/sms/SmsProviderGms;Lorg/chromium/content/browser/sms/Wrappers$WebOTPServiceContext;)V
-Lorg/chromium/content/browser/sms/Wrappers$WebOTPServiceContext;
-HSPLorg/chromium/content/browser/sms/Wrappers$WebOTPServiceContext;-><init>(Landroid/content/Context;)V
-HSPLorg/chromium/content/browser/sms/Wrappers$WebOTPServiceContext;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;I)Landroid/content/Intent;
-Lorg/chromium/content/browser/webcontents/WebContentsImpl;
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;-><init>(JLorg/chromium/content_public/browser/NavigationController;)V
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->addObserver(Lorg/chromium/content_public/browser/WebContentsObserver;)V
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->checkNotDestroyed()V
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->clearNativePtr()V
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->create(JLorg/chromium/content_public/browser/NavigationController;)Lorg/chromium/content/browser/webcontents/WebContentsImpl;
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->getContext()Landroid/content/Context;
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->getLastCommittedUrl()Lorg/chromium/url/GURL;
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->getLoadProgress()F
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->getNativePointer()J
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->getNavigationController()Lorg/chromium/content_public/browser/NavigationController;
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->getOrSetUserData(Ljava/lang/Class;Lorg/chromium/content/browser/webcontents/WebContentsImpl$UserDataFactory;)Lorg/chromium/base/UserData;
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->getRenderWidgetHostView$1()Lorg/chromium/content/browser/RenderWidgetHostViewImpl;
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->getRenderWidgetHostView()Lorg/chromium/content/browser/RenderWidgetHostViewImpl;
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->getTitle()Ljava/lang/String;
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->getTopLevelNativeWindow()Lorg/chromium/ui/base/WindowAndroid;
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->getUserDataHost()Lorg/chromium/base/UserDataHost;
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->getViewAndroidDelegate()Lorg/chromium/ui/base/ViewAndroidDelegate;
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->getVirtualKeyboardMode()I
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->getVisibility()I
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->getVisibleUrl()Lorg/chromium/url/GURL;
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->initialize(Lorg/chromium/ui/base/ViewAndroidDelegate;Lorg/chromium/components/embedder_support/view/ContentView;Lorg/chromium/ui/base/WindowAndroid;Lorg/chromium/content_public/browser/WebContents$1;)V
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->isDestroyed()Z
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->isIncognito()Z
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->isLoading()Z
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->notifyRendererPreferenceUpdate()V
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->onDIPScaleChanged(F)V
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->onHide()V
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->onShow()V
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->removeObserver(Lorg/chromium/content_public/browser/WebContentsObserver;)V
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->setFocus(Z)V
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->setImportance(I)V
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->setMediaSession(Lorg/chromium/content/browser/MediaSessionImpl;)V
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->setOverscrollRefreshHandler(Lorg/chromium/ui/OverscrollRefreshHandler;)V
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->setSize(II)V
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->setStylusWritingHandler(Lorg/chromium/content_public/browser/StylusWritingHandler;)V
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl;->setTopLevelNativeWindow(Lorg/chromium/ui/base/WindowAndroid;)V
-Lorg/chromium/content/browser/webcontents/WebContentsImpl$1;
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl$1;-><init>()V
-Lorg/chromium/content/browser/webcontents/WebContentsImpl$UserDataFactory;
-Lorg/chromium/content/browser/webcontents/WebContentsImpl$WebContentsInternalsImpl;
-HSPLorg/chromium/content/browser/webcontents/WebContentsImpl$WebContentsInternalsImpl;-><init>()V
-Lorg/chromium/content/browser/webcontents/WebContentsObserverProxy;
-HSPLorg/chromium/content/browser/webcontents/WebContentsObserverProxy;-><init>(Lorg/chromium/content/browser/webcontents/WebContentsImpl;)V
-HSPLorg/chromium/content/browser/webcontents/WebContentsObserverProxy;->destroy()V
-HSPLorg/chromium/content/browser/webcontents/WebContentsObserverProxy;->didChangeVisibleSecurityState()V
-HSPLorg/chromium/content/browser/webcontents/WebContentsObserverProxy;->didFinishLoadInPrimaryMainFrame(IILorg/chromium/url/GURL;ZI)V
-HSPLorg/chromium/content/browser/webcontents/WebContentsObserverProxy;->didFinishLoadInPrimaryMainFrame(Lorg/chromium/content_public/browser/GlobalRenderFrameHostId;Lorg/chromium/url/GURL;ZI)V
-HSPLorg/chromium/content/browser/webcontents/WebContentsObserverProxy;->didFinishNavigationInPrimaryMainFrame(Lorg/chromium/content_public/browser/NavigationHandle;)V
-HSPLorg/chromium/content/browser/webcontents/WebContentsObserverProxy;->didFirstVisuallyNonEmptyPaint()V
-HSPLorg/chromium/content/browser/webcontents/WebContentsObserverProxy;->didStartLoading(Lorg/chromium/url/GURL;)V
-HSPLorg/chromium/content/browser/webcontents/WebContentsObserverProxy;->didStartNavigationInPrimaryMainFrame(Lorg/chromium/content_public/browser/NavigationHandle;)V
-HSPLorg/chromium/content/browser/webcontents/WebContentsObserverProxy;->didStopLoading(Lorg/chromium/url/GURL;Z)V
-HSPLorg/chromium/content/browser/webcontents/WebContentsObserverProxy;->documentLoadedInPrimaryMainFrame(III)V
-HSPLorg/chromium/content/browser/webcontents/WebContentsObserverProxy;->documentLoadedInPrimaryMainFrame(Lorg/chromium/content_public/browser/GlobalRenderFrameHostId;I)V
-HSPLorg/chromium/content/browser/webcontents/WebContentsObserverProxy;->finishObserverCall()V
-HSPLorg/chromium/content/browser/webcontents/WebContentsObserverProxy;->handleObserverCall()V
-HSPLorg/chromium/content/browser/webcontents/WebContentsObserverProxy;->loadProgressChanged(F)V
-HSPLorg/chromium/content/browser/webcontents/WebContentsObserverProxy;->navigationEntriesChanged()V
-HSPLorg/chromium/content/browser/webcontents/WebContentsObserverProxy;->navigationEntryCommitted(Lorg/chromium/content_public/browser/LoadCommittedDetails;)V
-HSPLorg/chromium/content/browser/webcontents/WebContentsObserverProxy;->onWebContentsFocused()V
-HSPLorg/chromium/content/browser/webcontents/WebContentsObserverProxy;->onWebContentsLostFocus()V
-HSPLorg/chromium/content/browser/webcontents/WebContentsObserverProxy;->primaryMainDocumentElementAvailable()V
-HSPLorg/chromium/content/browser/webcontents/WebContentsObserverProxy;->renderFrameCreated(II)V
-HSPLorg/chromium/content/browser/webcontents/WebContentsObserverProxy;->renderFrameCreated(Lorg/chromium/content_public/browser/GlobalRenderFrameHostId;)V
-HSPLorg/chromium/content/browser/webcontents/WebContentsObserverProxy;->renderFrameDeleted(II)V
-HSPLorg/chromium/content/browser/webcontents/WebContentsObserverProxy;->renderFrameDeleted(Lorg/chromium/content_public/browser/GlobalRenderFrameHostId;)V
-HSPLorg/chromium/content/browser/webcontents/WebContentsObserverProxy;->renderProcessGone()V
-HSPLorg/chromium/content/browser/webcontents/WebContentsObserverProxy;->wasHidden()V
-HSPLorg/chromium/content/browser/webcontents/WebContentsObserverProxy;->wasShown()V
-Lorg/chromium/content/common/ContentSwitchUtils;
-HSPLorg/chromium/content/common/ContentSwitchUtils;->getSwitchValue([Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Lorg/chromium/content/common/IGpuProcessCallback;
-Lorg/chromium/content/common/IGpuProcessCallback$Stub;
-HSPLorg/chromium/content/common/IGpuProcessCallback$Stub;-><init>()V
-HSPLorg/chromium/content/common/IGpuProcessCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-Lorg/chromium/content/common/SurfaceWrapper;
-HSPLorg/chromium/content/common/SurfaceWrapper;-><init>(Landroid/view/Surface;Z)V
-HSPLorg/chromium/content/common/SurfaceWrapper;->create(Landroid/view/Surface;Z)Lorg/chromium/content/common/SurfaceWrapper;
-HSPLorg/chromium/content/common/SurfaceWrapper;->writeToParcel(Landroid/os/Parcel;I)V
-Lorg/chromium/content/common/SurfaceWrapper$1;
-HSPLorg/chromium/content/common/SurfaceWrapper$1;-><init>()V
-Lorg/chromium/content_public/browser/ActionModeCallbackHelper;
-HSPLorg/chromium/content_public/browser/ActionModeCallbackHelper;-><init>()V
-Lorg/chromium/content_public/browser/ActionModeCallbackHelper$EmptyActionCallback;
-HSPLorg/chromium/content_public/browser/ActionModeCallbackHelper$EmptyActionCallback;-><init>()V
-Lorg/chromium/content_public/browser/BrowserContextHandle;
-Lorg/chromium/content_public/browser/BrowserStartupController;
-HSPLorg/chromium/content_public/browser/BrowserStartupController;->getInstance()Lorg/chromium/content/browser/BrowserStartupControllerImpl;
-Lorg/chromium/content_public/browser/BrowserStartupController$StartupCallback;
-Lorg/chromium/content_public/browser/BrowserTaskExecutor;
-HSPLorg/chromium/content_public/browser/BrowserTaskExecutor;-><init>()V
-HSPLorg/chromium/content_public/browser/BrowserTaskExecutor;->canRunTaskImmediately(Lorg/chromium/base/task/TaskTraits;)Z
-HSPLorg/chromium/content_public/browser/BrowserTaskExecutor;->createSingleThreadTaskRunner(Lorg/chromium/base/task/TaskTraits;)Lorg/chromium/base/task/SingleThreadTaskRunner;
-HSPLorg/chromium/content_public/browser/BrowserTaskExecutor;->postDelayedTask(Lorg/chromium/base/task/TaskTraits;Ljava/lang/Runnable;J)V
-Lorg/chromium/content_public/browser/ContactsPicker;
-Lorg/chromium/content_public/browser/GestureListenerManager;
-Lorg/chromium/content_public/browser/GestureStateListener;
-HSPLorg/chromium/content_public/browser/GestureStateListener;-><init>()V
-HSPLorg/chromium/content_public/browser/GestureStateListener;->onScrollOffsetOrExtentChanged(II)V
-Lorg/chromium/content_public/browser/GlobalRenderFrameHostId;
-HSPLorg/chromium/content_public/browser/GlobalRenderFrameHostId;-><init>(II)V
-Lorg/chromium/content_public/browser/HostZoomMap;
-Lorg/chromium/content_public/browser/ImageDownloadCallback;
-Lorg/chromium/content_public/browser/ImeEventObserver;
-Lorg/chromium/content_public/browser/InputMethodManagerWrapper;
-Lorg/chromium/content_public/browser/InputMethodManagerWrapper$Delegate;
-Lorg/chromium/content_public/browser/InterfaceRegistrar;
-Lorg/chromium/content_public/browser/InterfaceRegistrar$Registry;
-HSPLorg/chromium/content_public/browser/InterfaceRegistrar$Registry;-><init>()V
-Lorg/chromium/content_public/browser/LoadCommittedDetails;
-HSPLorg/chromium/content_public/browser/LoadCommittedDetails;-><init>(ILorg/chromium/url/GURL;ZZZI)V
-Lorg/chromium/content_public/browser/LoadUrlParams;
-HSPLorg/chromium/content_public/browser/LoadUrlParams;-><init>(ILjava/lang/String;)V
-Lorg/chromium/content_public/browser/MediaSession;
-HSPLorg/chromium/content_public/browser/MediaSession;-><init>()V
-Lorg/chromium/content_public/browser/MediaSessionObserver;
-HSPLorg/chromium/content_public/browser/MediaSessionObserver;-><init>(Lorg/chromium/content/browser/MediaSessionImpl;)V
-Lorg/chromium/content_public/browser/NavigationController;
-Lorg/chromium/content_public/browser/NavigationEntry;
-HSPLorg/chromium/content_public/browser/NavigationEntry;-><init>(ILorg/chromium/url/GURL;Lorg/chromium/url/GURL;Lorg/chromium/url/GURL;Ljava/lang/String;Landroid/graphics/Bitmap;)V
-Lorg/chromium/content_public/browser/NavigationHandle;
-HSPLorg/chromium/content_public/browser/NavigationHandle;-><init>()V
-HSPLorg/chromium/content_public/browser/NavigationHandle;->didFinish(Lorg/chromium/url/GURL;ZZZZZIIIZ)V
-HSPLorg/chromium/content_public/browser/NavigationHandle;->initialize(JLorg/chromium/url/GURL;Lorg/chromium/url/GURL;Lorg/chromium/url/GURL;ZZZLorg/chromium/url/Origin;IZZZZJZZ)V
-HSPLorg/chromium/content_public/browser/NavigationHandle;->release()V
-Lorg/chromium/content_public/browser/SelectionClient;
-HSPLorg/chromium/content_public/browser/SelectionClient;->createSmartSelectionClient(Lorg/chromium/content_public/browser/WebContents;)Lorg/chromium/content/browser/selection/SmartSelectionClient;
-Lorg/chromium/content_public/browser/SelectionEventProcessor;
-Lorg/chromium/content_public/browser/SmartClipProvider;
-Lorg/chromium/content_public/browser/UiThreadTaskTraits;
-Lorg/chromium/content_public/browser/ViewEventSink;
-Lorg/chromium/content_public/browser/ViewEventSink$InternalAccessDelegate;
-Lorg/chromium/content_public/browser/WebContents;
-Lorg/chromium/content_public/browser/WebContents$1;
-HSPLorg/chromium/content_public/browser/WebContents$1;-><init>()V
-Lorg/chromium/content_public/browser/WebContentsAccessibility;
-Lorg/chromium/content_public/browser/WebContentsObserver;
-HSPLorg/chromium/content_public/browser/WebContentsObserver;-><init>()V
-HSPLorg/chromium/content_public/browser/WebContentsObserver;-><init>(Lorg/chromium/content_public/browser/WebContents;)V
-HSPLorg/chromium/content_public/browser/WebContentsObserver;->destroy()V
-HSPLorg/chromium/content_public/browser/WebContentsObserver;->didChangeVisibleSecurityState()V
-HSPLorg/chromium/content_public/browser/WebContentsObserver;->didFinishLoadInPrimaryMainFrame(Lorg/chromium/content_public/browser/GlobalRenderFrameHostId;Lorg/chromium/url/GURL;ZI)V
-HSPLorg/chromium/content_public/browser/WebContentsObserver;->didFinishNavigationInPrimaryMainFrame(Lorg/chromium/content_public/browser/NavigationHandle;)V
-HSPLorg/chromium/content_public/browser/WebContentsObserver;->didFirstVisuallyNonEmptyPaint()V
-HSPLorg/chromium/content_public/browser/WebContentsObserver;->didStartLoading(Lorg/chromium/url/GURL;)V
-HSPLorg/chromium/content_public/browser/WebContentsObserver;->didStartNavigationInPrimaryMainFrame(Lorg/chromium/content_public/browser/NavigationHandle;)V
-HSPLorg/chromium/content_public/browser/WebContentsObserver;->didStopLoading(Lorg/chromium/url/GURL;Z)V
-HSPLorg/chromium/content_public/browser/WebContentsObserver;->documentLoadedInPrimaryMainFrame(Lorg/chromium/content_public/browser/GlobalRenderFrameHostId;I)V
-HSPLorg/chromium/content_public/browser/WebContentsObserver;->loadProgressChanged(F)V
-HSPLorg/chromium/content_public/browser/WebContentsObserver;->navigationEntriesChanged()V
-HSPLorg/chromium/content_public/browser/WebContentsObserver;->navigationEntryCommitted(Lorg/chromium/content_public/browser/LoadCommittedDetails;)V
-HSPLorg/chromium/content_public/browser/WebContentsObserver;->onWebContentsFocused()V
-HSPLorg/chromium/content_public/browser/WebContentsObserver;->onWebContentsLostFocus()V
-HSPLorg/chromium/content_public/browser/WebContentsObserver;->primaryMainDocumentElementAvailable()V
-HSPLorg/chromium/content_public/browser/WebContentsObserver;->renderFrameCreated(Lorg/chromium/content_public/browser/GlobalRenderFrameHostId;)V
-HSPLorg/chromium/content_public/browser/WebContentsObserver;->wasHidden()V
-HSPLorg/chromium/content_public/browser/WebContentsObserver;->wasShown()V
-Lorg/chromium/device/battery/BatteryMonitorFactory;
-HSPLorg/chromium/device/battery/BatteryMonitorFactory;-><init>()V
-HSPLorg/chromium/device/battery/BatteryMonitorFactory;->createImpl()Lorg/chromium/mojo/bindings/Interface;
-Lorg/chromium/device/battery/BatteryMonitorFactory$1;
-HSPLorg/chromium/device/battery/BatteryMonitorFactory$1;-><init>(Lorg/chromium/device/battery/BatteryMonitorFactory;)V
-HSPLorg/chromium/device/battery/BatteryMonitorFactory$1;->onBatteryStatusChanged(Lorg/chromium/device/mojom/BatteryStatus;)V
-Lorg/chromium/device/battery/BatteryMonitorImpl;
-HSPLorg/chromium/device/battery/BatteryMonitorImpl;-><init>(Lorg/chromium/device/battery/BatteryMonitorFactory;)V
-HSPLorg/chromium/device/battery/BatteryMonitorImpl;->queryNextStatus(Lorg/chromium/device/mojom/BatteryMonitor_Internal$BatteryMonitorQueryNextStatusResponseParamsProxyToResponder;)V
-Lorg/chromium/device/battery/BatteryStatusManager;
-HSPLorg/chromium/device/battery/BatteryStatusManager;-><init>(Lorg/chromium/device/battery/BatteryMonitorFactory$1;)V
-Lorg/chromium/device/battery/BatteryStatusManager$1;
-HSPLorg/chromium/device/battery/BatteryStatusManager$1;-><init>(Lorg/chromium/device/battery/BatteryStatusManager;)V
-HSPLorg/chromium/device/battery/BatteryStatusManager$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-Lorg/chromium/device/battery/BatteryStatusManager$2;
-HSPLorg/chromium/device/battery/BatteryStatusManager$2;-><init>(Lorg/chromium/device/battery/BatteryStatusManager;Lorg/chromium/device/mojom/BatteryStatus;)V
-HSPLorg/chromium/device/battery/BatteryStatusManager$2;->doInBackground()Ljava/lang/Object;
-HSPLorg/chromium/device/battery/BatteryStatusManager$2;->onPostExecute(Ljava/lang/Object;)V
-Lorg/chromium/device/battery/BatteryStatusManager$AndroidBatteryManagerWrapper;
-HSPLorg/chromium/device/battery/BatteryStatusManager$AndroidBatteryManagerWrapper;-><init>(Landroid/os/BatteryManager;)V
-Lorg/chromium/device/geolocation/LocationProviderFactory;
-HSPLorg/chromium/device/geolocation/LocationProviderFactory;->useGmsCoreLocationProvider()V
-Lorg/chromium/device/mojom/BatteryMonitor;
-Lorg/chromium/device/mojom/BatteryMonitor_Internal;
-Lorg/chromium/device/mojom/BatteryMonitor_Internal$1;
-HSPLorg/chromium/device/mojom/BatteryMonitor_Internal$1;-><init>()V
-HSPLorg/chromium/device/mojom/BatteryMonitor_Internal$1;->buildStub(Lorg/chromium/mojo/system/Core;Lorg/chromium/mojo/bindings/Interface;)Lorg/chromium/mojo/bindings/Interface$Stub;
-HSPLorg/chromium/device/mojom/BatteryMonitor_Internal$1;->getName()Ljava/lang/String;
-Lorg/chromium/device/mojom/BatteryMonitor_Internal$BatteryMonitorQueryNextStatusParams;
-Lorg/chromium/device/mojom/BatteryMonitor_Internal$BatteryMonitorQueryNextStatusResponseParams;
-HSPLorg/chromium/device/mojom/BatteryMonitor_Internal$BatteryMonitorQueryNextStatusResponseParams;-><init>(I)V
-HSPLorg/chromium/device/mojom/BatteryMonitor_Internal$BatteryMonitorQueryNextStatusResponseParams;->encode(Lorg/chromium/mojo/bindings/Encoder;)V
-Lorg/chromium/device/mojom/BatteryMonitor_Internal$BatteryMonitorQueryNextStatusResponseParamsProxyToResponder;
-HSPLorg/chromium/device/mojom/BatteryMonitor_Internal$BatteryMonitorQueryNextStatusResponseParamsProxyToResponder;-><init>(Lorg/chromium/mojo/system/Core;Lorg/chromium/mojo/bindings/MessageReceiver;J)V
-HSPLorg/chromium/device/mojom/BatteryMonitor_Internal$BatteryMonitorQueryNextStatusResponseParamsProxyToResponder;->call(Ljava/lang/Object;)V
-Lorg/chromium/device/mojom/BatteryMonitor_Internal$Stub;
-HSPLorg/chromium/device/mojom/BatteryMonitor_Internal$Stub;-><init>(Lorg/chromium/mojo/system/Core;Lorg/chromium/device/mojom/BatteryMonitor;)V
-HSPLorg/chromium/device/mojom/BatteryMonitor_Internal$Stub;->acceptWithResponder(Lorg/chromium/mojo/bindings/Message;Lorg/chromium/mojo/bindings/MessageReceiver;)Z
-Lorg/chromium/device/mojom/BatteryStatus;
-HSPLorg/chromium/device/mojom/BatteryStatus;-><init>(I)V
-HSPLorg/chromium/device/mojom/BatteryStatus;->encode(Lorg/chromium/mojo/bindings/Encoder;)V
-Lorg/chromium/device/mojom/NfcProvider_Internal;
-Lorg/chromium/device/mojom/NfcProvider_Internal$1;
-HSPLorg/chromium/device/mojom/NfcProvider_Internal$1;-><init>()V
-HSPLorg/chromium/device/mojom/NfcProvider_Internal$1;->getName()Ljava/lang/String;
-Lorg/chromium/device/mojom/VibrationManager_Internal;
-Lorg/chromium/device/mojom/VibrationManager_Internal$1;
-HSPLorg/chromium/device/mojom/VibrationManager_Internal$1;-><init>()V
-HSPLorg/chromium/device/mojom/VibrationManager_Internal$1;->getName()Ljava/lang/String;
-Lorg/chromium/device/nfc/NfcDelegate;
-Lorg/chromium/device/nfc/NfcProviderImpl$Factory;
-HSPLorg/chromium/device/nfc/NfcProviderImpl$Factory;-><init>(Lorg/chromium/device/nfc/NfcDelegate;)V
-Lorg/chromium/device/time_zone_monitor/TimeZoneMonitor;
-HSPLorg/chromium/device/time_zone_monitor/TimeZoneMonitor;-><init>(J)V
-HSPLorg/chromium/device/time_zone_monitor/TimeZoneMonitor;->getInstance(J)Lorg/chromium/device/time_zone_monitor/TimeZoneMonitor;
-Lorg/chromium/device/time_zone_monitor/TimeZoneMonitor$1;
-HSPLorg/chromium/device/time_zone_monitor/TimeZoneMonitor$1;-><init>(Lorg/chromium/device/time_zone_monitor/TimeZoneMonitor;)V
-Lorg/chromium/device/vibration/VibrationManagerImpl$Factory;
-HSPLorg/chromium/device/vibration/VibrationManagerImpl$Factory;-><init>()V
-Lorg/chromium/media/AudioDeviceListener;
-HSPLorg/chromium/media/AudioDeviceListener;-><init>(Lorg/chromium/media/AudioDeviceSelector$Devices;)V
-HSPLorg/chromium/media/AudioDeviceListener;->hasUsbAudio()Z
-HSPLorg/chromium/media/AudioDeviceListener;->init(Z)V
-Lorg/chromium/media/AudioDeviceListener$1;
-HSPLorg/chromium/media/AudioDeviceListener$1;-><init>(Lorg/chromium/media/AudioDeviceListener;I)V
-Lorg/chromium/media/AudioDeviceSelector;
-HSPLorg/chromium/media/AudioDeviceSelector;-><init>(Landroid/media/AudioManager;)V
-HSPLorg/chromium/media/AudioDeviceSelector;->maybeUpdateSelectedDevice()V
-Lorg/chromium/media/AudioDeviceSelector$Devices;
-HSPLorg/chromium/media/AudioDeviceSelector$Devices;-><init>(Lorg/chromium/media/AudioDeviceSelector;)V
-HSPLorg/chromium/media/AudioDeviceSelector$Devices;->setDeviceExistence(IZ)V
-Lorg/chromium/media/AudioDeviceSelectorPreS;
-HSPLorg/chromium/media/AudioDeviceSelectorPreS;-><init>(Landroid/media/AudioManager;)V
-HSPLorg/chromium/media/AudioDeviceSelectorPreS;->init()V
-HSPLorg/chromium/media/AudioDeviceSelectorPreS;->setDeviceExistence_Locked(IZ)V
-Lorg/chromium/media/AudioDeviceSelectorPreS$1;
-HSPLorg/chromium/media/AudioDeviceSelectorPreS$1;-><init>(Lorg/chromium/media/AudioDeviceSelectorPreS;)V
-HSPLorg/chromium/media/AudioDeviceSelectorPreS$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-Lorg/chromium/media/AudioManagerAndroid;
-HSPLorg/chromium/media/AudioManagerAndroid;-><init>(J)V
-HSPLorg/chromium/media/AudioManagerAndroid;->createAudioManagerAndroid(J)Lorg/chromium/media/AudioManagerAndroid;
-HSPLorg/chromium/media/AudioManagerAndroid;->init()V
-Lorg/chromium/media/CodecProfileLevelList$UnsupportedCodecProfileException;
-Lorg/chromium/media/MediaCodecUtil;
-HSPLorg/chromium/media/MediaCodecUtil;->isDecoderSupportedForDevice(Ljava/lang/String;)Z
-Lorg/chromium/mojo/bindings/BindingsHelper;
-HSPLorg/chromium/mojo/bindings/BindingsHelper;->isArrayNullable(I)Z
-Lorg/chromium/mojo/bindings/Callbacks$Callback1;
-Lorg/chromium/mojo/bindings/ConnectionErrorHandler;
-Lorg/chromium/mojo/bindings/Connector;
-HSPLorg/chromium/mojo/bindings/Connector;-><init>(Lorg/chromium/mojo/system/MessagePipeHandle;Lorg/chromium/mojo/system/impl/WatcherImpl;)V
-HSPLorg/chromium/mojo/bindings/Connector;->accept(Lorg/chromium/mojo/bindings/Message;)Z
-HSPLorg/chromium/mojo/bindings/Connector;->close()V
-HSPLorg/chromium/mojo/bindings/Connector;->readAndDispatchMessage(Lorg/chromium/mojo/system/MessagePipeHandle;Lorg/chromium/mojo/bindings/MessageReceiver;)Lorg/chromium/mojo/system/ResultAnd;
-Lorg/chromium/mojo/bindings/Connector$WatcherCallback;
-HSPLorg/chromium/mojo/bindings/Connector$WatcherCallback;-><init>(Lorg/chromium/mojo/bindings/Connector;)V
-HSPLorg/chromium/mojo/bindings/Connector$WatcherCallback;->onResult(I)V
-Lorg/chromium/mojo/bindings/DataHeader;
-HSPLorg/chromium/mojo/bindings/DataHeader;-><init>(II)V
-Lorg/chromium/mojo/bindings/Decoder;
-HSPLorg/chromium/mojo/bindings/Decoder;-><init>(Lorg/chromium/mojo/bindings/Message;)V
-HSPLorg/chromium/mojo/bindings/Decoder;-><init>(Lorg/chromium/mojo/bindings/Message;Lorg/chromium/mojo/bindings/Decoder$Validator;I)V
-HSPLorg/chromium/mojo/bindings/Decoder;->decreaseStackDepth()V
-HSPLorg/chromium/mojo/bindings/Decoder;->increaseStackDepth()V
-HSPLorg/chromium/mojo/bindings/Decoder;->readAndValidateDataHeader([Lorg/chromium/mojo/bindings/DataHeader;)Lorg/chromium/mojo/bindings/DataHeader;
-HSPLorg/chromium/mojo/bindings/Decoder;->readBytes(III)[B
-HSPLorg/chromium/mojo/bindings/Decoder;->readDataHeader()Lorg/chromium/mojo/bindings/DataHeader;
-HSPLorg/chromium/mojo/bindings/Decoder;->readDataHeaderAtOffset(IZ)Lorg/chromium/mojo/bindings/DataHeader;
-HSPLorg/chromium/mojo/bindings/Decoder;->readDataHeaderForArray(IJ)Lorg/chromium/mojo/bindings/DataHeader;
-HSPLorg/chromium/mojo/bindings/Decoder;->readInt(I)I
-HSPLorg/chromium/mojo/bindings/Decoder;->readLong(I)J
-HSPLorg/chromium/mojo/bindings/Decoder;->readPointer(IZ)Lorg/chromium/mojo/bindings/Decoder;
-HSPLorg/chromium/mojo/bindings/Decoder;->readString(IZ)Ljava/lang/String;
-HSPLorg/chromium/mojo/bindings/Decoder;->readUntypedHandle(IZ)Lorg/chromium/mojo/system/UntypedHandle;
-HSPLorg/chromium/mojo/bindings/Decoder;->validateBufferSize(II)V
-Lorg/chromium/mojo/bindings/Decoder$Validator;
-HSPLorg/chromium/mojo/bindings/Decoder$Validator;-><init>(IJ)V
-HSPLorg/chromium/mojo/bindings/Decoder$Validator;->claimMemory(JJ)V
-Lorg/chromium/mojo/bindings/DeserializationException;
-Lorg/chromium/mojo/bindings/Encoder;
-HSPLorg/chromium/mojo/bindings/Encoder;-><init>(Lorg/chromium/mojo/bindings/Encoder$EncoderState;)V
-HSPLorg/chromium/mojo/bindings/Encoder;-><init>(Lorg/chromium/mojo/system/Core;I)V
-HSPLorg/chromium/mojo/bindings/Encoder;->encode(II)V
-HSPLorg/chromium/mojo/bindings/Encoder;->encode(III[B)V
-HSPLorg/chromium/mojo/bindings/Encoder;->encode(IIZ)V
-HSPLorg/chromium/mojo/bindings/Encoder;->encode(IJ)V
-HSPLorg/chromium/mojo/bindings/Encoder;->encode(Ljava/lang/String;IZ)V
-HSPLorg/chromium/mojo/bindings/Encoder;->encode(Lorg/chromium/mojo/bindings/DataHeader;)V
-HSPLorg/chromium/mojo/bindings/Encoder;->encode(Lorg/chromium/mojo/bindings/Struct;IZ)V
-HSPLorg/chromium/mojo/bindings/Encoder;->encode(Lorg/chromium/mojo/system/Handle;IZ)V
-HSPLorg/chromium/mojo/bindings/Encoder;->encodePointerArray(II)Lorg/chromium/mojo/bindings/Encoder;
-HSPLorg/chromium/mojo/bindings/Encoder;->encoderForArray(IIII)Lorg/chromium/mojo/bindings/Encoder;
-HSPLorg/chromium/mojo/bindings/Encoder;->getEncoderAtDataOffset(Lorg/chromium/mojo/bindings/DataHeader;)Lorg/chromium/mojo/bindings/Encoder;
-HSPLorg/chromium/mojo/bindings/Encoder;->getMessage()Lorg/chromium/mojo/bindings/Message;
-Lorg/chromium/mojo/bindings/Encoder$EncoderState;
-HSPLorg/chromium/mojo/bindings/Encoder$EncoderState;-><init>(Lorg/chromium/mojo/system/Core;I)V
-Lorg/chromium/mojo/bindings/ExecutorFactory;
-HSPLorg/chromium/mojo/bindings/ExecutorFactory;->getExecutorForCurrentThread(Lorg/chromium/mojo/system/Core;)Ljava/util/concurrent/Executor;
-Lorg/chromium/mojo/bindings/ExecutorFactory$PipedExecutor;
-HSPLorg/chromium/mojo/bindings/ExecutorFactory$PipedExecutor;-><init>(Lorg/chromium/mojo/system/Core;)V
-HSPLorg/chromium/mojo/bindings/ExecutorFactory$PipedExecutor;->execute(Ljava/lang/Runnable;)V
-HSPLorg/chromium/mojo/bindings/ExecutorFactory$PipedExecutor;->onResult(I)V
-Lorg/chromium/mojo/bindings/HandleOwner;
-Lorg/chromium/mojo/bindings/Interface;
-Lorg/chromium/mojo/bindings/Interface$Manager;
-HSPLorg/chromium/mojo/bindings/Interface$Manager;-><init>()V
-HSPLorg/chromium/mojo/bindings/Interface$Manager;->bind(Lorg/chromium/mojo/bindings/Interface;Lorg/chromium/mojo/system/MessagePipeHandle;)Lorg/chromium/mojo/bindings/RouterImpl;
-Lorg/chromium/mojo/bindings/Interface$Stub;
-HSPLorg/chromium/mojo/bindings/Interface$Stub;-><init>(Lorg/chromium/mojo/system/Core;Lorg/chromium/mojo/bindings/Interface;)V
-HSPLorg/chromium/mojo/bindings/Interface$Stub;->close()V
-Lorg/chromium/mojo/bindings/Message;
-HSPLorg/chromium/mojo/bindings/Message;-><init>(Ljava/nio/ByteBuffer;Ljava/util/List;)V
-HSPLorg/chromium/mojo/bindings/Message;->asServiceMessage()Lorg/chromium/mojo/bindings/ServiceMessage;
-Lorg/chromium/mojo/bindings/MessageHeader;
-HSPLorg/chromium/mojo/bindings/MessageHeader;-><init>(IIJ)V
-HSPLorg/chromium/mojo/bindings/MessageHeader;-><init>(Lorg/chromium/mojo/bindings/Message;)V
-HSPLorg/chromium/mojo/bindings/MessageHeader;->hasFlag(I)Z
-HSPLorg/chromium/mojo/bindings/MessageHeader;->validateHeader(I)Z
-Lorg/chromium/mojo/bindings/MessageReceiver;
-Lorg/chromium/mojo/bindings/MessageReceiverWithResponder;
-Lorg/chromium/mojo/bindings/Router;
-Lorg/chromium/mojo/bindings/RouterImpl;
-HSPLorg/chromium/mojo/bindings/RouterImpl;-><init>(Lorg/chromium/mojo/system/MessagePipeHandle;)V
-HSPLorg/chromium/mojo/bindings/RouterImpl;->accept(Lorg/chromium/mojo/bindings/Message;)Z
-HSPLorg/chromium/mojo/bindings/RouterImpl;->start()V
-Lorg/chromium/mojo/bindings/RouterImpl$HandleIncomingMessageThunk;
-HSPLorg/chromium/mojo/bindings/RouterImpl$HandleIncomingMessageThunk;-><init>(Lorg/chromium/mojo/bindings/RouterImpl;)V
-HSPLorg/chromium/mojo/bindings/RouterImpl$HandleIncomingMessageThunk;->accept(Lorg/chromium/mojo/bindings/Message;)Z
-HSPLorg/chromium/mojo/bindings/RouterImpl$HandleIncomingMessageThunk;->close()V
-Lorg/chromium/mojo/bindings/RouterImpl$ResponderThunk;
-HSPLorg/chromium/mojo/bindings/RouterImpl$ResponderThunk;-><init>(Lorg/chromium/mojo/bindings/RouterImpl;)V
-HSPLorg/chromium/mojo/bindings/RouterImpl$ResponderThunk;->accept(Lorg/chromium/mojo/bindings/Message;)Z
-HSPLorg/chromium/mojo/bindings/RouterImpl$ResponderThunk;->finalize()V
-Lorg/chromium/mojo/bindings/ServiceMessage;
-HSPLorg/chromium/mojo/bindings/ServiceMessage;-><init>(Lorg/chromium/mojo/bindings/Message;Lorg/chromium/mojo/bindings/MessageHeader;)V
-HSPLorg/chromium/mojo/bindings/ServiceMessage;->getPayload()Lorg/chromium/mojo/bindings/Message;
-Lorg/chromium/mojo/bindings/Struct;
-HSPLorg/chromium/mojo/bindings/Struct;-><init>(I)V
-HSPLorg/chromium/mojo/bindings/Struct;->serializeWithHeader(Lorg/chromium/mojo/system/Core;Lorg/chromium/mojo/bindings/MessageHeader;)Lorg/chromium/mojo/bindings/ServiceMessage;
-Lorg/chromium/mojo/system/Core;
-Lorg/chromium/mojo/system/Core$HandleSignals;
-HSPLorg/chromium/mojo/system/Core$HandleSignals;-><init>()V
-Lorg/chromium/mojo/system/DataPipe$ConsumerHandle;
-Lorg/chromium/mojo/system/DataPipe$ProducerHandle;
-Lorg/chromium/mojo/system/Flags;
-HSPLorg/chromium/mojo/system/Flags;-><init>()V
-Lorg/chromium/mojo/system/Handle;
-Lorg/chromium/mojo/system/InvalidHandle;
-HSPLorg/chromium/mojo/system/InvalidHandle;-><init>()V
-Lorg/chromium/mojo/system/MessagePipeHandle;
-Lorg/chromium/mojo/system/MessagePipeHandle$CreateFlags;
-HSPLorg/chromium/mojo/system/MessagePipeHandle$CreateFlags;-><init>()V
-Lorg/chromium/mojo/system/MessagePipeHandle$CreateOptions;
-HSPLorg/chromium/mojo/system/MessagePipeHandle$CreateOptions;-><init>()V
-Lorg/chromium/mojo/system/MessagePipeHandle$ReadFlags;
-HSPLorg/chromium/mojo/system/MessagePipeHandle$ReadFlags;-><init>()V
-Lorg/chromium/mojo/system/MessagePipeHandle$ReadMessageResult;
-HSPLorg/chromium/mojo/system/MessagePipeHandle$ReadMessageResult;-><init>()V
-Lorg/chromium/mojo/system/MessagePipeHandle$WriteFlags;
-HSPLorg/chromium/mojo/system/MessagePipeHandle$WriteFlags;-><init>()V
-Lorg/chromium/mojo/system/MojoException;
-HSPLorg/chromium/mojo/system/MojoException;-><init>(I)V
-Lorg/chromium/mojo/system/Pair;
-HSPLorg/chromium/mojo/system/Pair;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
-Lorg/chromium/mojo/system/ResultAnd;
-HSPLorg/chromium/mojo/system/ResultAnd;-><init>(ILjava/lang/Object;)V
-Lorg/chromium/mojo/system/SharedBufferHandle;
-Lorg/chromium/mojo/system/UntypedHandle;
-Lorg/chromium/mojo/system/Watcher$Callback;
-Lorg/chromium/mojo/system/impl/CoreImpl;
-HSPLorg/chromium/mojo/system/impl/CoreImpl;-><init>()V
-HSPLorg/chromium/mojo/system/impl/CoreImpl;->allocateDirectBuffer(I)Ljava/nio/ByteBuffer;
-HSPLorg/chromium/mojo/system/impl/CoreImpl;->createMessagePipe(Lorg/chromium/mojo/system/MessagePipeHandle$CreateOptions;)Lorg/chromium/mojo/system/Pair;
-HSPLorg/chromium/mojo/system/impl/CoreImpl;->newNativeCreationResult(IJJ)Lorg/chromium/mojo/system/ResultAnd;
-HSPLorg/chromium/mojo/system/impl/CoreImpl;->newReadMessageResult(I[B[J)Lorg/chromium/mojo/system/ResultAnd;
-Lorg/chromium/mojo/system/impl/CoreImpl$LazyHolder;
-Lorg/chromium/mojo/system/impl/CoreImpl$RawHandlePair;
-HSPLorg/chromium/mojo/system/impl/CoreImpl$RawHandlePair;-><init>(Ljava/lang/Long;Ljava/lang/Long;)V
-Lorg/chromium/mojo/system/impl/HandleBase;
-HSPLorg/chromium/mojo/system/impl/HandleBase;-><init>(Lorg/chromium/mojo/system/impl/CoreImpl;J)V
-HSPLorg/chromium/mojo/system/impl/HandleBase;-><init>(Lorg/chromium/mojo/system/impl/HandleBase;)V
-HSPLorg/chromium/mojo/system/impl/HandleBase;->close()V
-HSPLorg/chromium/mojo/system/impl/HandleBase;->finalize()V
-HSPLorg/chromium/mojo/system/impl/HandleBase;->getCore()Lorg/chromium/mojo/system/Core;
-HSPLorg/chromium/mojo/system/impl/HandleBase;->isValid()Z
-HSPLorg/chromium/mojo/system/impl/HandleBase;->releaseNativeHandle()J
-HSPLorg/chromium/mojo/system/impl/HandleBase;->toUntypedHandle()Lorg/chromium/mojo/system/UntypedHandle;
-Lorg/chromium/mojo/system/impl/MessagePipeHandleImpl;
-HSPLorg/chromium/mojo/system/impl/MessagePipeHandleImpl;-><init>(Lorg/chromium/mojo/system/impl/CoreImpl;J)V
-HSPLorg/chromium/mojo/system/impl/MessagePipeHandleImpl;-><init>(Lorg/chromium/mojo/system/impl/HandleBase;)V
-HSPLorg/chromium/mojo/system/impl/MessagePipeHandleImpl;->readMessage()Lorg/chromium/mojo/system/ResultAnd;
-HSPLorg/chromium/mojo/system/impl/MessagePipeHandleImpl;->writeMessage(Ljava/nio/ByteBuffer;Ljava/util/List;)V
-Lorg/chromium/mojo/system/impl/UntypedHandleImpl;
-HSPLorg/chromium/mojo/system/impl/UntypedHandleImpl;-><init>(Lorg/chromium/mojo/system/impl/CoreImpl;J)V
-HSPLorg/chromium/mojo/system/impl/UntypedHandleImpl;-><init>(Lorg/chromium/mojo/system/impl/HandleBase;)V
-HSPLorg/chromium/mojo/system/impl/UntypedHandleImpl;->toMessagePipeHandle()Lorg/chromium/mojo/system/MessagePipeHandle;
-Lorg/chromium/mojo/system/impl/WatcherImpl;
-HSPLorg/chromium/mojo/system/impl/WatcherImpl;-><init>()V
-HSPLorg/chromium/mojo/system/impl/WatcherImpl;->onHandleReady(I)V
-HSPLorg/chromium/mojo/system/impl/WatcherImpl;->start(Lorg/chromium/mojo/system/Handle;Lorg/chromium/mojo/system/Core$HandleSignals;Lorg/chromium/mojo/system/Watcher$Callback;)V
-Lorg/chromium/mojo_base/mojom/ReadOnlyFile;
-HSPLorg/chromium/mojo_base/mojom/ReadOnlyFile;-><init>(I)V
-HSPLorg/chromium/mojo_base/mojom/ReadOnlyFile;->encode(Lorg/chromium/mojo/bindings/Encoder;)V
-Lorg/chromium/net/AndroidCertVerifyResult;
-HSPLorg/chromium/net/AndroidCertVerifyResult;-><init>(Ljava/util/List;Z)V
-HSPLorg/chromium/net/AndroidCertVerifyResult;->getCertificateChainEncoded()[[B
-HSPLorg/chromium/net/AndroidCertVerifyResult;->getStatus()I
-HSPLorg/chromium/net/AndroidCertVerifyResult;->isIssuedByKnownRoot()Z
-Lorg/chromium/net/AndroidNetworkLibrary;
-HSPLorg/chromium/net/AndroidNetworkLibrary;->getCurrentDnsStatus()Lorg/chromium/net/DnsStatus;
-HSPLorg/chromium/net/AndroidNetworkLibrary;->getDnsStatus(Landroid/net/Network;)Lorg/chromium/net/DnsStatus;
-HSPLorg/chromium/net/AndroidNetworkLibrary;->verifyServerCertificates([[BLjava/lang/String;Ljava/lang/String;)Lorg/chromium/net/AndroidCertVerifyResult;
-Lorg/chromium/net/DnsStatus;
-HSPLorg/chromium/net/DnsStatus;-><init>(Ljava/util/List;ZLjava/lang/String;Ljava/lang/String;)V
-HSPLorg/chromium/net/DnsStatus;->getDnsServers()[[B
-HSPLorg/chromium/net/DnsStatus;->getPrivateDnsActive()Z
-HSPLorg/chromium/net/DnsStatus;->getPrivateDnsServerName()Ljava/lang/String;
-HSPLorg/chromium/net/DnsStatus;->getSearchDomains()Ljava/lang/String;
-Lorg/chromium/net/NetworkActiveNotifier;
-HSPLorg/chromium/net/NetworkActiveNotifier;-><init>(J)V
-HSPLorg/chromium/net/NetworkActiveNotifier;->build(J)Lorg/chromium/net/NetworkActiveNotifier;
-Lorg/chromium/net/NetworkChangeNotifier;
-HSPLorg/chromium/net/NetworkChangeNotifier;-><init>()V
-HSPLorg/chromium/net/NetworkChangeNotifier;->addNativeObserver(J)V
-HSPLorg/chromium/net/NetworkChangeNotifier;->getCurrentConnectionCost()I
-HSPLorg/chromium/net/NetworkChangeNotifier;->getCurrentConnectionSubtype()I
-HSPLorg/chromium/net/NetworkChangeNotifier;->getCurrentConnectionType()I
-HSPLorg/chromium/net/NetworkChangeNotifier;->getCurrentDefaultNetId()J
-HSPLorg/chromium/net/NetworkChangeNotifier;->getCurrentNetworksAndTypes()[J
-HSPLorg/chromium/net/NetworkChangeNotifier;->init()Lorg/chromium/net/NetworkChangeNotifier;
-HSPLorg/chromium/net/NetworkChangeNotifier;->notifyObserversOfConnectionCostChange(I)V
-HSPLorg/chromium/net/NetworkChangeNotifier;->notifyObserversOfConnectionSubtypeChange(I)V
-HSPLorg/chromium/net/NetworkChangeNotifier;->notifyObserversOfConnectionTypeChange(IJ)V
-HSPLorg/chromium/net/NetworkChangeNotifier;->notifyObserversOfNetworkConnect(IJ)V
-HSPLorg/chromium/net/NetworkChangeNotifier;->registerNetworkCallbackFailed()Z
-HSPLorg/chromium/net/NetworkChangeNotifier;->removeConnectionTypeObserver(Lorg/chromium/net/NetworkChangeNotifier$ConnectionTypeObserver;)V
-HSPLorg/chromium/net/NetworkChangeNotifier;->setAutoDetectConnectivityState(Z)V
-Lorg/chromium/net/NetworkChangeNotifier$1;
-HSPLorg/chromium/net/NetworkChangeNotifier$1;-><init>(Lorg/chromium/net/NetworkChangeNotifier;)V
-HSPLorg/chromium/net/NetworkChangeNotifier$1;->onNetworkConnect(IJ)V
-Lorg/chromium/net/NetworkChangeNotifier$ConnectionTypeObserver;
-Lorg/chromium/net/NetworkChangeNotifierAutoDetect;
-HSPLorg/chromium/net/NetworkChangeNotifierAutoDetect;->-$$Nest$smconvertToConnectionType(II)I
-HSPLorg/chromium/net/NetworkChangeNotifierAutoDetect;-><init>(Lorg/chromium/net/NetworkChangeNotifierAutoDetect$Observer;Lorg/chromium/net/NetworkChangeNotifierAutoDetect$RegistrationPolicy;)V
-HSPLorg/chromium/net/NetworkChangeNotifierAutoDetect;->connectionTypeChangedTo(Lorg/chromium/net/NetworkChangeNotifierAutoDetect$NetworkState;)V
-HSPLorg/chromium/net/NetworkChangeNotifierAutoDetect;->getAllNetworksFiltered(Lorg/chromium/net/NetworkChangeNotifierAutoDetect$ConnectivityManagerDelegate;Landroid/net/Network;)[Landroid/net/Network;
-HSPLorg/chromium/net/NetworkChangeNotifierAutoDetect;->getCurrentNetworkState()Lorg/chromium/net/NetworkChangeNotifierAutoDetect$NetworkState;
-HSPLorg/chromium/net/NetworkChangeNotifierAutoDetect;->runOnThread(Ljava/lang/Runnable;)V
-Lorg/chromium/net/NetworkChangeNotifierAutoDetect$ConnectivityManagerDelegate;
-HSPLorg/chromium/net/NetworkChangeNotifierAutoDetect$ConnectivityManagerDelegate;-><init>(Landroid/content/Context;)V
-HSPLorg/chromium/net/NetworkChangeNotifierAutoDetect$ConnectivityManagerDelegate;->getConnectionType(Landroid/net/Network;)I
-HSPLorg/chromium/net/NetworkChangeNotifierAutoDetect$ConnectivityManagerDelegate;->getDefaultNetwork()Landroid/net/Network;
-HSPLorg/chromium/net/NetworkChangeNotifierAutoDetect$ConnectivityManagerDelegate;->getNetworkCapabilities(Landroid/net/Network;)Landroid/net/NetworkCapabilities;
-HSPLorg/chromium/net/NetworkChangeNotifierAutoDetect$ConnectivityManagerDelegate;->getNetworkInfo(Landroid/net/Network;)Landroid/net/NetworkInfo;
-HSPLorg/chromium/net/NetworkChangeNotifierAutoDetect$ConnectivityManagerDelegate;->getRawNetworkInfo(Landroid/net/Network;)Landroid/net/NetworkInfo;
-Lorg/chromium/net/NetworkChangeNotifierAutoDetect$DefaultNetworkCallback;
-HSPLorg/chromium/net/NetworkChangeNotifierAutoDetect$DefaultNetworkCallback;-><init>(Lorg/chromium/net/NetworkChangeNotifierAutoDetect;)V
-HSPLorg/chromium/net/NetworkChangeNotifierAutoDetect$DefaultNetworkCallback;->onAvailable(Landroid/net/Network;)V
-HSPLorg/chromium/net/NetworkChangeNotifierAutoDetect$DefaultNetworkCallback;->onLinkPropertiesChanged(Landroid/net/Network;Landroid/net/LinkProperties;)V
-Lorg/chromium/net/NetworkChangeNotifierAutoDetect$MyNetworkCallback;
-HSPLorg/chromium/net/NetworkChangeNotifierAutoDetect$MyNetworkCallback;-><init>(Lorg/chromium/net/NetworkChangeNotifierAutoDetect;)V
-HSPLorg/chromium/net/NetworkChangeNotifierAutoDetect$MyNetworkCallback;->ignoreConnectedNetwork(Landroid/net/Network;Landroid/net/NetworkCapabilities;)Z
-HSPLorg/chromium/net/NetworkChangeNotifierAutoDetect$MyNetworkCallback;->onAvailable(Landroid/net/Network;)V
-HSPLorg/chromium/net/NetworkChangeNotifierAutoDetect$MyNetworkCallback;->onCapabilitiesChanged(Landroid/net/Network;Landroid/net/NetworkCapabilities;)V
-Lorg/chromium/net/NetworkChangeNotifierAutoDetect$MyNetworkCallback$1;
-HSPLorg/chromium/net/NetworkChangeNotifierAutoDetect$MyNetworkCallback$1;-><init>(Lorg/chromium/net/NetworkChangeNotifierAutoDetect$MyNetworkCallback;JIZ)V
-HSPLorg/chromium/net/NetworkChangeNotifierAutoDetect$MyNetworkCallback$1;->run()V
-Lorg/chromium/net/NetworkChangeNotifierAutoDetect$MyNetworkCallback$2;
-HSPLorg/chromium/net/NetworkChangeNotifierAutoDetect$MyNetworkCallback$2;-><init>(Lorg/chromium/net/NetworkChangeNotifierAutoDetect$MyNetworkCallback;JI)V
-HSPLorg/chromium/net/NetworkChangeNotifierAutoDetect$MyNetworkCallback$2;->run()V
-Lorg/chromium/net/NetworkChangeNotifierAutoDetect$NetworkConnectivityIntentFilter;
-HSPLorg/chromium/net/NetworkChangeNotifierAutoDetect$NetworkConnectivityIntentFilter;-><init>()V
-Lorg/chromium/net/NetworkChangeNotifierAutoDetect$NetworkState;
-HSPLorg/chromium/net/NetworkChangeNotifierAutoDetect$NetworkState;-><init>(ZIIZLjava/lang/String;ZLjava/lang/String;)V
-HSPLorg/chromium/net/NetworkChangeNotifierAutoDetect$NetworkState;->getConnectionSubtype()I
-HSPLorg/chromium/net/NetworkChangeNotifierAutoDetect$NetworkState;->getConnectionType()I
-Lorg/chromium/net/NetworkChangeNotifierAutoDetect$Observer;
-Lorg/chromium/net/NetworkChangeNotifierAutoDetect$RegistrationPolicy;
-HSPLorg/chromium/net/NetworkChangeNotifierAutoDetect$RegistrationPolicy;-><init>()V
-HSPLorg/chromium/net/NetworkChangeNotifierAutoDetect$RegistrationPolicy;->register$1()V
-Lorg/chromium/net/NetworkTrafficAnnotationTag;
-HSPLorg/chromium/net/NetworkTrafficAnnotationTag;-><init>(Ljava/lang/String;)V
-Lorg/chromium/net/ProxyBroadcastReceiver;
-HSPLorg/chromium/net/ProxyBroadcastReceiver;-><init>(Lorg/chromium/net/ProxyChangeListener;)V
-Lorg/chromium/net/ProxyChangeListener;
-HSPLorg/chromium/net/ProxyChangeListener;-><init>()V
-HSPLorg/chromium/net/ProxyChangeListener;->create()Lorg/chromium/net/ProxyChangeListener;
-HSPLorg/chromium/net/ProxyChangeListener;->getProperty(Ljava/lang/String;)Ljava/lang/String;
-HSPLorg/chromium/net/ProxyChangeListener;->registerBroadcastReceiver()V
-HSPLorg/chromium/net/ProxyChangeListener;->start(J)V
-Lorg/chromium/net/ProxyChangeListener$ProxyReceiver;
-HSPLorg/chromium/net/ProxyChangeListener$ProxyReceiver;-><init>(Lorg/chromium/net/ProxyChangeListener;)V
-Lorg/chromium/net/RegistrationPolicyAlwaysRegister;
-HSPLorg/chromium/net/RegistrationPolicyAlwaysRegister;-><init>()V
-HSPLorg/chromium/net/RegistrationPolicyAlwaysRegister;->init(Lorg/chromium/net/NetworkChangeNotifierAutoDetect;)V
-Lorg/chromium/net/RegistrationPolicyApplicationStatus;
-HSPLorg/chromium/net/RegistrationPolicyApplicationStatus;-><init>()V
-HSPLorg/chromium/net/RegistrationPolicyApplicationStatus;->init(Lorg/chromium/net/NetworkChangeNotifierAutoDetect;)V
-HSPLorg/chromium/net/RegistrationPolicyApplicationStatus;->onApplicationStateChange(I)V
-Lorg/chromium/net/X509Util;
-HSPLorg/chromium/net/X509Util;->createCertificateFromBytes([B)Ljava/security/cert/X509Certificate;
-HSPLorg/chromium/net/X509Util;->createTrustManager(Ljava/security/KeyStore;)Landroid/net/http/X509TrustManagerExtensions;
-HSPLorg/chromium/net/X509Util;->ensureInitializedLocked()V
-HSPLorg/chromium/net/X509Util;->isKnownRoot(Ljava/security/cert/X509Certificate;)Z
-HSPLorg/chromium/net/X509Util;->verifyKeyUsage(Ljava/security/cert/X509Certificate;)Z
-HSPLorg/chromium/net/X509Util;->verifyServerCertificates([[BLjava/lang/String;Ljava/lang/String;)Lorg/chromium/net/AndroidCertVerifyResult;
-Lorg/chromium/net/X509Util$TrustStorageListener;
-HSPLorg/chromium/net/X509Util$TrustStorageListener;-><init>()V
-Lorg/chromium/service_manager/mojom/InterfaceProvider;
-Lorg/chromium/service_manager/mojom/InterfaceProvider_Internal$InterfaceProviderGetInterfaceParams;
-HSPLorg/chromium/service_manager/mojom/InterfaceProvider_Internal$InterfaceProviderGetInterfaceParams;-><init>(I)V
-HSPLorg/chromium/service_manager/mojom/InterfaceProvider_Internal$InterfaceProviderGetInterfaceParams;->deserialize(Lorg/chromium/mojo/bindings/Message;)Lorg/chromium/service_manager/mojom/InterfaceProvider_Internal$InterfaceProviderGetInterfaceParams;
-Lorg/chromium/service_manager/mojom/InterfaceProvider_Internal$Stub;
-HSPLorg/chromium/service_manager/mojom/InterfaceProvider_Internal$Stub;-><init>(Lorg/chromium/mojo/system/Core;Lorg/chromium/service_manager/mojom/InterfaceProvider;)V
-HSPLorg/chromium/service_manager/mojom/InterfaceProvider_Internal$Stub;->accept(Lorg/chromium/mojo/bindings/Message;)Z
-Lorg/chromium/services/device/InterfaceRegistrar;
-HSPLorg/chromium/services/device/InterfaceRegistrar;->createInterfaceRegistryForContext(JLorg/chromium/device/nfc/NfcDelegate;)V
-Lorg/chromium/services/media_session/MediaImage;
-Lorg/chromium/services/media_session/MediaMetadata;
-HSPLorg/chromium/services/media_session/MediaMetadata;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-HSPLorg/chromium/services/media_session/MediaMetadata;->create(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/chromium/services/media_session/MediaMetadata;
-Lorg/chromium/services/service_manager/InterfaceFactory;
-Lorg/chromium/services/service_manager/InterfaceRegistry;
-HSPLorg/chromium/services/service_manager/InterfaceRegistry;-><init>()V
-HSPLorg/chromium/services/service_manager/InterfaceRegistry;->addInterface(Lorg/chromium/mojo/bindings/Interface$Manager;Lorg/chromium/services/service_manager/InterfaceFactory;)V
-HSPLorg/chromium/services/service_manager/InterfaceRegistry;->create(Lorg/chromium/mojo/system/impl/MessagePipeHandleImpl;)Lorg/chromium/services/service_manager/InterfaceRegistry;
-HSPLorg/chromium/services/service_manager/InterfaceRegistry;->getInterface(Ljava/lang/String;Lorg/chromium/mojo/system/MessagePipeHandle;)V
-Lorg/chromium/services/service_manager/InterfaceRegistry$InterfaceBinder;
-HSPLorg/chromium/services/service_manager/InterfaceRegistry$InterfaceBinder;-><init>(Lorg/chromium/mojo/bindings/Interface$Manager;Lorg/chromium/services/service_manager/InterfaceFactory;)V
-Lorg/chromium/third_party/android/swiperefresh/CircleImageView;
-HSPLorg/chromium/third_party/android/swiperefresh/CircleImageView;-><init>(Landroid/content/Context;)V
-HSPLorg/chromium/third_party/android/swiperefresh/CircleImageView;->setBackgroundColor(I)V
-Lorg/chromium/third_party/android/swiperefresh/MaterialProgressDrawable;
-HSPLorg/chromium/third_party/android/swiperefresh/MaterialProgressDrawable;-><init>(Landroid/content/Context;Landroid/view/View;)V
-HSPLorg/chromium/third_party/android/swiperefresh/MaterialProgressDrawable;->getIntrinsicHeight()I
-HSPLorg/chromium/third_party/android/swiperefresh/MaterialProgressDrawable;->getIntrinsicWidth()I
-HSPLorg/chromium/third_party/android/swiperefresh/MaterialProgressDrawable;->getOpacity()I
-HSPLorg/chromium/third_party/android/swiperefresh/MaterialProgressDrawable;->setAlpha(I)V
-HSPLorg/chromium/third_party/android/swiperefresh/MaterialProgressDrawable;->stop()V
-Lorg/chromium/third_party/android/swiperefresh/MaterialProgressDrawable$1;
-HSPLorg/chromium/third_party/android/swiperefresh/MaterialProgressDrawable$1;-><init>(Lorg/chromium/third_party/android/swiperefresh/MaterialProgressDrawable;Lorg/chromium/third_party/android/swiperefresh/MaterialProgressDrawable$Ring;)V
-Lorg/chromium/third_party/android/swiperefresh/MaterialProgressDrawable$2;
-HSPLorg/chromium/third_party/android/swiperefresh/MaterialProgressDrawable$2;-><init>(Lorg/chromium/third_party/android/swiperefresh/MaterialProgressDrawable;Lorg/chromium/third_party/android/swiperefresh/MaterialProgressDrawable$Ring;)V
-Lorg/chromium/third_party/android/swiperefresh/MaterialProgressDrawable$3;
-HSPLorg/chromium/third_party/android/swiperefresh/MaterialProgressDrawable$3;-><init>(Lorg/chromium/third_party/android/swiperefresh/MaterialProgressDrawable;)V
-HSPLorg/chromium/third_party/android/swiperefresh/MaterialProgressDrawable$3;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V
-Lorg/chromium/third_party/android/swiperefresh/MaterialProgressDrawable$Ring;
-HSPLorg/chromium/third_party/android/swiperefresh/MaterialProgressDrawable$Ring;-><init>(Lorg/chromium/third_party/android/swiperefresh/MaterialProgressDrawable$3;)V
-HSPLorg/chromium/third_party/android/swiperefresh/MaterialProgressDrawable$Ring;->invalidateSelf()V
-HSPLorg/chromium/third_party/android/swiperefresh/MaterialProgressDrawable$Ring;->setColorIndex(I)V
-Lorg/chromium/third_party/android/swiperefresh/SwipeRefreshLayout;
-HSPLorg/chromium/third_party/android/swiperefresh/SwipeRefreshLayout;-><init>(Landroid/content/Context;)V
-HSPLorg/chromium/third_party/android/swiperefresh/SwipeRefreshLayout;->bringChildToFront(Landroid/view/View;)V
-HSPLorg/chromium/third_party/android/swiperefresh/SwipeRefreshLayout;->reset()V
-HSPLorg/chromium/third_party/android/swiperefresh/SwipeRefreshLayout;->setRefreshing(ZZ)V
-HSPLorg/chromium/third_party/android/swiperefresh/SwipeRefreshLayout;->setTargetOffsetTopAndBottom(I)V
-Lorg/chromium/third_party/android/swiperefresh/SwipeRefreshLayout$1;
-HSPLorg/chromium/third_party/android/swiperefresh/SwipeRefreshLayout$1;-><init>(Lorg/chromium/third_party/android/swiperefresh/SwipeRefreshLayout;I)V
-Lorg/chromium/third_party/android/swiperefresh/SwipeRefreshLayout$2;
-HSPLorg/chromium/third_party/android/swiperefresh/SwipeRefreshLayout$2;-><init>(Lorg/chromium/third_party/android/swiperefresh/SwipeRefreshLayout;I)V
-Lorg/chromium/third_party/android/swiperefresh/SwipeRefreshLayout$OnRefreshListener;
-Lorg/chromium/ui/AsyncViewProvider;
-HSPLorg/chromium/ui/AsyncViewProvider;-><init>(Lorg/chromium/ui/AsyncViewStub;I)V
-HSPLorg/chromium/ui/AsyncViewProvider;->whenLoaded(Lorg/chromium/base/Callback;)V
-Lorg/chromium/ui/AsyncViewProvider$$ExternalSyntheticLambda0;
-HSPLorg/chromium/ui/AsyncViewProvider$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/ui/AsyncViewProvider;Lorg/chromium/base/Callback;)V
-Lorg/chromium/ui/AsyncViewStub;
-HSPLorg/chromium/ui/AsyncViewStub;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-Lorg/chromium/ui/KeyboardVisibilityDelegate;
-HSPLorg/chromium/ui/KeyboardVisibilityDelegate;-><init>()V
-HSPLorg/chromium/ui/KeyboardVisibilityDelegate;->addKeyboardVisibilityListener(Lorg/chromium/ui/KeyboardVisibilityDelegate$KeyboardVisibilityListener;)V
-HSPLorg/chromium/ui/KeyboardVisibilityDelegate;->calculateKeyboardHeight(Landroid/view/View;)I
-HSPLorg/chromium/ui/KeyboardVisibilityDelegate;->removeKeyboardVisibilityListener(Lorg/chromium/ui/KeyboardVisibilityDelegate$KeyboardVisibilityListener;)V
-Lorg/chromium/ui/KeyboardVisibilityDelegate$KeyboardVisibilityListener;
-Lorg/chromium/ui/OverscrollRefreshHandler;
-Lorg/chromium/ui/UiUtils;
-HSPLorg/chromium/ui/UiUtils;->getDirectoryForImageCapture(Landroid/content/Context;)Ljava/io/File;
-HSPLorg/chromium/ui/UiUtils;->getTintedDrawable(Landroid/content/Context;ILandroid/content/res/ColorStateList;)Landroid/graphics/drawable/Drawable;
-HSPLorg/chromium/ui/UiUtils;->insertView(Landroid/view/ViewGroup;Landroid/view/View;Landroid/view/View;Z)I
-HSPLorg/chromium/ui/UiUtils;->isSystemUiThemingDisabled()Z
-HSPLorg/chromium/ui/UiUtils;->removeViewFromParent(Landroid/view/View;)V
-HSPLorg/chromium/ui/UiUtils;->setNavigationBarIconColor(Landroid/view/View;Z)V
-Lorg/chromium/ui/ViewProvider;
-Lorg/chromium/ui/accessibility/AccessibilityState;
-HSPLorg/chromium/ui/accessibility/AccessibilityState;->getAccessibilityServiceCapabilitiesMask()I
-HSPLorg/chromium/ui/accessibility/AccessibilityState;->getAccessibilityServiceEventTypeMask()I
-HSPLorg/chromium/ui/accessibility/AccessibilityState;->getAccessibilityServiceFeedbackTypeMask()I
-HSPLorg/chromium/ui/accessibility/AccessibilityState;->getAccessibilityServiceFlagsMask()I
-HSPLorg/chromium/ui/accessibility/AccessibilityState;->getAccessibilityServiceIds()[Ljava/lang/String;
-HSPLorg/chromium/ui/accessibility/AccessibilityState;->isScreenReaderEnabled()Z
-HSPLorg/chromium/ui/accessibility/AccessibilityState;->registerObservers()V
-HSPLorg/chromium/ui/accessibility/AccessibilityState;->updateAccessibilityServices()V
-Lorg/chromium/ui/accessibility/AccessibilityState$$ExternalSyntheticLambda1;
-HSPLorg/chromium/ui/accessibility/AccessibilityState$$ExternalSyntheticLambda1;-><init>(I)V
-Lorg/chromium/ui/accessibility/AccessibilityState$Listener;
-Lorg/chromium/ui/accessibility/AccessibilityState$ServicesObserver;
-HSPLorg/chromium/ui/accessibility/AccessibilityState$ServicesObserver;-><init>(Landroid/os/Handler;Lorg/chromium/ui/accessibility/AccessibilityState$$ExternalSyntheticLambda1;)V
-Lorg/chromium/ui/accessibility/AccessibilityState$State;
-HSPLorg/chromium/ui/accessibility/AccessibilityState$State;-><init>(ZZZZZ)V
-Lorg/chromium/ui/base/ActivityIntentRequestTrackerDelegate;
-HSPLorg/chromium/ui/base/ActivityIntentRequestTrackerDelegate;-><init>(Landroid/app/Activity;)V
-Lorg/chromium/ui/base/ActivityKeyboardVisibilityDelegate;
-HSPLorg/chromium/ui/base/ActivityKeyboardVisibilityDelegate;-><init>(Ljava/lang/ref/WeakReference;)V
-HSPLorg/chromium/ui/base/ActivityKeyboardVisibilityDelegate;->onLayoutChange(Landroid/view/View;IIIIIIII)V
-HSPLorg/chromium/ui/base/ActivityKeyboardVisibilityDelegate;->registerKeyboardVisibilityCallbacks()V
-HSPLorg/chromium/ui/base/ActivityKeyboardVisibilityDelegate;->unregisterKeyboardVisibilityCallbacks()V
-Lorg/chromium/ui/base/ActivityWindowAndroid;
-HSPLorg/chromium/ui/base/ActivityWindowAndroid;-><init>(Landroid/content/Context;ZLorg/chromium/ui/permissions/ActivityAndroidPermissionDelegate;Lorg/chromium/ui/base/ActivityKeyboardVisibilityDelegate;Lorg/chromium/ui/base/IntentRequestTrackerImpl;)V
-HSPLorg/chromium/ui/base/ActivityWindowAndroid;->getActivity()Lorg/chromium/ui/base/ImmutableWeakReference;
-HSPLorg/chromium/ui/base/ActivityWindowAndroid;->getActivityState()I
-HSPLorg/chromium/ui/base/ActivityWindowAndroid;->onActivityStateChange(Landroid/app/Activity;I)V
-HSPLorg/chromium/ui/base/ActivityWindowAndroid;->onWindowFocusChanged(Landroid/app/Activity;Z)V
-Lorg/chromium/ui/base/ApplicationViewportInsetSupplier;
-HSPLorg/chromium/ui/base/ApplicationViewportInsetSupplier;-><init>()V
-HSPLorg/chromium/ui/base/ApplicationViewportInsetSupplier;->computeInset()V
-Lorg/chromium/ui/base/ApplicationViewportInsetSupplier$$ExternalSyntheticLambda0;
-HSPLorg/chromium/ui/base/ApplicationViewportInsetSupplier$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/ui/base/ApplicationViewportInsetSupplier;)V
-Lorg/chromium/ui/base/Clipboard;
-HSPLorg/chromium/ui/base/Clipboard;-><init>()V
-HSPLorg/chromium/ui/base/Clipboard;->getInstance()Lorg/chromium/ui/base/Clipboard;
-HSPLorg/chromium/ui/base/Clipboard;->setNativePtr(J)V
-Lorg/chromium/ui/base/ClipboardImpl;
-HSPLorg/chromium/ui/base/ClipboardImpl;-><init>(Landroid/content/ClipboardManager;)V
-HSPLorg/chromium/ui/base/ClipboardImpl;->getImageUriIfSharedByThisApp()Landroid/net/Uri;
-HSPLorg/chromium/ui/base/ClipboardImpl;->onWindowFocusChanged(Z)V
-HSPLorg/chromium/ui/base/ClipboardImpl;->setImageFileProvider(Lorg/chromium/components/browser_ui/share/ClipboardImageFileProvider;)V
-Lorg/chromium/ui/base/DeviceFormFactor;
-HSPLorg/chromium/ui/base/DeviceFormFactor;->isNonMultiDisplayContextOnTablet(Landroid/content/Context;)Z
-HSPLorg/chromium/ui/base/DeviceFormFactor;->isTablet()Z
-HSPLorg/chromium/ui/base/DeviceFormFactor;->isWindowOnTablet(Lorg/chromium/ui/base/WindowAndroid;)Z
-Lorg/chromium/ui/base/EventOffsetHandler;
-HSPLorg/chromium/ui/base/EventOffsetHandler;-><init>(Lorg/chromium/chrome/browser/compositor/CompositorViewHolder$1;)V
-Lorg/chromium/ui/base/ImmutableWeakReference;
-HSPLorg/chromium/ui/base/ImmutableWeakReference;-><init>(Ljava/lang/Object;)V
-Lorg/chromium/ui/base/IntentRequestTracker$Delegate;
-Lorg/chromium/ui/base/IntentRequestTrackerImpl;
-HSPLorg/chromium/ui/base/IntentRequestTrackerImpl;-><init>(Lorg/chromium/ui/base/ActivityIntentRequestTrackerDelegate;)V
-Lorg/chromium/ui/base/LocalizationUtils;
-HSPLorg/chromium/ui/base/LocalizationUtils;->isLayoutRtl()Z
-Lorg/chromium/ui/base/PhotoPickerListener;
-Lorg/chromium/ui/base/ResourceBundle;
-HSPLorg/chromium/ui/base/ResourceBundle;->getLocalePakResourcePath(Ljava/lang/String;ZZ)Ljava/lang/String;
-Lorg/chromium/ui/base/SelectFileDialog;
-Lorg/chromium/ui/base/SelectFileDialog$$ExternalSyntheticLambda5;
-HSPLorg/chromium/ui/base/SelectFileDialog$$ExternalSyntheticLambda5;-><init>()V
-HSPLorg/chromium/ui/base/SelectFileDialog$$ExternalSyntheticLambda5;->run()V
-Lorg/chromium/ui/base/TouchDevice;
-HSPLorg/chromium/ui/base/TouchDevice;->availablePointerAndHoverTypes()[I
-HSPLorg/chromium/ui/base/TouchDevice;->hasSource(II)Z
-HSPLorg/chromium/ui/base/TouchDevice;->maxTouchPoints()I
-Lorg/chromium/ui/base/ViewAndroidDelegate;
-HSPLorg/chromium/ui/base/ViewAndroidDelegate;-><init>(Landroid/view/ViewGroup;)V
-HSPLorg/chromium/ui/base/ViewAndroidDelegate;->getContainerView()Landroid/view/View;
-HSPLorg/chromium/ui/base/ViewAndroidDelegate;->getDisplayFeature()[I
-HSPLorg/chromium/ui/base/ViewAndroidDelegate;->hasFocus()Z
-Lorg/chromium/ui/base/ViewAndroidDelegate$VerticalScrollDirectionChangeListener;
-Lorg/chromium/ui/base/ViewUtils;
-HSPLorg/chromium/ui/base/ViewUtils;->dpToPx(Landroid/content/Context;F)I
-HSPLorg/chromium/ui/base/ViewUtils;->getRelativeDrawPosition(Landroid/view/View;Landroid/view/View;[I)V
-HSPLorg/chromium/ui/base/ViewUtils;->getRelativeLayoutPosition(Landroid/view/View;Landroid/view/View;[I)V
-HSPLorg/chromium/ui/base/ViewUtils;->translateCanvasToView(Landroid/view/View;Landroid/view/View;Landroid/graphics/Canvas;)V
-Lorg/chromium/ui/base/WindowAndroid;
-HSPLorg/chromium/ui/base/WindowAndroid;-><init>(Landroid/content/Context;Lorg/chromium/ui/base/IntentRequestTrackerImpl;)V
-HSPLorg/chromium/ui/base/WindowAndroid;-><init>(Landroid/content/Context;Lorg/chromium/ui/display/DisplayAndroid;)V
-HSPLorg/chromium/ui/base/WindowAndroid;->clearNativePointer()V
-HSPLorg/chromium/ui/base/WindowAndroid;->destroy()V
-HSPLorg/chromium/ui/base/WindowAndroid;->doSetPreferredRefreshRate(F)V
-HSPLorg/chromium/ui/base/WindowAndroid;->getNativePointer()J
-HSPLorg/chromium/ui/base/WindowAndroid;->getOverlayTransform()I
-HSPLorg/chromium/ui/base/WindowAndroid;->getRefreshRate()F
-HSPLorg/chromium/ui/base/WindowAndroid;->getSupportedRefreshRates()[F
-HSPLorg/chromium/ui/base/WindowAndroid;->getWindow()Landroid/view/Window;
-HSPLorg/chromium/ui/base/WindowAndroid;->hasPermission(Ljava/lang/String;)Z
-HSPLorg/chromium/ui/base/WindowAndroid;->recomputeSupportedRefreshRates()V
-HSPLorg/chromium/ui/base/WindowAndroid;->refreshWillNotDraw()V
-HSPLorg/chromium/ui/base/WindowAndroid;->setPreferredRefreshRate(F)V
-Lorg/chromium/ui/base/WindowAndroid$ActivityStateObserver;
-Lorg/chromium/ui/base/WindowAndroid$IntentCallback;
-Lorg/chromium/ui/base/WindowAndroid$SelectionHandlesObserver;
-Lorg/chromium/ui/base/WindowAndroid$TouchExplorationMonitor;
-HSPLorg/chromium/ui/base/WindowAndroid$TouchExplorationMonitor;-><init>(Lorg/chromium/ui/base/ActivityWindowAndroid;)V
-Lorg/chromium/ui/base/WindowAndroid$TouchExplorationMonitor$1;
-HSPLorg/chromium/ui/base/WindowAndroid$TouchExplorationMonitor$1;-><init>(Lorg/chromium/ui/base/WindowAndroid$TouchExplorationMonitor;)V
-Lorg/chromium/ui/base/WindowDelegate;
-HSPLorg/chromium/ui/base/WindowDelegate;-><init>(Landroid/view/Window;)V
-Lorg/chromium/ui/display/DisplayAndroid;
-HSPLorg/chromium/ui/display/DisplayAndroid;-><init>(I)V
-HSPLorg/chromium/ui/display/DisplayAndroid;->getNonMultiDisplay(Landroid/content/Context;)Lorg/chromium/ui/display/DisplayAndroid;
-HSPLorg/chromium/ui/display/DisplayAndroid;->getObservers()[Lorg/chromium/ui/display/DisplayAndroid$DisplayAndroidObserver;
-HSPLorg/chromium/ui/display/DisplayAndroid;->update(Landroid/graphics/Point;Ljava/lang/Float;Ljava/lang/Float;Ljava/lang/Float;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Float;Landroid/view/Display$Mode;Ljava/util/List;)V
-Lorg/chromium/ui/display/DisplayAndroid$DisplayAndroidObserver;
-HSPLorg/chromium/ui/display/DisplayAndroid$DisplayAndroidObserver;->onDIPScaleChanged(F)V
-Lorg/chromium/ui/display/DisplayAndroidManager;
-HSPLorg/chromium/ui/display/DisplayAndroidManager;-><init>()V
-HSPLorg/chromium/ui/display/DisplayAndroidManager;->addDisplay(Landroid/view/Display;)Lorg/chromium/ui/display/PhysicalDisplayAndroid;
-HSPLorg/chromium/ui/display/DisplayAndroidManager;->getDefaultDisplayForContext(Landroid/content/Context;)Landroid/view/Display;
-HSPLorg/chromium/ui/display/DisplayAndroidManager;->getInstance()Lorg/chromium/ui/display/DisplayAndroidManager;
-HSPLorg/chromium/ui/display/DisplayAndroidManager;->onNativeSideCreated(J)V
-HSPLorg/chromium/ui/display/DisplayAndroidManager;->updateDisplayOnNativeSide(Lorg/chromium/ui/display/DisplayAndroid;)V
-Lorg/chromium/ui/display/DisplayAndroidManager$DisplayListenerBackend;
-HSPLorg/chromium/ui/display/DisplayAndroidManager$DisplayListenerBackend;-><init>(Lorg/chromium/ui/display/DisplayAndroidManager;)V
-Lorg/chromium/ui/display/PhysicalDisplayAndroid;
-HSPLorg/chromium/ui/display/PhysicalDisplayAndroid;-><init>(Landroid/view/Display;)V
-HSPLorg/chromium/ui/display/PhysicalDisplayAndroid;->updateCommon(Landroid/graphics/Point;FFFLandroid/view/Display;)V
-HSPLorg/chromium/ui/display/PhysicalDisplayAndroid;->updateFromDisplay(Landroid/view/Display;)V
-Lorg/chromium/ui/dragdrop/DragAndDropBrowserDelegate;
-Lorg/chromium/ui/dragdrop/DragAndDropDelegate;
-HSPLorg/chromium/ui/dragdrop/DragAndDropDelegate;->isDragAndDropSupportedForOs()Z
-Lorg/chromium/ui/dragdrop/DragAndDropDelegateImpl;
-HSPLorg/chromium/ui/dragdrop/DragAndDropDelegateImpl;-><init>()V
-Lorg/chromium/ui/dragdrop/DragStateTracker;
-Lorg/chromium/ui/dragdrop/DropDataContentProvider;
-HSPLorg/chromium/ui/dragdrop/DropDataContentProvider;-><init>()V
-HSPLorg/chromium/ui/dragdrop/DropDataContentProvider;->call(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;
-HSPLorg/chromium/ui/dragdrop/DropDataContentProvider;->onCreate()Z
-Lorg/chromium/ui/dragdrop/DropDataProviderImpl;
-HSPLorg/chromium/ui/dragdrop/DropDataProviderImpl;-><init>()V
-Lorg/chromium/ui/dragdrop/DropDataProviderImpl$DropPipeDataWriter;
-HSPLorg/chromium/ui/dragdrop/DropDataProviderImpl$DropPipeDataWriter;-><init>()V
-Lorg/chromium/ui/events/devices/InputDeviceObserver;
-HSPLorg/chromium/ui/events/devices/InputDeviceObserver;-><init>()V
-HSPLorg/chromium/ui/events/devices/InputDeviceObserver;->addObserver()V
-HSPLorg/chromium/ui/events/devices/InputDeviceObserver;->removeObserver()V
-Lorg/chromium/ui/gfx/Animation;
-HSPLorg/chromium/ui/gfx/Animation;->prefersReducedMotion()Z
-Lorg/chromium/ui/gfx/BitmapHelper;
-HSPLorg/chromium/ui/gfx/BitmapHelper;->getByteCount(Landroid/graphics/Bitmap;)I
-Lorg/chromium/ui/gfx/ViewConfigurationHelper;
-HSPLorg/chromium/ui/gfx/ViewConfigurationHelper;-><init>()V
-HSPLorg/chromium/ui/gfx/ViewConfigurationHelper;->createWithListener()Lorg/chromium/ui/gfx/ViewConfigurationHelper;
-HSPLorg/chromium/ui/gfx/ViewConfigurationHelper;->getDoubleTapSlop()F
-HSPLorg/chromium/ui/gfx/ViewConfigurationHelper;->getDoubleTapTimeout()I
-HSPLorg/chromium/ui/gfx/ViewConfigurationHelper;->getLongPressTimeout()I
-HSPLorg/chromium/ui/gfx/ViewConfigurationHelper;->getMaximumFlingVelocity()F
-HSPLorg/chromium/ui/gfx/ViewConfigurationHelper;->getMinScalingSpan()F
-HSPLorg/chromium/ui/gfx/ViewConfigurationHelper;->getMinimumFlingVelocity()F
-HSPLorg/chromium/ui/gfx/ViewConfigurationHelper;->getTapTimeout()I
-HSPLorg/chromium/ui/gfx/ViewConfigurationHelper;->getTouchSlop()F
-Lorg/chromium/ui/gfx/ViewConfigurationHelper$1;
-HSPLorg/chromium/ui/gfx/ViewConfigurationHelper$1;-><init>(Lorg/chromium/ui/gfx/ViewConfigurationHelper;)V
-Lorg/chromium/ui/interpolators/BakedBezierInterpolator;
-HSPLorg/chromium/ui/interpolators/BakedBezierInterpolator;-><init>([F)V
-HSPLorg/chromium/ui/interpolators/BakedBezierInterpolator;->getInterpolation(F)F
-Lorg/chromium/ui/modaldialog/ModalDialogManager;
-HSPLorg/chromium/ui/modaldialog/ModalDialogManager;-><init>(Lorg/chromium/components/browser_ui/modaldialog/AppModalPresenter;)V
-HSPLorg/chromium/ui/modaldialog/ModalDialogManager;->destroy()V
-HSPLorg/chromium/ui/modaldialog/ModalDialogManager;->dismissDialogsOfType(I)V
-HSPLorg/chromium/ui/modaldialog/ModalDialogManager;->dismissPendingDialogsOfType(II)V
-HSPLorg/chromium/ui/modaldialog/ModalDialogManager;->isShowing()Z
-HSPLorg/chromium/ui/modaldialog/ModalDialogManager;->resumeType(II)V
-HSPLorg/chromium/ui/modaldialog/ModalDialogManager;->resumeTypeInternal(I)V
-HSPLorg/chromium/ui/modaldialog/ModalDialogManager;->showNextDialog()V
-HSPLorg/chromium/ui/modaldialog/ModalDialogManager;->suspendType(I)I
-Lorg/chromium/ui/modaldialog/ModalDialogManager$$ExternalSyntheticLambda1;
-HSPLorg/chromium/ui/modaldialog/ModalDialogManager$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/ui/modaldialog/ModalDialogManager;I)V
-HSPLorg/chromium/ui/modaldialog/ModalDialogManager$$ExternalSyntheticLambda1;->run()V
-Lorg/chromium/ui/modaldialog/ModalDialogManager$ModalDialogManagerObserver;
-Lorg/chromium/ui/modaldialog/ModalDialogManager$Presenter;
-HSPLorg/chromium/ui/modaldialog/ModalDialogManager$Presenter;-><init>()V
-Lorg/chromium/ui/modaldialog/ModalDialogManagerHolder;
-Lorg/chromium/ui/modaldialog/ModalDialogProperties$Controller;
-Lorg/chromium/ui/modaldialog/PendingDialogContainer;
-HSPLorg/chromium/ui/modaldialog/PendingDialogContainer;-><init>()V
-Lorg/chromium/ui/modelutil/LazyConstructionPropertyMcp;
-HSPLorg/chromium/ui/modelutil/LazyConstructionPropertyMcp;-><init>(Lorg/chromium/ui/modelutil/PropertyModel;Ljava/lang/Object;Lorg/chromium/ui/modelutil/LazyConstructionPropertyMcp$$ExternalSyntheticLambda0;Lorg/chromium/ui/ViewProvider;Lorg/chromium/ui/modelutil/PropertyModelChangeProcessor$ViewBinder;)V
-HSPLorg/chromium/ui/modelutil/LazyConstructionPropertyMcp;->onPropertyChanged(Lorg/chromium/ui/modelutil/PropertyObservable;Ljava/lang/Object;)V
-Lorg/chromium/ui/modelutil/LazyConstructionPropertyMcp$$ExternalSyntheticLambda0;
-HSPLorg/chromium/ui/modelutil/LazyConstructionPropertyMcp$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/ui/modelutil/PropertyModel$WritableBooleanPropertyKey;)V
-Lorg/chromium/ui/modelutil/LazyConstructionPropertyMcp$$ExternalSyntheticLambda1;
-HSPLorg/chromium/ui/modelutil/LazyConstructionPropertyMcp$$ExternalSyntheticLambda1;-><init>(Lorg/chromium/ui/modelutil/LazyConstructionPropertyMcp;)V
-Lorg/chromium/ui/modelutil/ListModel;
-HSPLorg/chromium/ui/modelutil/ListModel;-><init>()V
-Lorg/chromium/ui/modelutil/ListModelBase;
-HSPLorg/chromium/ui/modelutil/ListModelBase;-><init>()V
-HSPLorg/chromium/ui/modelutil/ListModelBase;->set(Ljava/util/List;)V
-HSPLorg/chromium/ui/modelutil/ListModelBase;->size()I
-Lorg/chromium/ui/modelutil/ListObservable;
-Lorg/chromium/ui/modelutil/ListObservable$ListObserver;
-Lorg/chromium/ui/modelutil/ListObservableImpl;
-HSPLorg/chromium/ui/modelutil/ListObservableImpl;-><init>()V
-HSPLorg/chromium/ui/modelutil/ListObservableImpl;->addObserver(Lorg/chromium/ui/modelutil/ListObservable$ListObserver;)V
-Lorg/chromium/ui/modelutil/MVCListAdapter$ModelList;
-HSPLorg/chromium/ui/modelutil/MVCListAdapter$ModelList;-><init>()V
-Lorg/chromium/ui/modelutil/MVCListAdapter$ViewBuilder;
-Lorg/chromium/ui/modelutil/ModelListPropertyChangeFilter;
-HSPLorg/chromium/ui/modelutil/ModelListPropertyChangeFilter;-><init>(Lorg/chromium/chrome/browser/tasks/tab_management/TabStripSnapshotter$$ExternalSyntheticLambda0;Lorg/chromium/chrome/browser/tasks/tab_management/TabListModel;Ljava/util/HashSet;)V
-HSPLorg/chromium/ui/modelutil/ModelListPropertyChangeFilter;->onItemRangeInserted(Lorg/chromium/ui/modelutil/ListObservable;II)V
-HSPLorg/chromium/ui/modelutil/ModelListPropertyChangeFilter;->prunePropertyModels(Ljava/util/Set;)V
-Lorg/chromium/ui/modelutil/PropertyModel;
-HSPLorg/chromium/ui/modelutil/PropertyModel;-><init>(Ljava/util/List;)V
-HSPLorg/chromium/ui/modelutil/PropertyModel;-><init>(Ljava/util/Map;)V
-HSPLorg/chromium/ui/modelutil/PropertyModel;-><init>([Lorg/chromium/ui/modelutil/PropertyModel$NamedPropertyKey;)V
-HSPLorg/chromium/ui/modelutil/PropertyModel;->buildData([Lorg/chromium/ui/modelutil/PropertyModel$NamedPropertyKey;)Ljava/util/HashMap;
-HSPLorg/chromium/ui/modelutil/PropertyModel;->concatKeys([Lorg/chromium/ui/modelutil/PropertyModel$NamedPropertyKey;[Lorg/chromium/ui/modelutil/PropertyModel$NamedPropertyKey;)[Lorg/chromium/ui/modelutil/PropertyModel$NamedPropertyKey;
-HSPLorg/chromium/ui/modelutil/PropertyModel;->get(Lorg/chromium/ui/modelutil/PropertyModel$ReadableIntPropertyKey;)I
-HSPLorg/chromium/ui/modelutil/PropertyModel;->get(Lorg/chromium/ui/modelutil/PropertyModel$WritableLongPropertyKey;)F
-HSPLorg/chromium/ui/modelutil/PropertyModel;->get(Lorg/chromium/ui/modelutil/PropertyModel$WritableLongPropertyKey;)Ljava/lang/Object;
-HSPLorg/chromium/ui/modelutil/PropertyModel;->get(Lorg/chromium/ui/modelutil/PropertyModel$WritableLongPropertyKey;)Z
-HSPLorg/chromium/ui/modelutil/PropertyModel;->getAllSetProperties()Ljava/util/ArrayList;
-HSPLorg/chromium/ui/modelutil/PropertyModel;->set(Lorg/chromium/ui/modelutil/PropertyModel$WritableBooleanPropertyKey;Z)V
-HSPLorg/chromium/ui/modelutil/PropertyModel;->set(Lorg/chromium/ui/modelutil/PropertyModel$WritableIntPropertyKey;I)V
-HSPLorg/chromium/ui/modelutil/PropertyModel;->set(Lorg/chromium/ui/modelutil/PropertyModel$WritableLongPropertyKey;F)V
-HSPLorg/chromium/ui/modelutil/PropertyModel;->set(Lorg/chromium/ui/modelutil/PropertyModel$WritableObjectPropertyKey;Ljava/lang/Object;)V
-Lorg/chromium/ui/modelutil/PropertyModel$BooleanContainer;
-HSPLorg/chromium/ui/modelutil/PropertyModel$BooleanContainer;-><init>()V
-Lorg/chromium/ui/modelutil/PropertyModel$Builder;
-HSPLorg/chromium/ui/modelutil/PropertyModel$Builder;-><init>([Lorg/chromium/ui/modelutil/PropertyModel$NamedPropertyKey;)V
-HSPLorg/chromium/ui/modelutil/PropertyModel$Builder;->build()Lorg/chromium/ui/modelutil/PropertyModel;
-HSPLorg/chromium/ui/modelutil/PropertyModel$Builder;->with(Lorg/chromium/ui/modelutil/PropertyModel$ReadableIntPropertyKey;I)V
-HSPLorg/chromium/ui/modelutil/PropertyModel$Builder;->with(Lorg/chromium/ui/modelutil/PropertyModel$WritableLongPropertyKey;F)V
-HSPLorg/chromium/ui/modelutil/PropertyModel$Builder;->with(Lorg/chromium/ui/modelutil/PropertyModel$WritableLongPropertyKey;Ljava/lang/Object;)V
-HSPLorg/chromium/ui/modelutil/PropertyModel$Builder;->with(Lorg/chromium/ui/modelutil/PropertyModel$WritableLongPropertyKey;Z)V
-Lorg/chromium/ui/modelutil/PropertyModel$FloatContainer;
-HSPLorg/chromium/ui/modelutil/PropertyModel$FloatContainer;-><init>()V
-Lorg/chromium/ui/modelutil/PropertyModel$IntContainer;
-HSPLorg/chromium/ui/modelutil/PropertyModel$IntContainer;-><init>()V
-Lorg/chromium/ui/modelutil/PropertyModel$NamedPropertyKey;
-HSPLorg/chromium/ui/modelutil/PropertyModel$NamedPropertyKey;-><init>(Ljava/lang/String;)V
-Lorg/chromium/ui/modelutil/PropertyModel$ObjectContainer;
-HSPLorg/chromium/ui/modelutil/PropertyModel$ObjectContainer;-><init>()V
-Lorg/chromium/ui/modelutil/PropertyModel$ReadableIntPropertyKey;
-HSPLorg/chromium/ui/modelutil/PropertyModel$ReadableIntPropertyKey;-><init>()V
-HSPLorg/chromium/ui/modelutil/PropertyModel$ReadableIntPropertyKey;-><init>(Ljava/lang/String;)V
-Lorg/chromium/ui/modelutil/PropertyModel$ValueContainer;
-HSPLorg/chromium/ui/modelutil/PropertyModel$ValueContainer;-><init>()V
-Lorg/chromium/ui/modelutil/PropertyModel$WritableBooleanPropertyKey;
-HSPLorg/chromium/ui/modelutil/PropertyModel$WritableBooleanPropertyKey;-><init>()V
-HSPLorg/chromium/ui/modelutil/PropertyModel$WritableBooleanPropertyKey;-><init>(Ljava/lang/String;)V
-Lorg/chromium/ui/modelutil/PropertyModel$WritableIntPropertyKey;
-HSPLorg/chromium/ui/modelutil/PropertyModel$WritableIntPropertyKey;-><init>()V
-HSPLorg/chromium/ui/modelutil/PropertyModel$WritableIntPropertyKey;-><init>(Ljava/lang/String;)V
-Lorg/chromium/ui/modelutil/PropertyModel$WritableLongPropertyKey;
-HSPLorg/chromium/ui/modelutil/PropertyModel$WritableLongPropertyKey;-><init>(I)V
-HSPLorg/chromium/ui/modelutil/PropertyModel$WritableLongPropertyKey;-><init>(II)V
-HSPLorg/chromium/ui/modelutil/PropertyModel$WritableLongPropertyKey;-><init>(Ljava/lang/String;)V
-Lorg/chromium/ui/modelutil/PropertyModel$WritableObjectPropertyKey;
-HSPLorg/chromium/ui/modelutil/PropertyModel$WritableObjectPropertyKey;-><init>()V
-HSPLorg/chromium/ui/modelutil/PropertyModel$WritableObjectPropertyKey;-><init>(Ljava/lang/String;Z)V
-Lorg/chromium/ui/modelutil/PropertyModelChangeProcessor;
-HSPLorg/chromium/ui/modelutil/PropertyModelChangeProcessor;-><init>(Lorg/chromium/ui/modelutil/PropertyObservable;Ljava/lang/Object;Lorg/chromium/ui/modelutil/PropertyModelChangeProcessor$ViewBinder;Z)V
-HSPLorg/chromium/ui/modelutil/PropertyModelChangeProcessor;->create(Lorg/chromium/ui/modelutil/PropertyObservable;Ljava/lang/Object;Lorg/chromium/ui/modelutil/PropertyModelChangeProcessor$ViewBinder;)Lorg/chromium/ui/modelutil/PropertyModelChangeProcessor;
-HSPLorg/chromium/ui/modelutil/PropertyModelChangeProcessor;->destroy()V
-Lorg/chromium/ui/modelutil/PropertyModelChangeProcessor$$ExternalSyntheticLambda0;
-HSPLorg/chromium/ui/modelutil/PropertyModelChangeProcessor$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/ui/modelutil/PropertyModelChangeProcessor;)V
-HSPLorg/chromium/ui/modelutil/PropertyModelChangeProcessor$$ExternalSyntheticLambda0;->onPropertyChanged(Lorg/chromium/ui/modelutil/PropertyObservable;Ljava/lang/Object;)V
-Lorg/chromium/ui/modelutil/PropertyModelChangeProcessor$ViewBinder;
-Lorg/chromium/ui/modelutil/PropertyObservable;
-HSPLorg/chromium/ui/modelutil/PropertyObservable;-><init>()V
-HSPLorg/chromium/ui/modelutil/PropertyObservable;->addObserver(Lorg/chromium/ui/modelutil/PropertyObservable$PropertyObserver;)V
-HSPLorg/chromium/ui/modelutil/PropertyObservable;->notifyPropertyChanged(Ljava/lang/Object;)V
-HSPLorg/chromium/ui/modelutil/PropertyObservable;->removeObserver(Lorg/chromium/ui/modelutil/PropertyObservable$PropertyObserver;)V
-Lorg/chromium/ui/modelutil/PropertyObservable$PropertyObserver;
-Lorg/chromium/ui/modelutil/SimpleList;
-Lorg/chromium/ui/modelutil/SimpleRecyclerViewAdapter;
-HSPLorg/chromium/ui/modelutil/SimpleRecyclerViewAdapter;-><init>(Lorg/chromium/ui/modelutil/MVCListAdapter$ModelList;)V
-HSPLorg/chromium/ui/modelutil/SimpleRecyclerViewAdapter;->getItemCount()I
-HSPLorg/chromium/ui/modelutil/SimpleRecyclerViewAdapter;->registerType(ILorg/chromium/ui/modelutil/MVCListAdapter$ViewBuilder;Lorg/chromium/ui/modelutil/PropertyModelChangeProcessor$ViewBinder;)V
-Lorg/chromium/ui/modelutil/SimpleRecyclerViewAdapter$1;
-HSPLorg/chromium/ui/modelutil/SimpleRecyclerViewAdapter$1;-><init>(Lorg/chromium/ui/modelutil/SimpleRecyclerViewAdapter;)V
-Lorg/chromium/ui/permissions/ActivityAndroidPermissionDelegate;
-HSPLorg/chromium/ui/permissions/ActivityAndroidPermissionDelegate;-><init>(Ljava/lang/ref/WeakReference;)V
-HSPLorg/chromium/ui/permissions/ActivityAndroidPermissionDelegate;->hasPermission(Ljava/lang/String;)Z
-Lorg/chromium/ui/permissions/AndroidPermissionDelegate;
-Lorg/chromium/ui/permissions/PermissionPrefs;
-HSPLorg/chromium/ui/permissions/PermissionPrefs;->getPermissionWasDeniedKey(Ljava/lang/String;)Ljava/lang/String;
-HSPLorg/chromium/ui/permissions/PermissionPrefs;->normalizePermissionName(Ljava/lang/String;)Ljava/lang/String;
-Lorg/chromium/ui/resources/LayoutResource;
-HSPLorg/chromium/ui/resources/LayoutResource;-><init>(FLorg/chromium/ui/resources/Resource;)V
-Lorg/chromium/ui/resources/Resource;
-Lorg/chromium/ui/resources/ResourceFactory;
-HSPLorg/chromium/ui/resources/ResourceFactory;->createBitmapResource(Lorg/chromium/ui/resources/statics/NinePatchData;)J
-Lorg/chromium/ui/resources/ResourceLoader;
-HSPLorg/chromium/ui/resources/ResourceLoader;-><init>(ILorg/chromium/ui/resources/ResourceLoader$ResourceLoaderCallback;)V
-HSPLorg/chromium/ui/resources/ResourceLoader;->notifyLoadFinished(ILorg/chromium/ui/resources/Resource;)V
-Lorg/chromium/ui/resources/ResourceLoader$ResourceLoaderCallback;
-Lorg/chromium/ui/resources/ResourceManager;
-HSPLorg/chromium/ui/resources/ResourceManager;-><init>(Landroid/content/res/Resources;IJ)V
-HSPLorg/chromium/ui/resources/ResourceManager;->create(Lorg/chromium/ui/base/WindowAndroid;J)Lorg/chromium/ui/resources/ResourceManager;
-HSPLorg/chromium/ui/resources/ResourceManager;->destroy()V
-HSPLorg/chromium/ui/resources/ResourceManager;->getDynamicResourceLoader()Lorg/chromium/ui/resources/dynamics/DynamicResourceLoader;
-HSPLorg/chromium/ui/resources/ResourceManager;->getNativePtr()J
-HSPLorg/chromium/ui/resources/ResourceManager;->preloadResources(I[I[I)V
-HSPLorg/chromium/ui/resources/ResourceManager;->resourceRequested(II)V
-Lorg/chromium/ui/resources/async/AsyncPreloadResourceLoader;
-HSPLorg/chromium/ui/resources/async/AsyncPreloadResourceLoader;-><init>(ILorg/chromium/ui/resources/ResourceLoader$ResourceLoaderCallback;Lorg/chromium/ui/resources/async/AsyncPreloadResourceLoader$ResourceCreator;)V
-HSPLorg/chromium/ui/resources/async/AsyncPreloadResourceLoader;->loadResource(I)V
-Lorg/chromium/ui/resources/async/AsyncPreloadResourceLoader$AsyncLoadTask;
-Lorg/chromium/ui/resources/async/AsyncPreloadResourceLoader$ResourceCreator;
-Lorg/chromium/ui/resources/dynamics/CaptureObserver;
-Lorg/chromium/ui/resources/dynamics/CaptureUtils;
-HSPLorg/chromium/ui/resources/dynamics/CaptureUtils;->captureCommon(Landroid/graphics/Canvas;Landroid/view/View;Landroid/graphics/Rect;FZLorg/chromium/ui/resources/dynamics/CaptureObserver;)Z
-Lorg/chromium/ui/resources/dynamics/DynamicResource;
-Lorg/chromium/ui/resources/dynamics/DynamicResourceLoader;
-HSPLorg/chromium/ui/resources/dynamics/DynamicResourceLoader;-><init>(ILorg/chromium/ui/resources/ResourceLoader$ResourceLoaderCallback;)V
-HSPLorg/chromium/ui/resources/dynamics/DynamicResourceLoader;->loadResource(I)V
-HSPLorg/chromium/ui/resources/dynamics/DynamicResourceLoader;->registerResource(ILorg/chromium/ui/resources/dynamics/DynamicResource;)V
-Lorg/chromium/ui/resources/dynamics/DynamicResourceLoader$$ExternalSyntheticLambda0;
-HSPLorg/chromium/ui/resources/dynamics/DynamicResourceLoader$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/ui/resources/dynamics/DynamicResourceLoader;I)V
-HSPLorg/chromium/ui/resources/dynamics/DynamicResourceLoader$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/ui/resources/dynamics/DynamicResourceLoader$DynamicResourceHolder;
-HSPLorg/chromium/ui/resources/dynamics/DynamicResourceLoader$DynamicResourceHolder;-><init>(Lorg/chromium/ui/resources/dynamics/DynamicResource;Lorg/chromium/ui/resources/dynamics/DynamicResourceLoader$$ExternalSyntheticLambda0;)V
-Lorg/chromium/ui/resources/dynamics/DynamicResourceSnapshot;
-HSPLorg/chromium/ui/resources/dynamics/DynamicResourceSnapshot;-><init>(Landroid/graphics/Bitmap;ZLandroid/graphics/Rect;J)V
-HSPLorg/chromium/ui/resources/dynamics/DynamicResourceSnapshot;->createNativeResource()J
-HSPLorg/chromium/ui/resources/dynamics/DynamicResourceSnapshot;->getBitmap()Landroid/graphics/Bitmap;
-HSPLorg/chromium/ui/resources/dynamics/DynamicResourceSnapshot;->getBitmapSize()Landroid/graphics/Rect;
-HSPLorg/chromium/ui/resources/dynamics/DynamicResourceSnapshot;->getNinePatchData()Lorg/chromium/ui/resources/statics/NinePatchData;
-Lorg/chromium/ui/resources/dynamics/SoftwareDraw;
-HSPLorg/chromium/ui/resources/dynamics/SoftwareDraw;-><init>()V
-HSPLorg/chromium/ui/resources/dynamics/SoftwareDraw;->dropCachedBitmap()V
-HSPLorg/chromium/ui/resources/dynamics/SoftwareDraw;->onViewSizeChange(Landroid/view/View;F)V
-HSPLorg/chromium/ui/resources/dynamics/SoftwareDraw;->shouldRemoveResourceOnNullBitmap()Z
-HSPLorg/chromium/ui/resources/dynamics/SoftwareDraw;->startBitmapCapture(Landroid/view/View;Landroid/graphics/Rect;FLorg/chromium/ui/resources/dynamics/CaptureObserver;Lorg/chromium/ui/resources/dynamics/ViewResourceAdapter$$ExternalSyntheticLambda0;)Z
-Lorg/chromium/ui/resources/dynamics/ViewResourceAdapter;
-HSPLorg/chromium/ui/resources/dynamics/ViewResourceAdapter;-><init>(Landroid/view/View;Z)V
-HSPLorg/chromium/ui/resources/dynamics/ViewResourceAdapter;->addOnResourceReadyCallback(Lorg/chromium/base/Callback;)V
-HSPLorg/chromium/ui/resources/dynamics/ViewResourceAdapter;->invalidate(Landroid/graphics/Rect;)V
-HSPLorg/chromium/ui/resources/dynamics/ViewResourceAdapter;->isDirty()Z
-HSPLorg/chromium/ui/resources/dynamics/ViewResourceAdapter;->onLayoutChange(Landroid/view/View;IIIIIIII)V
-HSPLorg/chromium/ui/resources/dynamics/ViewResourceAdapter;->onResourceRequested()V
-HSPLorg/chromium/ui/resources/dynamics/ViewResourceAdapter;->triggerBitmapCapture()V
-Lorg/chromium/ui/resources/dynamics/ViewResourceAdapter$$ExternalSyntheticLambda0;
-HSPLorg/chromium/ui/resources/dynamics/ViewResourceAdapter$$ExternalSyntheticLambda0;-><init>(Lorg/chromium/ui/resources/dynamics/ViewResourceAdapter;)V
-HSPLorg/chromium/ui/resources/dynamics/ViewResourceAdapter$$ExternalSyntheticLambda0;->onResult(Ljava/lang/Object;)V
-Lorg/chromium/ui/resources/dynamics/ViewResourceAdapter$CaptureMechanism;
-Lorg/chromium/ui/resources/statics/NinePatchData;
-HSPLorg/chromium/ui/resources/statics/NinePatchData;-><init>(IILandroid/graphics/Rect;[I[I)V
-Lorg/chromium/ui/resources/statics/StaticResource;
-HSPLorg/chromium/ui/resources/statics/StaticResource;-><init>(Landroid/graphics/Bitmap;)V
-HSPLorg/chromium/ui/resources/statics/StaticResource;->createNativeResource()J
-HSPLorg/chromium/ui/resources/statics/StaticResource;->getBitmap()Landroid/graphics/Bitmap;
-HSPLorg/chromium/ui/resources/statics/StaticResource;->getBitmapSize()Landroid/graphics/Rect;
-HSPLorg/chromium/ui/resources/statics/StaticResource;->getNinePatchData()Lorg/chromium/ui/resources/statics/NinePatchData;
-Lorg/chromium/ui/resources/statics/StaticResourceLoader;
-HSPLorg/chromium/ui/resources/statics/StaticResourceLoader;-><init>(Lorg/chromium/ui/resources/ResourceLoader$ResourceLoaderCallback;Landroid/content/res/Resources;)V
-Lorg/chromium/ui/resources/statics/StaticResourceLoader$1;
-HSPLorg/chromium/ui/resources/statics/StaticResourceLoader$1;-><init>(Landroid/content/res/Resources;)V
-HSPLorg/chromium/ui/resources/statics/StaticResourceLoader$1;->create(I)Lorg/chromium/ui/resources/statics/StaticResource;
-Lorg/chromium/ui/resources/system/SystemResourceLoader;
-HSPLorg/chromium/ui/resources/system/SystemResourceLoader;-><init>(Lorg/chromium/ui/resources/ResourceLoader$ResourceLoaderCallback;I)V
-Lorg/chromium/ui/resources/system/SystemResourceLoader$1;
-HSPLorg/chromium/ui/resources/system/SystemResourceLoader$1;-><init>(I)V
-Lorg/chromium/ui/util/AccessibilityUtil;
-HSPLorg/chromium/ui/util/AccessibilityUtil;-><init>()V
-HSPLorg/chromium/ui/util/AccessibilityUtil;->addObserver(Lorg/chromium/ui/util/AccessibilityUtil$Observer;)V
-HSPLorg/chromium/ui/util/AccessibilityUtil;->getAccessibilityManager()Landroid/view/accessibility/AccessibilityManager;
-HSPLorg/chromium/ui/util/AccessibilityUtil;->updateIsAccessibilityEnabledAndNotify()V
-Lorg/chromium/ui/util/AccessibilityUtil$ModeChangeHandler;
-HSPLorg/chromium/ui/util/AccessibilityUtil$ModeChangeHandler;-><init>(Lorg/chromium/ui/util/AccessibilityUtil;)V
-Lorg/chromium/ui/util/AccessibilityUtil$Observer;
-Lorg/chromium/ui/util/ColorUtils;
-HSPLorg/chromium/ui/util/ColorUtils;->getColorWithOverlay(IIFZ)I
-HSPLorg/chromium/ui/util/ColorUtils;->getLightnessForColor(I)F
-HSPLorg/chromium/ui/util/ColorUtils;->inNightMode(Landroid/content/Context;)Z
-HSPLorg/chromium/ui/util/ColorUtils;->shouldUseLightForegroundOnBackground(I)Z
-HSPLorg/chromium/ui/util/ColorUtils;->shouldUseOpaqueTextboxBackground(I)Z
-Lorg/chromium/ui/util/TokenHolder;
-HSPLorg/chromium/ui/util/TokenHolder;-><init>(Ljava/lang/Runnable;)V
-HSPLorg/chromium/ui/util/TokenHolder;->acquireToken()I
-HSPLorg/chromium/ui/util/TokenHolder;->hasTokens()Z
-HSPLorg/chromium/ui/util/TokenHolder;->releaseToken(I)V
-Lorg/chromium/ui/widget/AnchoredPopupWindow$LayoutObserver;
-Lorg/chromium/ui/widget/ButtonCompat;
-HSPLorg/chromium/ui/widget/ButtonCompat;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/ui/widget/ButtonCompat;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
-Lorg/chromium/ui/widget/ChromeImageButton;
-HSPLorg/chromium/ui/widget/ChromeImageButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/ui/widget/ChromeImageButton;->onFinishInflate()V
-Lorg/chromium/ui/widget/ChromeImageView;
-HSPLorg/chromium/ui/widget/ChromeImageView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-Lorg/chromium/ui/widget/LoadingView;
-HSPLorg/chromium/ui/widget/LoadingView;-><init>(Landroid/content/Context;)V
-Lorg/chromium/ui/widget/LoadingView$1;
-HSPLorg/chromium/ui/widget/LoadingView$1;-><init>(Lorg/chromium/ui/widget/LoadingView;I)V
-Lorg/chromium/ui/widget/OptimizedFrameLayout;
-HSPLorg/chromium/ui/widget/OptimizedFrameLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLorg/chromium/ui/widget/OptimizedFrameLayout;->onMeasure(II)V
-Lorg/chromium/ui/widget/OptimizedFrameLayout$MeasurementState;
-HSPLorg/chromium/ui/widget/OptimizedFrameLayout$MeasurementState;-><init>(Landroid/view/View;II)V
-Lorg/chromium/ui/widget/RectProvider;
-HSPLorg/chromium/ui/widget/RectProvider;-><init>()V
-Lorg/chromium/ui/widget/RippleBackgroundHelper;
-HSPLorg/chromium/ui/widget/RippleBackgroundHelper;-><init>(Landroid/view/View;II[FIII)V
-HSPLorg/chromium/ui/widget/RippleBackgroundHelper;->setBackgroundColor(Landroid/content/res/ColorStateList;)V
-Lorg/chromium/ui/widget/Toast;
-Lorg/chromium/ui/widget/ViewRectProvider;
-HSPLorg/chromium/ui/widget/ViewRectProvider;-><init>(Landroid/view/View;)V
-Lorg/chromium/url/GURL;
-HSPLorg/chromium/url/GURL;-><init>()V
-HSPLorg/chromium/url/GURL;-><init>(Ljava/lang/String;)V
-HSPLorg/chromium/url/GURL;->deserialize(Ljava/lang/String;)Lorg/chromium/url/GURL;
-HSPLorg/chromium/url/GURL;->deserializeLatestVersionOnly(Ljava/lang/String;)Lorg/chromium/url/GURL;
-HSPLorg/chromium/url/GURL;->emptyGURL()Lorg/chromium/url/GURL;
-HSPLorg/chromium/url/GURL;->ensureNativeInitializedForGURL()V
-HSPLorg/chromium/url/GURL;->equals(Ljava/lang/Object;)Z
-HSPLorg/chromium/url/GURL;->getComponent(II)Ljava/lang/String;
-HSPLorg/chromium/url/GURL;->getHost()Ljava/lang/String;
-HSPLorg/chromium/url/GURL;->getOrigin()Lorg/chromium/url/GURL;
-HSPLorg/chromium/url/GURL;->getScheme()Ljava/lang/String;
-HSPLorg/chromium/url/GURL;->getSpec()Ljava/lang/String;
-HSPLorg/chromium/url/GURL;->init(Ljava/lang/String;ZLorg/chromium/url/Parsed;)V
-HSPLorg/chromium/url/GURL;->isEmpty()Z
-HSPLorg/chromium/url/GURL;->isEmptyOrInvalid(Lorg/chromium/url/GURL;)Z
-HSPLorg/chromium/url/GURL;->serialize()Ljava/lang/String;
-HSPLorg/chromium/url/GURL;->toNativeGURL()J
-Lorg/chromium/url/GURL$BadSerializerVersionException;
-Lorg/chromium/url/GURL$Holder;
-Lorg/chromium/url/Origin;
-HSPLorg/chromium/url/Origin;-><init>(Ljava/lang/String;Ljava/lang/String;SZJJ)V
-HSPLorg/chromium/url/Origin;->toNativeOrigin()J
-Lorg/chromium/url/Parsed;
-HSPLorg/chromium/url/Parsed;-><init>(IIIIIIIIIIIIIIIIZLorg/chromium/url/Parsed;)V
-HSPLorg/chromium/url/Parsed;->deserialize(I[Ljava/lang/String;)Lorg/chromium/url/Parsed;
-HSPLorg/chromium/url/Parsed;->serialize()Ljava/lang/String;
-HSPLorg/chromium/url/Parsed;->toNativeParsed()J
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutGroupTitle.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutGroupTitle.java
index 8bb28cc6..249d49d 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutGroupTitle.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutGroupTitle.java
@@ -70,14 +70,15 @@
     private static final int MAX_VISUAL_WIDTH_DP = 156;
 
     private static final int MARGIN_TOP_DP = 7;
-    private static final int MARGIN_BOTTOM_DP = 7;
+    private static final int MARGIN_BOTTOM_DP = 9;
     private static final int MARGIN_START_DP = 13;
-
-    // TODO(crbug.com/381161875): Update the end margin to align with the top margin.
     private static final int MARGIN_END_DP = 9;
-
     private static final int TEXT_PADDING_DP = 8;
-    private static final int CORNER_RADIUS_DP = 7;
+
+    // The padding between the start of the indicator and the avatar when the group is shared. If no
+    // avatar is present, the start padding should match the end padding, using `TEXT_PADDING_DP`.
+    private static final int AVATAR_START_PADDING_DP = 4;
+    private static final int CORNER_RADIUS_DP = 6;
     private static final float BOTTOM_INDICATOR_HEIGHT_DP = 2.f;
 
     private static final int WIDTH_MARGINS_DP = MARGIN_START_DP + MARGIN_END_DP;
@@ -228,7 +229,8 @@
         float viewWidth =
                 getAvatarWidthWithPadding()
                         + textWidth
-                        + (TEXT_PADDING_DP * 2)
+                        + getTitleStartPadding()
+                        + getTitleEndPadding()
                         + WIDTH_MARGINS_DP
                         + 1;
         setWidth(MathUtils.clamp(viewWidth, EFFECTIVE_MIN_WIDTH, EFFECTIVE_MAX_WIDTH));
@@ -257,9 +259,16 @@
     }
 
     /**
-     * @return The padding for the title text.
+     * @return The start padding for the title.
      */
-    public int getTitleTextPadding() {
+    public int getTitleStartPadding() {
+        return mAvatarWidthWithPadding > 0 ? AVATAR_START_PADDING_DP : TEXT_PADDING_DP;
+    }
+
+    /**
+     * @return The end padding for the title.
+     */
+    public int getTitleEndPadding() {
         return TEXT_PADDING_DP;
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java
index b7e7cb0..1e6e4798 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java
@@ -314,7 +314,8 @@
                             gt.getPaddedY() * mDpToPx,
                             gt.getPaddedWidth() * mDpToPx,
                             gt.getPaddedHeight() * mDpToPx,
-                            gt.getTitleTextPadding() * mDpToPx,
+                            gt.getTitleStartPadding() * mDpToPx,
+                            gt.getTitleEndPadding() * mDpToPx,
                             gt.getCornerRadius() * mDpToPx,
                             gt.getBottomIndicatorWidth() * mDpToPx,
                             gt.getBottomIndicatorHeight() * mDpToPx,
@@ -447,7 +448,8 @@
                 float y,
                 float width,
                 float height,
-                float titleTextPadding,
+                float titleStartPadding,
+                float titleEndPadding,
                 float cornerRadius,
                 float bottomIndicatorWidth,
                 float bottomIndicatorHeight,
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/media/OWNERS b/chrome/android/java/src/org/chromium/chrome/browser/media/OWNERS
new file mode 100644
index 0000000..168af18
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/media/OWNERS
@@ -0,0 +1 @@
+file://media/OWNERS
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/app/appmenu/TabbedAppMenuPTTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/app/appmenu/TabbedAppMenuPTTest.java
index 72fcc1a..83c9092 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/app/appmenu/TabbedAppMenuPTTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/app/appmenu/TabbedAppMenuPTTest.java
@@ -8,6 +8,8 @@
 
 import static org.chromium.base.test.transit.TransitAsserts.assertFinalDestination;
 
+import android.view.View;
+
 import androidx.test.filters.LargeTest;
 
 import org.junit.ClassRule;
@@ -19,6 +21,7 @@
 import org.chromium.base.test.transit.ScrollableFacility.Item.Presence;
 import org.chromium.base.test.util.Batch;
 import org.chromium.base.test.util.CommandLineFlags;
+import org.chromium.base.test.util.Feature;
 import org.chromium.base.test.util.RequiresRestart;
 import org.chromium.chrome.browser.flags.ChromeSwitches;
 import org.chromium.chrome.browser.tab.Tab;
@@ -34,6 +37,9 @@
 import org.chromium.chrome.test.transit.page.WebPageStation;
 import org.chromium.chrome.test.transit.settings.SettingsStation;
 import org.chromium.chrome.test.transit.testhtmls.NavigatePageStations;
+import org.chromium.chrome.test.util.ChromeRenderTestRule;
+
+import java.io.IOException;
 
 /** Public Transit tests for the app menu. */
 @RunWith(ChromeJUnit4ClassRunner.class)
@@ -48,6 +54,14 @@
     public BlankCTATabInitialStatePublicTransitRule mInitialStateRule =
             new BlankCTATabInitialStatePublicTransitRule(sActivityTestRule);
 
+    @Rule
+    public final ChromeRenderTestRule mRenderTestRule =
+            ChromeRenderTestRule.Builder.withPublicCorpus()
+                    .setRevision(0)
+                    .setDescription("App menu")
+                    .setBugComponent(ChromeRenderTestRule.Component.UI_BROWSER_MOBILE_APP_MENU)
+                    .build();
+
     /** Tests that "New tab" opens a new tab with the NTP. */
     @Test
     @LargeTest
@@ -91,6 +105,18 @@
                         .build());
     }
 
+    /** Render test for the "Delete browsing data" item, including the icon. */
+    @Test
+    @LargeTest
+    @Feature({"QuickDelete", "RenderTest"})
+    public void testRenderQuickDeleteItem() throws IOException {
+        RegularWebPageAppMenuFacility menu =
+                mInitialStateRule.startOnBlankPage().openRegularTabAppMenu();
+        View quickDeleteItemView = menu.mQuickDelete.scrollTo().getView();
+        mRenderTestRule.render(quickDeleteItemView, "quick_delete_item");
+        menu.clickOutsideToClose();
+    }
+
     /**
      * Tests that all expected items declared in NewTabPageRegularAppMenuFacility are present in the
      * app menu opened from a regular NTP.
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/app/appmenu/TabbedAppMenuTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/app/appmenu/TabbedAppMenuTest.java
index f5f4742d..a4d9808a 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/app/appmenu/TabbedAppMenuTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/app/appmenu/TabbedAppMenuTest.java
@@ -34,7 +34,6 @@
 import org.chromium.base.test.util.Criteria;
 import org.chromium.base.test.util.CriteriaHelper;
 import org.chromium.base.test.util.Feature;
-import org.chromium.base.test.util.HistogramWatcher;
 import org.chromium.base.test.util.Restriction;
 import org.chromium.base.test.util.UrlUtils;
 import org.chromium.chrome.browser.ChromeTabbedActivity;
@@ -46,7 +45,6 @@
 import org.chromium.chrome.browser.password_manager.PasswordManagerUtilBridge;
 import org.chromium.chrome.browser.password_manager.PasswordManagerUtilBridgeJni;
 import org.chromium.chrome.browser.profiles.ProfileManager;
-import org.chromium.chrome.browser.quick_delete.QuickDeleteMetricsDelegate;
 import org.chromium.chrome.browser.sync.FakeSyncServiceImpl;
 import org.chromium.chrome.browser.sync.SyncServiceFactory;
 import org.chromium.chrome.browser.tab.Tab;
@@ -59,7 +57,6 @@
 import org.chromium.chrome.test.util.ActivityTestUtils;
 import org.chromium.chrome.test.util.ChromeRenderTestRule;
 import org.chromium.chrome.test.util.ChromeTabUtils;
-import org.chromium.chrome.test.util.MenuUtils;
 import org.chromium.chrome.test.util.browser.signin.SigninTestRule;
 import org.chromium.components.browser_ui.site_settings.WebsitePreferenceBridge;
 import org.chromium.components.content_settings.ContentSettingsType;
@@ -393,49 +390,6 @@
 
     @Test
     @LargeTest
-    @Feature({"Browser", "Main", "QuickDelete", "RenderTest"})
-    public void testQuickDeleteMenu_Shown() throws IOException {
-        showAppMenuAndAssertMenuShown();
-        int quickDeletePosition =
-                AppMenuTestSupport.findIndexOfMenuItemById(
-                        mActivityTestRule.getAppMenuCoordinator(), R.id.quick_delete_menu_id);
-        mRenderTestRule.render(getListView().getChildAt(quickDeletePosition), "quick_delete");
-    }
-
-    @Test
-    @SmallTest
-    @Feature({"Browser", "Main", "QuickDelete"})
-    public void testQuickDeleteMenu_entryFromMenuItemHistogram() throws IOException {
-        HistogramWatcher histogramWatcher =
-                HistogramWatcher.newSingleRecordWatcher(
-                        QuickDeleteMetricsDelegate.HISTOGRAM_NAME,
-                        QuickDeleteMetricsDelegate.QuickDeleteAction.MENU_ITEM_CLICKED);
-
-        MenuUtils.invokeCustomMenuActionSync(
-                InstrumentationRegistry.getInstrumentation(),
-                mActivityTestRule.getActivity(),
-                R.id.quick_delete_menu_id);
-
-        histogramWatcher.assertExpected();
-    }
-
-    @Test
-    @LargeTest
-    @Feature({"Browser", "Main", "QuickDelete"})
-    public void testQuickDeleteMenu_NotShownInIncognito() {
-        // Hide first any shown app menu as it can interfere with this test.
-        hitEnterAndAssertAppMenuDismissed();
-
-        mActivityTestRule.newIncognitoTabFromMenu();
-        showAppMenuAndAssertMenuShown();
-        assertEquals(
-                -1,
-                AppMenuTestSupport.findIndexOfMenuItemById(
-                        mActivityTestRule.getAppMenuCoordinator(), R.id.quick_delete_menu_id));
-    }
-
-    @Test
-    @LargeTest
     @Feature({"Browser", "Main", "RenderTest"})
     public void testSettingsMenuItem_NoBadgeShownForNotSignedInUsers() throws IOException {
         View view = getSettingsMenuItemView();
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index 2d49939..eb8d09d 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -9668,12 +9668,18 @@
       </message>
 
       <!-- Strings for tab declutter -->
-      <message name="IDS_DECLUTTER_SELECTOR_HEADING" desc="Heading for the declutter button in the tab organization selector.">
+      <message name="IDS_DECLUTTER_SELECTOR_HEADING_NO_DEDUPE" desc="Heading for the declutter button in the tab organization selector when dedupe is disabled.">
         {NUM_TABS, plural,
           =0 {No inactive tabs}
           =1 {Review 1 inactive tab}
           other {Review # inactive tabs}}
       </message>
+      <message name="IDS_DECLUTTER_SELECTOR_HEADING" desc="Heading for the declutter button in the tab organization selector.">
+        {NUM_TABS, plural,
+          =0 {No unused tabs}
+          =1 {Review 1 unused tab}
+          other {Review # unused tabs}}
+      </message>
       <message name="IDS_DECLUTTER_SELECTOR_SUBHEADING" desc="Subheading for the declutter button in the tab organization selector.">
         Keep your tabs clutter-free
       </message>
@@ -9698,31 +9704,34 @@
       <message name="IDS_DECLUTTER_EMPTY_TITLE" desc="The header text for the declutter empty state UI">
         Things look neat!
       </message>
-      <message name="IDS_DECLUTTER_EMPTY_BODY" desc="The body text for the declutter empty state UI">
+      <message name="IDS_DECLUTTER_EMPTY_BODY_NO_DEDUPE" desc="The body text for the declutter empty state UI when dedupe is disabled">
         No inactive tabs right now
       </message>
+      <message name="IDS_DECLUTTER_EMPTY_BODY" desc="The body text for the declutter empty state UI">
+        No unused tabs right now
+      </message>
       <message name="IDS_DUPLICATE_ITEM_TITLE_SINGLE" desc="The title for an item in the duplicate tabs list with 1 duplicate">
         <ph name="URL">$1<ex>google.com</ex></ph> • 1 duplicate
       </message>
       <message name="IDS_DUPLICATE_ITEM_TITLE_MULTI" desc="The title for an item in the duplicate tabs list with multiple duplicates">
         <ph name="URL">$1<ex>google.com</ex></ph> • <ph name="DUPLICATE_COUNT">$2<ex>2</ex></ph> duplicates
       </message>
-      <message name="IDS_TOOLTIP_TAB_DECLUTTER" desc="The tooltip for the Tab Declutter button.">
+      <message name="IDS_TOOLTIP_TAB_DECLUTTER_NO_DEDUPE" desc="The tooltip for the Tab Declutter button when dedupe is disabled.">
         Review inactive tabs?
       </message>
-      <message name="IDS_TAB_DECLUTTER" desc="The text label of the Tab Declutter button.">
+      <message name="IDS_TAB_DECLUTTER_NO_DEDUPE" desc="The text label of the Tab Declutter button when dedupe is disabled.">
         Review inactive tabs?
       </message>
-      <message name="IDS_ACCNAME_TAB_DECLUTTER" desc="The accessible name for the Tab Declutter button." is_accessibility_with_no_ui="true">
+      <message name="IDS_ACCNAME_TAB_DECLUTTER_NO_DEDUPE" desc="The accessible name for the Tab Declutter button when dedupe is disabled." is_accessibility_with_no_ui="true">
         Review inactive tabs
       </message>
-      <message name="IDS_TOOLTIP_TAB_DECLUTTER_WITH_DEDUPE" desc="The tooltip for the Tab Declutter button.">
+      <message name="IDS_TOOLTIP_TAB_DECLUTTER" desc="The tooltip for the Tab Declutter button.">
         Clean up unused tabs?
       </message>
-      <message name="IDS_TAB_DECLUTTER_WITH_DEDUPE" desc="The text label of the Tab Declutter button.">
+      <message name="IDS_TAB_DECLUTTER" desc="The text label of the Tab Declutter button.">
         Clean up unused tabs?
       </message>
-      <message name="IDS_ACCNAME_TAB_DECLUTTER_WITH_DEDUPE" desc="The accessible name for the Tab Declutter button." is_accessibility_with_no_ui="true">
+      <message name="IDS_ACCNAME_TAB_DECLUTTER" desc="The accessible name for the Tab Declutter button." is_accessibility_with_no_ui="true">
         Clean up unused tabs
       </message>
       <message name="IDS_DECLUTTER_TIMESTAMP" desc="The description of when a tab was last accessed, for use in a declutter row.">
@@ -9733,14 +9742,20 @@
       </message>
       <if expr="use_titlecase">
         <then>
-          <message name="IDS_DECLUTTER_MENU" desc="In Title Case: The text label for the declutter app menu item.">
+          <message name="IDS_DECLUTTER_MENU_NO_DEDUPE" desc="In Title Case: The text label for the declutter app menu item when dedupe is disabled.">
             Review Inactive Tabs
           </message>
+          <message name="IDS_DECLUTTER_MENU" desc="In Title Case: The text label for the declutter app menu item.">
+            Clean Up Unused Tabs
+          </message>
         </then>
         <else>
-          <message name="IDS_DECLUTTER_MENU" desc="The text label for the declutter app menu item.">
+          <message name="IDS_DECLUTTER_MENU_NO_DEDUPE" desc="The text label for the declutter app menu item when dedupe is disabled.">
             Review inactive tabs
           </message>
+          <message name="IDS_DECLUTTER_MENU" desc="The text label for the declutter app menu item.">
+            Clean up unused tabs
+          </message>
         </else>
       </if>
       <message name="IDS_DECLUTTER_CLOSE_TABS" desc="The text label of the action button in the Tab Declutter UI.">
diff --git a/chrome/app/generated_resources_grd/IDS_DECLUTTER_EMPTY_BODY.png.sha1 b/chrome/app/generated_resources_grd/IDS_DECLUTTER_EMPTY_BODY.png.sha1
index 9d05a24..d8242d5 100644
--- a/chrome/app/generated_resources_grd/IDS_DECLUTTER_EMPTY_BODY.png.sha1
+++ b/chrome/app/generated_resources_grd/IDS_DECLUTTER_EMPTY_BODY.png.sha1
@@ -1 +1 @@
-1837cb3d5e523873b4d76a3d7202e3d313580eaf
\ No newline at end of file
+c10d76d7607f0d28e2e318730319335e8e3a6116
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_DECLUTTER_EMPTY_BODY_NO_DEDUPE.png.sha1 b/chrome/app/generated_resources_grd/IDS_DECLUTTER_EMPTY_BODY_NO_DEDUPE.png.sha1
new file mode 100644
index 0000000..87247b7
--- /dev/null
+++ b/chrome/app/generated_resources_grd/IDS_DECLUTTER_EMPTY_BODY_NO_DEDUPE.png.sha1
@@ -0,0 +1 @@
+24264a450e0312c09103d3ecb939fe72c43c6a1e
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_DECLUTTER_MENU.png.sha1 b/chrome/app/generated_resources_grd/IDS_DECLUTTER_MENU.png.sha1
index fbaa1b1f..c9b7129d 100644
--- a/chrome/app/generated_resources_grd/IDS_DECLUTTER_MENU.png.sha1
+++ b/chrome/app/generated_resources_grd/IDS_DECLUTTER_MENU.png.sha1
@@ -1 +1 @@
-7e517397d037ed245163488a562515b059bcd29f
\ No newline at end of file
+6edac9c20b4164c3e03a086ff382982acf89bfe9
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_DECLUTTER_MENU_NO_DEDUPE.png.sha1 b/chrome/app/generated_resources_grd/IDS_DECLUTTER_MENU_NO_DEDUPE.png.sha1
new file mode 100644
index 0000000..a29397b2
--- /dev/null
+++ b/chrome/app/generated_resources_grd/IDS_DECLUTTER_MENU_NO_DEDUPE.png.sha1
@@ -0,0 +1 @@
+4d3e2ca206af7939186e363e110ef30a30eb83e9
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_DECLUTTER_SELECTOR_HEADING.png.sha1 b/chrome/app/generated_resources_grd/IDS_DECLUTTER_SELECTOR_HEADING.png.sha1
index 48a9f8e..7794c10b 100644
--- a/chrome/app/generated_resources_grd/IDS_DECLUTTER_SELECTOR_HEADING.png.sha1
+++ b/chrome/app/generated_resources_grd/IDS_DECLUTTER_SELECTOR_HEADING.png.sha1
@@ -1 +1 @@
-851c79e5271579595b2a315f1efa1229c39a43aa
\ No newline at end of file
+b3c66483da6ef07bd752594610c33426aa8d3235
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_DECLUTTER_SELECTOR_HEADING_NO_DEDUPE.png.sha1 b/chrome/app/generated_resources_grd/IDS_DECLUTTER_SELECTOR_HEADING_NO_DEDUPE.png.sha1
new file mode 100644
index 0000000..813cf28
--- /dev/null
+++ b/chrome/app/generated_resources_grd/IDS_DECLUTTER_SELECTOR_HEADING_NO_DEDUPE.png.sha1
@@ -0,0 +1 @@
+02c666c4950901f0240698210449d0ea4664b5b7
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_TAB_DECLUTTER.png.sha1 b/chrome/app/generated_resources_grd/IDS_TAB_DECLUTTER.png.sha1
index 920a9ad..cc4023b 100644
--- a/chrome/app/generated_resources_grd/IDS_TAB_DECLUTTER.png.sha1
+++ b/chrome/app/generated_resources_grd/IDS_TAB_DECLUTTER.png.sha1
@@ -1 +1 @@
-aab1c5ec25a8dcc69b7c81538cce4e9974976e97
\ No newline at end of file
+96207ff063426c7ee7a6185ee5719966e0428a35
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_TAB_DECLUTTER_NO_DEDUPE.png.sha1 b/chrome/app/generated_resources_grd/IDS_TAB_DECLUTTER_NO_DEDUPE.png.sha1
new file mode 100644
index 0000000..920a9ad
--- /dev/null
+++ b/chrome/app/generated_resources_grd/IDS_TAB_DECLUTTER_NO_DEDUPE.png.sha1
@@ -0,0 +1 @@
+aab1c5ec25a8dcc69b7c81538cce4e9974976e97
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_TAB_DECLUTTER_WITH_DEDUPE.png.sha1 b/chrome/app/generated_resources_grd/IDS_TAB_DECLUTTER_WITH_DEDUPE.png.sha1
deleted file mode 100644
index cc4023b..0000000
--- a/chrome/app/generated_resources_grd/IDS_TAB_DECLUTTER_WITH_DEDUPE.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-96207ff063426c7ee7a6185ee5719966e0428a35
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_TOOLTIP_TAB_DECLUTTER.png.sha1 b/chrome/app/generated_resources_grd/IDS_TOOLTIP_TAB_DECLUTTER.png.sha1
index 4f8ce10..057f41b 100644
--- a/chrome/app/generated_resources_grd/IDS_TOOLTIP_TAB_DECLUTTER.png.sha1
+++ b/chrome/app/generated_resources_grd/IDS_TOOLTIP_TAB_DECLUTTER.png.sha1
@@ -1 +1 @@
-ec0c42e11ec25cfc0a0e9af049c503e9cf9755d7
\ No newline at end of file
+f68a0d86b166813e102af18930f1db5daa39952c
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_TOOLTIP_TAB_DECLUTTER_NO_DEDUPE.png.sha1 b/chrome/app/generated_resources_grd/IDS_TOOLTIP_TAB_DECLUTTER_NO_DEDUPE.png.sha1
new file mode 100644
index 0000000..4f8ce10
--- /dev/null
+++ b/chrome/app/generated_resources_grd/IDS_TOOLTIP_TAB_DECLUTTER_NO_DEDUPE.png.sha1
@@ -0,0 +1 @@
+ec0c42e11ec25cfc0a0e9af049c503e9cf9755d7
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_TOOLTIP_TAB_DECLUTTER_WITH_DEDUPE.png.sha1 b/chrome/app/generated_resources_grd/IDS_TOOLTIP_TAB_DECLUTTER_WITH_DEDUPE.png.sha1
deleted file mode 100644
index 057f41b..0000000
--- a/chrome/app/generated_resources_grd/IDS_TOOLTIP_TAB_DECLUTTER_WITH_DEDUPE.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-f68a0d86b166813e102af18930f1db5daa39952c
\ No newline at end of file
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index eed17e4..913d478 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -2295,6 +2295,7 @@
     "//components/security_state/core",
     "//components/segmentation_platform/embedder",
     "//components/segmentation_platform/embedder/default_model",
+    "//components/segmentation_platform/embedder/home_modules:constants",
     "//components/segmentation_platform/internal",
     "//components/segmentation_platform/internal/proto",
     "//components/segmentation_platform/public",
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 218a5ee..2a19fb6 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -156,6 +156,7 @@
 #include "components/search_engines/search_engines_switches.h"
 #include "components/security_interstitials/content/stateful_ssl_host_state_delegate.h"
 #include "components/security_state/core/security_state.h"
+#include "components/segmentation_platform/embedder/home_modules/constants.h"
 #include "components/segmentation_platform/public/features.h"
 #include "components/send_tab_to_self/features.h"
 #include "components/sensitive_content/features.h"
@@ -2292,6 +2293,23 @@
      std::size(kMagicStackAndroid_show_all_modules), nullptr},
 };
 
+const FeatureEntry::FeatureParam kDefaultBrowserPromoShowArm[] = {
+    {segmentation_platform::features::kEphemeralCardRankerForceShowCardParam,
+     segmentation_platform::kDefaultBrowserPromo},
+};
+const FeatureEntry::FeatureParam kDefaultBrowserPromoHideArm[] = {
+    {segmentation_platform::features::kEphemeralCardRankerForceHideCardParam,
+     segmentation_platform::kDefaultBrowserPromo},
+};
+
+const FeatureEntry::FeatureVariation kEphemeralCardRankerCardOverrideOptions[] =
+    {
+        {"- Force show default browser promo", kDefaultBrowserPromoShowArm,
+         std::size(kDefaultBrowserPromoShowArm), nullptr},
+        {"- Force hide default browser promo", kDefaultBrowserPromoHideArm,
+         std::size(kDefaultBrowserPromoHideArm), nullptr},
+};
+
 const FeatureEntry::FeatureParam kEducationalTipModule_force_default_browser[] =
     {{"force_default_browser", "true"}};
 const FeatureEntry::FeatureParam kEducationalTipModule_force_tab_group[] = {
@@ -3935,14 +3953,18 @@
     {"LocationProviderManagerMode", "PlatformOnly"}};
 const FeatureEntry::FeatureParam kLocationProviderManagerModeHybridPlatform[] =
     {{"LocationProviderManagerMode", "HybridPlatform"}};
+const FeatureEntry::FeatureParam kLocationProviderManagerModeHybridPlatform2[] =
+    {{"LocationProviderManagerMode", "HybridPlatform2"}};
 
 const FeatureEntry::FeatureVariation kLocationProviderManagerVariations[] = {
-    {"NetworkOnly", kLocationProviderManagerModeNetworkOnly,
+    {"Network only", kLocationProviderManagerModeNetworkOnly,
      std::size(kLocationProviderManagerModeNetworkOnly), nullptr},
-    {"PlatformOnly", kLocationProviderManagerModePlatformOnly,
+    {"Platform only", kLocationProviderManagerModePlatformOnly,
      std::size(kLocationProviderManagerModePlatformOnly), nullptr},
-    {"HybridPlatform", kLocationProviderManagerModeHybridPlatform,
-     std::size(kLocationProviderManagerModeHybridPlatform), nullptr}};
+    {"Wi-Fi fallback", kLocationProviderManagerModeHybridPlatform,
+     std::size(kLocationProviderManagerModeHybridPlatform), nullptr},
+    {"Fallback on error", kLocationProviderManagerModeHybridPlatform2,
+     std::size(kLocationProviderManagerModeHybridPlatform2), nullptr}};
 #endif  // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
 
 #if !BUILDFLAG(IS_ANDROID)
@@ -7322,8 +7344,11 @@
      flag_descriptions::kSegmentationPlatformEphemeralCardRankerName,
      flag_descriptions::kSegmentationPlatformEphemeralCardRankerDescription,
      kOsAndroid,
-     FEATURE_VALUE_TYPE(segmentation_platform::features::
-                            kSegmentationPlatformEphemeralCardRanker)},
+     FEATURE_WITH_PARAMS_VALUE_TYPE(
+         segmentation_platform::features::
+             kSegmentationPlatformEphemeralCardRanker,
+         kEphemeralCardRankerCardOverrideOptions,
+         "EducationalTipModule")},
 
     {"maylaunchurl-uses-separate-storage-partition",
      flag_descriptions::kMayLaunchUrlUsesSeparateStoragePartitionName,
diff --git a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.cc b/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.cc
index ba0eddb..fbbc1f85 100644
--- a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.cc
+++ b/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.cc
@@ -452,7 +452,8 @@
     jfloat y,
     jfloat width,
     jfloat height,
-    jfloat title_text_padding,
+    jfloat title_start_padding,
+    jfloat title_end_padding,
     jfloat corner_radius,
     jfloat bottom_indicator_width,
     jfloat bottom_indicator_height,
@@ -484,8 +485,10 @@
 
     float title_y = (height - title_layer->size().height()) / 2.f;
     title_layer->setOpacity(1.0f);
-    title_layer->setBounds(gfx::Size(width - (title_text_padding * 2), height));
-    title_layer->layer()->SetPosition(gfx::PointF(title_text_padding, title_y));
+    title_layer->setBounds(
+        gfx::Size(width - title_start_padding - title_end_padding, height));
+    title_layer->layer()->SetPosition(
+        gfx::PointF(title_start_padding, title_y));
     if (title_indicator_layer->children().size() == 0) {
       title_indicator_layer->AddChild(title_layer->layer());
     } else {
diff --git a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.h b/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.h
index 165e84744..176589bd 100644
--- a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.h
+++ b/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.h
@@ -160,7 +160,8 @@
       jfloat y,
       jfloat width,
       jfloat height,
-      jfloat title_text_padding,
+      jfloat title_start_padding,
+      jfloat title_end_padding,
       jfloat corner_radius,
       jfloat bottom_indicator_width,
       jfloat bottom_indicator_height,
diff --git a/chrome/browser/component_updater/afp_blocked_domain_list_component_installer_unittest.cc b/chrome/browser/component_updater/afp_blocked_domain_list_component_installer_unittest.cc
index 7c52528..dd5e82d 100644
--- a/chrome/browser/component_updater/afp_blocked_domain_list_component_installer_unittest.cc
+++ b/chrome/browser/component_updater/afp_blocked_domain_list_component_installer_unittest.cc
@@ -53,8 +53,6 @@
   TestRulesetService(const TestRulesetService&) = delete;
   TestRulesetService& operator=(const TestRulesetService&) = delete;
 
-  ~TestRulesetService() override = default;
-
   using UnindexedRulesetInfo = subresource_filter::UnindexedRulesetInfo;
   void IndexAndStoreAndPublishRulesetIfNeeded(
       const UnindexedRulesetInfo& unindexed_ruleset_info) override {
diff --git a/chrome/browser/component_updater/app_provisioning_component_installer.h b/chrome/browser/component_updater/app_provisioning_component_installer.h
index ab815e7..b037cd2 100644
--- a/chrome/browser/component_updater/app_provisioning_component_installer.h
+++ b/chrome/browser/component_updater/app_provisioning_component_installer.h
@@ -30,7 +30,6 @@
       const AppProvisioningComponentInstallerPolicy&) = delete;
   AppProvisioningComponentInstallerPolicy& operator=(
       const AppProvisioningComponentInstallerPolicy&) = delete;
-  ~AppProvisioningComponentInstallerPolicy() override = default;
 
  private:
   // The following methods override ComponentInstallerPolicy.
diff --git a/chrome/browser/component_updater/chrome_component_updater_configurator.cc b/chrome/browser/component_updater/chrome_component_updater_configurator.cc
index aaff707..22453eb 100644
--- a/chrome/browser/component_updater/chrome_component_updater_configurator.cc
+++ b/chrome/browser/component_updater/chrome_component_updater_configurator.cc
@@ -94,6 +94,8 @@
  private:
   friend class base::RefCountedThreadSafe<ChromeConfigurator>;
 
+  ~ChromeConfigurator() override = default;
+
   std::optional<base::FilePath> GetBackgroundDownloaderCache() const;
 
   SEQUENCE_CHECKER(sequence_checker_);
@@ -104,8 +106,6 @@
   scoped_refptr<update_client::CrxDownloaderFactory> crx_downloader_factory_;
   scoped_refptr<update_client::UnzipperFactory> unzip_factory_;
   scoped_refptr<update_client::PatcherFactory> patch_factory_;
-
-  ~ChromeConfigurator() override = default;
 };
 
 // Allows the component updater to use non-encrypted communication with the
diff --git a/chrome/browser/component_updater/chrome_component_updater_configurator_unittest.cc b/chrome/browser/component_updater/chrome_component_updater_configurator_unittest.cc
index aface2e..4823242 100644
--- a/chrome/browser/component_updater/chrome_component_updater_configurator_unittest.cc
+++ b/chrome/browser/component_updater/chrome_component_updater_configurator_unittest.cc
@@ -25,20 +25,10 @@
 namespace component_updater {
 
 class ChromeComponentUpdaterConfiguratorTest : public testing::Test {
- public:
-  ChromeComponentUpdaterConfiguratorTest() = default;
-
-  ChromeComponentUpdaterConfiguratorTest(
-      const ChromeComponentUpdaterConfiguratorTest&) = delete;
-  ChromeComponentUpdaterConfiguratorTest& operator=(
-      const ChromeComponentUpdaterConfiguratorTest&) = delete;
-
-  ~ChromeComponentUpdaterConfiguratorTest() override = default;
-
+ protected:
   // Overrides from testing::Test.
   void SetUp() override;
 
- protected:
   TestingPrefServiceSimple* pref_service() { return pref_service_.get(); }
 
  private:
diff --git a/chrome/browser/component_updater/chrome_origin_trials_component_installer.h b/chrome/browser/component_updater/chrome_origin_trials_component_installer.h
index 0d5c0d74..cf58025 100644
--- a/chrome/browser/component_updater/chrome_origin_trials_component_installer.h
+++ b/chrome/browser/component_updater/chrome_origin_trials_component_installer.h
@@ -21,7 +21,6 @@
     : public OriginTrialsComponentInstallerPolicy {
  public:
   ChromeOriginTrialsComponentInstallerPolicy() = default;
-  ~ChromeOriginTrialsComponentInstallerPolicy() override = default;
   ChromeOriginTrialsComponentInstallerPolicy(
       const ChromeOriginTrialsComponentInstallerPolicy&) = delete;
   ChromeOriginTrialsComponentInstallerPolicy& operator=(
diff --git a/chrome/browser/component_updater/commerce_heuristics_component_installer.h b/chrome/browser/component_updater/commerce_heuristics_component_installer.h
index b6be111..eaae2037 100644
--- a/chrome/browser/component_updater/commerce_heuristics_component_installer.h
+++ b/chrome/browser/component_updater/commerce_heuristics_component_installer.h
@@ -26,7 +26,6 @@
       delete;
   CommerceHeuristicsInstallerPolicy& operator=(
       const CommerceHeuristicsInstallerPolicy& other) = delete;
-  ~CommerceHeuristicsInstallerPolicy() override = default;
 
  private:
   // The following methods override ComponentInstallerPolicy.
diff --git a/chrome/browser/component_updater/cros_component_installer_chromeos_unittest.cc b/chrome/browser/component_updater/cros_component_installer_chromeos_unittest.cc
index ac79bc3..15de6f39 100644
--- a/chrome/browser/component_updater/cros_component_installer_chromeos_unittest.cc
+++ b/chrome/browser/component_updater/cros_component_installer_chromeos_unittest.cc
@@ -83,8 +83,6 @@
   TestUpdater(const TestUpdater&) = delete;
   TestUpdater& operator=(const TestUpdater&) = delete;
 
-  ~TestUpdater() override = default;
-
   // Whether has a pending update request (either foreground or background).
   bool HasPendingUpdate(const std::string& name) {
     return base::Contains(background_updates_, name) ||
diff --git a/chrome/browser/component_updater/crowd_deny_component_installer.h b/chrome/browser/component_updater/crowd_deny_component_installer.h
index 0c513b5..2a7f268 100644
--- a/chrome/browser/component_updater/crowd_deny_component_installer.h
+++ b/chrome/browser/component_updater/crowd_deny_component_installer.h
@@ -29,8 +29,6 @@
   CrowdDenyComponentInstallerPolicy& operator=(
       const CrowdDenyComponentInstallerPolicy&) = delete;
 
-  ~CrowdDenyComponentInstallerPolicy() override = default;
-
  private:
   static base::FilePath GetInstalledPath(const base::FilePath& base);
 
diff --git a/chrome/browser/component_updater/file_type_policies_component_installer.h b/chrome/browser/component_updater/file_type_policies_component_installer.h
index 4777614..9ae0c7a3 100644
--- a/chrome/browser/component_updater/file_type_policies_component_installer.h
+++ b/chrome/browser/component_updater/file_type_policies_component_installer.h
@@ -33,7 +33,6 @@
       const FileTypePoliciesComponentInstallerPolicy&) = delete;
   FileTypePoliciesComponentInstallerPolicy& operator=(
       const FileTypePoliciesComponentInstallerPolicy&) = delete;
-  ~FileTypePoliciesComponentInstallerPolicy() override = default;
 
  private:
   // The following methods override ComponentInstallerPolicy.
diff --git a/chrome/browser/component_updater/media_foundation_widevine_cdm_component_installer.h b/chrome/browser/component_updater/media_foundation_widevine_cdm_component_installer.h
index 56d03613..7f86d74 100644
--- a/chrome/browser/component_updater/media_foundation_widevine_cdm_component_installer.h
+++ b/chrome/browser/component_updater/media_foundation_widevine_cdm_component_installer.h
@@ -27,7 +27,6 @@
       MediaFoundationWidevineCdmComponentInstallerPolicy& other) = delete;
   MediaFoundationWidevineCdmComponentInstallerPolicy& operator=(
       const MediaFoundationWidevineCdmComponentInstallerPolicy& other) = delete;
-  ~MediaFoundationWidevineCdmComponentInstallerPolicy() override = default;
 
  private:
   // The following methods override ComponentInstallerPolicy.
diff --git a/chrome/browser/component_updater/metadata_table_chromeos_unittest.cc b/chrome/browser/component_updater/metadata_table_chromeos_unittest.cc
index c90d339..071edf7 100644
--- a/chrome/browser/component_updater/metadata_table_chromeos_unittest.cc
+++ b/chrome/browser/component_updater/metadata_table_chromeos_unittest.cc
@@ -19,16 +19,6 @@
 }  // namespace
 
 class CrOSComponentInstallerMetadataTest : public testing::Test {
- public:
-  CrOSComponentInstallerMetadataTest() = default;
-
-  CrOSComponentInstallerMetadataTest(
-      const CrOSComponentInstallerMetadataTest&) = delete;
-  CrOSComponentInstallerMetadataTest& operator=(
-      const CrOSComponentInstallerMetadataTest&) = delete;
-
-  ~CrOSComponentInstallerMetadataTest() override = default;
-
  protected:
   content::BrowserTaskEnvironment task_environment_;
 };
diff --git a/chrome/browser/component_updater/privacy_sandbox_attestations_component_installer_unittest.cc b/chrome/browser/component_updater/privacy_sandbox_attestations_component_installer_unittest.cc
index 03da8c9..61f91bff 100644
--- a/chrome/browser/component_updater/privacy_sandbox_attestations_component_installer_unittest.cc
+++ b/chrome/browser/component_updater/privacy_sandbox_attestations_component_installer_unittest.cc
@@ -53,8 +53,6 @@
         privacy_sandbox::kEnforcePrivacySandboxAttestations);
   }
 
-  ~PrivacySandboxAttestationsInstallerFeatureDisabledTest() override = default;
-
  private:
   base::test::ScopedFeatureList scoped_feature_list_;
 };
@@ -101,10 +99,6 @@
 
 class PrivacySandboxAttestationsInstallerFeatureEnabledTest
     : public PrivacySandboxAttestationsInstallerTest {
- public:
-  PrivacySandboxAttestationsInstallerFeatureEnabledTest() = default;
-
-  ~PrivacySandboxAttestationsInstallerFeatureEnabledTest() override = default;
 };
 
 TEST_F(PrivacySandboxAttestationsInstallerFeatureEnabledTest,
diff --git a/chrome/browser/component_updater/real_time_url_checks_allowlist_component_installer.h b/chrome/browser/component_updater/real_time_url_checks_allowlist_component_installer.h
index 07e3f751..56ae8c22 100644
--- a/chrome/browser/component_updater/real_time_url_checks_allowlist_component_installer.h
+++ b/chrome/browser/component_updater/real_time_url_checks_allowlist_component_installer.h
@@ -32,7 +32,6 @@
       const RealTimeUrlChecksAllowlistComponentInstallerPolicy&) = delete;
   RealTimeUrlChecksAllowlistComponentInstallerPolicy& operator=(
       const RealTimeUrlChecksAllowlistComponentInstallerPolicy&) = delete;
-  ~RealTimeUrlChecksAllowlistComponentInstallerPolicy() override = default;
 
  private:
   friend class RealTimeUrlChecksAllowlistComponentInstallerTest;
diff --git a/chrome/browser/component_updater/real_time_url_checks_allowlist_component_installer_unittest.cc b/chrome/browser/component_updater/real_time_url_checks_allowlist_component_installer_unittest.cc
index 26a4b37..f4fe941 100644
--- a/chrome/browser/component_updater/real_time_url_checks_allowlist_component_installer_unittest.cc
+++ b/chrome/browser/component_updater/real_time_url_checks_allowlist_component_installer_unittest.cc
@@ -28,7 +28,6 @@
 
   MOCK_METHOD1(PopulateFromDynamicUpdate, void(const std::string& binary_pb));
 
-  ~MockRealTimeUrlChecksAllowlist() override = default;
 };
 
 class RealTimeUrlChecksAllowlistComponentInstallerTest
diff --git a/chrome/browser/component_updater/recovery_improved_component_installer.h b/chrome/browser/component_updater/recovery_improved_component_installer.h
index 0727da4d..6016068 100644
--- a/chrome/browser/component_updater/recovery_improved_component_installer.h
+++ b/chrome/browser/component_updater/recovery_improved_component_installer.h
@@ -152,7 +152,6 @@
  public:
   explicit RecoveryImprovedInstallerPolicy(PrefService* prefs)
       : prefs_(prefs) {}
-  ~RecoveryImprovedInstallerPolicy() override = default;
   RecoveryImprovedInstallerPolicy(const RecoveryImprovedInstallerPolicy&) =
       delete;
   RecoveryImprovedInstallerPolicy& operator=(
diff --git a/chrome/browser/component_updater/soda_component_installer_unittest.cc b/chrome/browser/component_updater/soda_component_installer_unittest.cc
index 76cd976..97e977e42 100644
--- a/chrome/browser/component_updater/soda_component_installer_unittest.cc
+++ b/chrome/browser/component_updater/soda_component_installer_unittest.cc
@@ -29,8 +29,6 @@
       const SodaComponentMockComponentUpdateService&) = delete;
   SodaComponentMockComponentUpdateService& operator=(
       const SodaComponentMockComponentUpdateService&) = delete;
-
-  ~SodaComponentMockComponentUpdateService() override = default;
 };
 
 }  // namespace
diff --git a/chrome/browser/component_updater/ssl_error_assistant_component_installer.h b/chrome/browser/component_updater/ssl_error_assistant_component_installer.h
index b3f8b28..e0e8064 100644
--- a/chrome/browser/component_updater/ssl_error_assistant_component_installer.h
+++ b/chrome/browser/component_updater/ssl_error_assistant_component_installer.h
@@ -25,7 +25,6 @@
       const SSLErrorAssistantComponentInstallerPolicy&) = delete;
   SSLErrorAssistantComponentInstallerPolicy& operator=(
       const SSLErrorAssistantComponentInstallerPolicy&) = delete;
-  ~SSLErrorAssistantComponentInstallerPolicy() override = default;
 
  private:
   // ComponentInstallerPolicy methods:
diff --git a/chrome/browser/component_updater/subresource_filter_component_installer_unittest.cc b/chrome/browser/component_updater/subresource_filter_component_installer_unittest.cc
index 97fe399..8b9aff5 100644
--- a/chrome/browser/component_updater/subresource_filter_component_installer_unittest.cc
+++ b/chrome/browser/component_updater/subresource_filter_component_installer_unittest.cc
@@ -57,8 +57,6 @@
   TestRulesetService(const TestRulesetService&) = delete;
   TestRulesetService& operator=(const TestRulesetService&) = delete;
 
-  ~TestRulesetService() override = default;
-
   using UnindexedRulesetInfo = subresource_filter::UnindexedRulesetInfo;
   void IndexAndStoreAndPublishRulesetIfNeeded(
       const UnindexedRulesetInfo& unindexed_ruleset_info) override {
@@ -90,8 +88,6 @@
       const SubresourceFilterMockComponentUpdateService&) = delete;
   SubresourceFilterMockComponentUpdateService& operator=(
       const SubresourceFilterMockComponentUpdateService&) = delete;
-
-  ~SubresourceFilterMockComponentUpdateService() override = default;
 };
 
 subresource_filter::Configuration CreateConfigUsingRulesetFlavor(
diff --git a/chrome/browser/component_updater/tpcd_metadata_component_installer_unittest.cc b/chrome/browser/component_updater/tpcd_metadata_component_installer_unittest.cc
index 572b710..741f8ab 100644
--- a/chrome/browser/component_updater/tpcd_metadata_component_installer_unittest.cc
+++ b/chrome/browser/component_updater/tpcd_metadata_component_installer_unittest.cc
@@ -19,11 +19,7 @@
 }  // namespace
 
 class TpcdMetadataComponentInstallerTest : public ::testing::Test {
- public:
-  TpcdMetadataComponentInstallerTest() = default;
-
-  ~TpcdMetadataComponentInstallerTest() override = default;
-
+ protected:
   content::BrowserTaskEnvironment& task_env() { return task_env_; }
 
  private:
diff --git a/chrome/browser/component_updater/translate_kit_component_installer_unittest.cc b/chrome/browser/component_updater/translate_kit_component_installer_unittest.cc
index 9c01f0e..4a11f9b5 100644
--- a/chrome/browser/component_updater/translate_kit_component_installer_unittest.cc
+++ b/chrome/browser/component_updater/translate_kit_component_installer_unittest.cc
@@ -51,8 +51,6 @@
       const TranslateKitComponentMockComponentUpdateService&) = delete;
   TranslateKitComponentMockComponentUpdateService& operator=(
       const TranslateKitComponentMockComponentUpdateService&) = delete;
-
-  ~TranslateKitComponentMockComponentUpdateService() override = default;
 };
 
 class RegisterTranslateKitComponentTest : public ::testing::Test {
diff --git a/chrome/browser/component_updater/widevine_cdm_component_installer.cc b/chrome/browser/component_updater/widevine_cdm_component_installer.cc
index 91a45a8..3ac92be 100644
--- a/chrome/browser/component_updater/widevine_cdm_component_installer.cc
+++ b/chrome/browser/component_updater/widevine_cdm_component_installer.cc
@@ -252,8 +252,6 @@
   WidevineCdmComponentInstallerPolicy& operator=(
       const WidevineCdmComponentInstallerPolicy&) = delete;
 
-  ~WidevineCdmComponentInstallerPolicy() override = default;
-
  private:
   // The following methods override ComponentInstallerPolicy.
   bool SupportsGroupPolicyEnabledComponentUpdates() const override;
diff --git a/chrome/browser/data_sharing/android/java/src/org/chromium/chrome/browser/data_sharing/DataSharingNotificationManagerUnitTest.java b/chrome/browser/data_sharing/android/java/src/org/chromium/chrome/browser/data_sharing/DataSharingNotificationManagerUnitTest.java
index 1ed264b..d866a30 100644
--- a/chrome/browser/data_sharing/android/java/src/org/chromium/chrome/browser/data_sharing/DataSharingNotificationManagerUnitTest.java
+++ b/chrome/browser/data_sharing/android/java/src/org/chromium/chrome/browser/data_sharing/DataSharingNotificationManagerUnitTest.java
@@ -42,7 +42,7 @@
 import org.chromium.chrome.browser.notifications.NotificationUmaTracker;
 import org.chromium.chrome.browser.notifications.channels.ChromeChannelDefinitions;
 import org.chromium.chrome.browser.notifications.channels.ChromeChannelDefinitions.ChannelId;
-import org.chromium.components.browser_ui.notifications.AsyncNotificationManagerProxy;
+import org.chromium.components.browser_ui.notifications.BaseNotificationManagerProxy;
 import org.chromium.components.browser_ui.notifications.BaseNotificationManagerProxyFactory;
 import org.chromium.components.browser_ui.notifications.NotificationFeatureMap;
 import org.chromium.components.browser_ui.notifications.NotificationMetadata;
@@ -58,7 +58,7 @@
 
     @Rule public MockitoRule mMockitoRule = MockitoJUnit.rule();
 
-    @Mock private AsyncNotificationManagerProxy mNotificationManagerProxy;
+    @Mock private BaseNotificationManagerProxy mNotificationManagerProxy;
 
     @Captor ArgumentCaptor<NotificationWrapper> mNotifyCaptor;
     @Captor ArgumentCaptor<Intent> mIntentCaptor;
diff --git a/chrome/browser/dips/dips_bounce_detector_browsertest.cc b/chrome/browser/dips/dips_bounce_detector_browsertest.cc
index 8e7886a..c207ae0d 100644
--- a/chrome/browser/dips/dips_bounce_detector_browsertest.cc
+++ b/chrome/browser/dips/dips_bounce_detector_browsertest.cc
@@ -3707,24 +3707,19 @@
 }
 
 class DIPSPrivacySandboxDataPreservationTest
-    : public DIPSPrivacySandboxApiInteractionTest,
-      public testing::WithParamInterface<bool> {
+    : public DIPSPrivacySandboxApiInteractionTest {
  public:
   DIPSPrivacySandboxDataPreservationTest() {
     std::vector<base::test::FeatureRef> enabled_features;
     std::vector<base::test::FeatureRef> disabled_features;
 
     enabled_features.emplace_back(features::kPrivacySandboxAdsAPIsOverride);
-    (ShouldPreservePSData() ? enabled_features : disabled_features)
-        .emplace_back(features::kDIPSPreservePSData);
     scoped_feature_list_.Reset();
     scoped_feature_list_.InitWithFeatures(enabled_features, disabled_features);
   }
-
-  bool ShouldPreservePSData() const { return GetParam(); }
 };
 
-IN_PROC_BROWSER_TEST_P(DIPSPrivacySandboxDataPreservationTest,
+IN_PROC_BROWSER_TEST_F(DIPSPrivacySandboxDataPreservationTest,
                        DontClearAttributionReportingApiData) {
   WebContents* web_contents = GetActiveWebContents();
   // Enable Privacy Sandbox APIs in the current profile.
@@ -3773,19 +3768,11 @@
       ->GetDefaultStoragePartition()
       ->GetAttributionDataModel()
       ->GetAllDataKeys(post_deletion_data.GetCallback());
-  if (ShouldPreservePSData()) {
-    // Confirm the attribution data was not deleted.
-    EXPECT_THAT(GetOrigins(post_deletion_data.Get()),
-                ElementsAre(url::Origin::Create(attribution_url)));
-  } else {
-    // Confirm the attribution data was deleted.
-    EXPECT_THAT(post_deletion_data.Get(), IsEmpty());
-  }
-}
 
-INSTANTIATE_TEST_SUITE_P(All,
-                         DIPSPrivacySandboxDataPreservationTest,
-                         ::testing::Bool());
+  // Confirm the attribution data was not deleted.
+  EXPECT_THAT(GetOrigins(post_deletion_data.Get()),
+              ElementsAre(url::Origin::Create(attribution_url)));
+}
 
 namespace {
 
diff --git a/chrome/browser/dips/dips_service_impl.cc b/chrome/browser/dips/dips_service_impl.cc
index 665a52f..06fce97 100644
--- a/chrome/browser/dips/dips_service_impl.cc
+++ b/chrome/browser/dips/dips_service_impl.cc
@@ -190,9 +190,9 @@
     // StateClearer manages its own lifetime and deletes itself when finished.
     StateClearer* clearer =
         new StateClearer(remover, /*callback_count=*/2, std::move(callback));
-    if (base::FeatureList::IsEnabled(features::kDIPSPreservePSData)) {
-      remove_mask &= ~content::BrowsingDataRemover::DATA_TYPE_PRIVACY_SANDBOX;
-    }
+
+    // Don't delete Privacy Sandbox data - see crbug.com/41488981.
+    remove_mask &= ~content::BrowsingDataRemover::DATA_TYPE_PRIVACY_SANDBOX;
     remover->RemoveWithFilterAndReply(
         base::Time::Min(), base::Time::Max(),
         remove_mask |
diff --git a/chrome/browser/educational_tip/BUILD.gn b/chrome/browser/educational_tip/BUILD.gn
index 82f5356..52dcaac 100644
--- a/chrome/browser/educational_tip/BUILD.gn
+++ b/chrome/browser/educational_tip/BUILD.gn
@@ -11,7 +11,7 @@
     "java/src/org/chromium/chrome/browser/educational_tip/EducationTipModuleActionDelegate.java",
     "java/src/org/chromium/chrome/browser/educational_tip/EducationalTipCardProvider.java",
     "java/src/org/chromium/chrome/browser/educational_tip/EducationalTipCardProviderFactory.java",
-    "java/src/org/chromium/chrome/browser/educational_tip/EducationalTipCardProviderTriggerState.java",
+    "java/src/org/chromium/chrome/browser/educational_tip/EducationalTipCardProviderSignalHandler.java",
     "java/src/org/chromium/chrome/browser/educational_tip/EducationalTipModuleBuilder.java",
     "java/src/org/chromium/chrome/browser/educational_tip/EducationalTipModuleCoordinator.java",
     "java/src/org/chromium/chrome/browser/educational_tip/EducationalTipModuleMediator.java",
@@ -80,7 +80,7 @@
 
   sources = [
     "junit/src/org/chromium/chrome/browser/educational_tip/DefaultBrowserPromoCoordinatorUnitTest.java",
-    "junit/src/org/chromium/chrome/browser/educational_tip/EducationalTipCardProviderTriggerStateUnitTest.java",
+    "junit/src/org/chromium/chrome/browser/educational_tip/EducationalTipCardProviderSignalHandlerUnitTest.java",
     "junit/src/org/chromium/chrome/browser/educational_tip/EducationalTipModuleBuilderUnitTest.java",
     "junit/src/org/chromium/chrome/browser/educational_tip/EducationalTipModuleMediatorUnitTest.java",
     "junit/src/org/chromium/chrome/browser/educational_tip/EducationalTipModuleViewBinderUnitTest.java",
diff --git a/chrome/browser/educational_tip/java/src/org/chromium/chrome/browser/educational_tip/EducationalTipCardProviderSignalHandler.java b/chrome/browser/educational_tip/java/src/org/chromium/chrome/browser/educational_tip/EducationalTipCardProviderSignalHandler.java
new file mode 100644
index 0000000..1dd92955
--- /dev/null
+++ b/chrome/browser/educational_tip/java/src/org/chromium/chrome/browser/educational_tip/EducationalTipCardProviderSignalHandler.java
@@ -0,0 +1,138 @@
+// Copyright 2024 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.educational_tip;
+
+import androidx.annotation.VisibleForTesting;
+
+import org.chromium.base.ResettersForTesting;
+import org.chromium.chrome.browser.educational_tip.EducationalTipCardProvider.EducationalTipCardType;
+import org.chromium.chrome.browser.tabmodel.TabGroupModelFilter;
+import org.chromium.chrome.browser.tabmodel.TabGroupModelFilterProvider;
+import org.chromium.chrome.browser.tabmodel.TabModel;
+import org.chromium.chrome.browser.tabmodel.TabModelSelector;
+import org.chromium.chrome.browser.ui.default_browser_promo.DefaultBrowserPromoUtils;
+import org.chromium.components.feature_engagement.FeatureConstants;
+import org.chromium.components.feature_engagement.Tracker;
+import org.chromium.components.segmentation_platform.InputContext;
+import org.chromium.components.segmentation_platform.ProcessedValue;
+
+import java.util.HashSet;
+
+/**
+ * Provides information about the signals of cards in the educational tip module.
+ *
+ * <p>This class serves as a single educational tip module's cards signals' logic gateway.
+ */
+public class EducationalTipCardProviderSignalHandler {
+    /**
+     * A list includes all card types (excluding the default browser promo card) that have been
+     * displayed to the user during the current session.
+     */
+    private final HashSet<Integer> mVisibleCardList;
+
+    /** Static class that implements the initialization-on-demand holder idiom. */
+    private static class LazyHolder {
+        static EducationalTipCardProviderSignalHandler sInstance =
+                new EducationalTipCardProviderSignalHandler();
+    }
+
+    /** Returns the singleton instance of EducationalTipCardProviderSignalHandler. */
+    public static EducationalTipCardProviderSignalHandler getInstance() {
+        return EducationalTipCardProviderSignalHandler.LazyHolder.sInstance;
+    }
+
+    EducationalTipCardProviderSignalHandler() {
+        mVisibleCardList = new HashSet<>();
+    }
+
+    /** Creates an instance of InputContext. */
+    @VisibleForTesting
+    InputContext createInputContext(
+            EducationTipModuleActionDelegate actionDelegate, Tracker tracker) {
+        InputContext inputContext = new InputContext();
+        inputContext.addEntry(
+                "should_show_non_role_manager_default_browser_promo",
+                ProcessedValue.fromFloat(
+                        shouldShowNonRoleManagerDefaultBrowserPromo(actionDelegate)));
+        inputContext.addEntry(
+                "has_default_browser_promo_shown_in_other_surface",
+                ProcessedValue.fromFloat(hasDefaultBrowserPromoShownInOtherSurface(tracker)));
+        inputContext.addEntry(
+                "tab_group_exists", ProcessedValue.fromFloat(tabGroupExists(actionDelegate)));
+        inputContext.addEntry(
+                "number_of_tabs", ProcessedValue.fromFloat(getCurrentTabCount(actionDelegate)));
+        return inputContext;
+    }
+
+    /**
+     * @see DefaultBrowserPromoUtils#shouldShowNonRoleManagerPromo(Context), returns a value of 1.0f
+     *     to indicate that a default browser promo, other than the Role Manager Promo, should be
+     *     displayed. If not, it returns 0.0f.
+     */
+    private float shouldShowNonRoleManagerDefaultBrowserPromo(
+            EducationTipModuleActionDelegate actionDelegate) {
+        return DefaultBrowserPromoUtils.getInstance()
+                        .shouldShowNonRoleManagerPromo(actionDelegate.getContext())
+                ? 1.0f
+                : 0.0f;
+    }
+
+    /**
+     * Returns a value of 1.0f to signify that the default browser promotion has been displayed
+     * within the past 7 days on a platform other than the current one, such as through settings,
+     * messages, or alternative NTPs. If the promotion has not been shown within this timeframe, the
+     * function returns 0.0f.
+     */
+    private float hasDefaultBrowserPromoShownInOtherSurface(Tracker tracker) {
+        return tracker.wouldTriggerHelpUi(FeatureConstants.DEFAULT_BROWSER_PROMO_MAGIC_STACK)
+                ? 0.0f
+                : 1.0f;
+    }
+
+    /**
+     * Returns a value of 1.0f if a tab group exists within either the normal or incognito TabModel.
+     * Otherwise, it returns 0.0f.
+     */
+    private float tabGroupExists(EducationTipModuleActionDelegate actionDelegate) {
+        TabGroupModelFilterProvider provider =
+                actionDelegate.getTabModelSelector().getTabGroupModelFilterProvider();
+        TabGroupModelFilter normalFilter =
+                provider.getTabGroupModelFilter(/* isIncognito= */ false);
+        TabGroupModelFilter incognitoFilter =
+                provider.getTabGroupModelFilter(/* isIncognito= */ true);
+        int groupCount = normalFilter.getTabGroupCount() + incognitoFilter.getTabGroupCount();
+        return groupCount > 0 ? 1.0f : 0.0f;
+    }
+
+    /** Returns the total number of tabs across both regular and incognito browsing modes. */
+    private float getCurrentTabCount(EducationTipModuleActionDelegate actionDelegate) {
+        TabModelSelector tabModelSelector = actionDelegate.getTabModelSelector();
+        TabModel normalModel = tabModelSelector.getModel(/* incognito= */ false);
+        TabModel incognitoModel = tabModelSelector.getModel(/* incognito= */ true);
+        return normalModel.getCount() + incognitoModel.getCount();
+    }
+
+    /**
+     * Returns true if this is the first time the card is displayed to the user in the current
+     * session and the event should be recorded.
+     */
+    boolean shouldNotifyCardShownPerSession(@EducationalTipCardType int cardType) {
+        // Ensure that the default browser promo card does not trigger this function.
+        assert cardType < EducationalTipCardType.NUM_ENTRIES && cardType > 0;
+
+        if (mVisibleCardList.contains(cardType)) {
+            return false;
+        }
+
+        return mVisibleCardList.add(cardType);
+    }
+
+    static void setInstanceForTesting(EducationalTipCardProviderSignalHandler testInstance) {
+        var oldInstance = EducationalTipCardProviderSignalHandler.LazyHolder.sInstance;
+        EducationalTipCardProviderSignalHandler.LazyHolder.sInstance = testInstance;
+        ResettersForTesting.register(
+                () -> EducationalTipCardProviderSignalHandler.LazyHolder.sInstance = oldInstance);
+    }
+}
diff --git a/chrome/browser/educational_tip/java/src/org/chromium/chrome/browser/educational_tip/EducationalTipCardProviderTriggerState.java b/chrome/browser/educational_tip/java/src/org/chromium/chrome/browser/educational_tip/EducationalTipCardProviderTriggerState.java
deleted file mode 100644
index 2328ddb..0000000
--- a/chrome/browser/educational_tip/java/src/org/chromium/chrome/browser/educational_tip/EducationalTipCardProviderTriggerState.java
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright 2024 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.chrome.browser.educational_tip;
-
-import androidx.annotation.NonNull;
-
-import org.chromium.chrome.browser.educational_tip.EducationalTipCardProvider.EducationalTipCardType;
-
-import java.util.HashSet;
-
-/**
- * Provides information about the trigger states of cards in the educational tip module.
- *
- * <p>This class serves as a single educational tip module's cards trigger logic gateway.
- */
-public class EducationalTipCardProviderTriggerState {
-    /**
-     * A list includes all card types (excluding the default browser promo card) that have been
-     * displayed to the user during the current session.
-     */
-    private final HashSet<Integer> mVisibleCardList;
-
-    /** Static class that implements the initialization-on-demand holder idiom. */
-    private static class LazyHolder {
-        static EducationalTipCardProviderTriggerState sInstance =
-                new EducationalTipCardProviderTriggerState();
-    }
-
-    /** Returns the singleton instance of EducationalTipCardProviderTriggerState. */
-    public static EducationalTipCardProviderTriggerState getInstance() {
-        return EducationalTipCardProviderTriggerState.LazyHolder.sInstance;
-    }
-
-    EducationalTipCardProviderTriggerState() {
-        mVisibleCardList = new HashSet<>();
-    }
-
-    boolean shouldNotifyCardShownPerSession(@NonNull @EducationalTipCardType Integer cardType) {
-        // Ensure that the default browser promo card does not trigger this function.
-        assert cardType < EducationalTipCardType.NUM_ENTRIES && cardType > 0;
-
-        if (mVisibleCardList.contains(cardType)) {
-            return false;
-        }
-
-        return mVisibleCardList.add(cardType);
-    }
-}
diff --git a/chrome/browser/educational_tip/java/src/org/chromium/chrome/browser/educational_tip/EducationalTipModuleMediator.java b/chrome/browser/educational_tip/java/src/org/chromium/chrome/browser/educational_tip/EducationalTipModuleMediator.java
index 0310f6e..5c7199eb 100644
--- a/chrome/browser/educational_tip/java/src/org/chromium/chrome/browser/educational_tip/EducationalTipModuleMediator.java
+++ b/chrome/browser/educational_tip/java/src/org/chromium/chrome/browser/educational_tip/EducationalTipModuleMediator.java
@@ -4,6 +4,10 @@
 
 package org.chromium.chrome.browser.educational_tip;
 
+import static org.chromium.chrome.browser.magic_stack.HomeModulesMetricsUtils.HISTOGRAM_MAGIC_STACK_MODULE;
+import static org.chromium.chrome.browser.magic_stack.HomeModulesMetricsUtils.HISTOGRAM_MAGIC_STACK_MODULE_IMPRESSION_WITH_POSITION;
+import static org.chromium.chrome.browser.magic_stack.HomeModulesMetricsUtils.HISTOGRAM_PREFIX;
+
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
@@ -12,26 +16,22 @@
 import org.jni_zero.NativeMethods;
 
 import org.chromium.base.CallbackController;
+import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.base.supplier.ObservableSupplier;
 import org.chromium.chrome.browser.educational_tip.EducationalTipCardProvider.EducationalTipCardType;
 import org.chromium.chrome.browser.feature_engagement.TrackerFactory;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
+import org.chromium.chrome.browser.magic_stack.HomeModulesMetricsUtils;
 import org.chromium.chrome.browser.magic_stack.ModuleDelegate;
 import org.chromium.chrome.browser.magic_stack.ModuleDelegate.ModuleType;
 import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.segmentation_platform.SegmentationPlatformServiceFactory;
-import org.chromium.chrome.browser.tabmodel.TabGroupModelFilter;
-import org.chromium.chrome.browser.tabmodel.TabGroupModelFilterProvider;
-import org.chromium.chrome.browser.tabmodel.TabModel;
-import org.chromium.chrome.browser.tabmodel.TabModelSelector;
 import org.chromium.chrome.browser.ui.default_browser_promo.DefaultBrowserPromoUtils;
 import org.chromium.chrome.browser.ui.default_browser_promo.DefaultBrowserPromoUtils.DefaultBrowserPromoTriggerStateListener;
 import org.chromium.components.feature_engagement.FeatureConstants;
 import org.chromium.components.feature_engagement.Tracker;
 import org.chromium.components.segmentation_platform.ClassificationResult;
-import org.chromium.components.segmentation_platform.InputContext;
 import org.chromium.components.segmentation_platform.PredictionOptions;
-import org.chromium.components.segmentation_platform.ProcessedValue;
 import org.chromium.components.segmentation_platform.SegmentationPlatformService;
 import org.chromium.components.segmentation_platform.prediction_status.PredictionStatus;
 import org.chromium.ui.modelutil.PropertyModel;
@@ -45,7 +45,6 @@
 
     private final EducationTipModuleActionDelegate mActionDelegate;
     private final Profile mProfile;
-    private final TabModelSelector mTabModelSelector;
     private final @ModuleType int mModuleType;
     private final PropertyModel mModel;
     private final ModuleDelegate mModuleDelegate;
@@ -64,7 +63,6 @@
         mModuleDelegate = moduleDelegate;
         mActionDelegate = actionDelegate;
         mProfile = getRegularProfile(mActionDelegate.getProfileSupplier());
-        mTabModelSelector = mActionDelegate.getTabModelSelector();
         mTracker = TrackerFactory.getTrackerForProfile(mProfile);
         mDefaultBrowserPromoTriggerStateListener = this::removeModule;
 
@@ -90,6 +88,16 @@
     void onViewCreated() {
         @EducationalTipCardType int cardType = mEducationalTipCardProvider.getCardType();
 
+        // TODO(crbug.com/382803396): The sample here is a temporary workaround and will need to be
+        // fully replaced with the module type after the refactor.
+        RecordHistogram.recordEnumeratedHistogram(
+                HISTOGRAM_PREFIX
+                        + HISTOGRAM_MAGIC_STACK_MODULE
+                        + HomeModulesMetricsUtils.getModuleName(mModuleType)
+                        + HISTOGRAM_MAGIC_STACK_MODULE_IMPRESSION_WITH_POSITION,
+                cardType + ModuleType.NUM_ENTRIES,
+                EducationalTipCardType.NUM_ENTRIES + ModuleType.NUM_ENTRIES);
+
         if (cardType == EducationalTipCardType.DEFAULT_BROWSER_PROMO) {
             EducationalTipModuleMediatorJni.get().notifyCardShown(mProfile, cardType);
 
@@ -111,9 +119,9 @@
             return;
         }
 
-        EducationalTipCardProviderTriggerState educationalTipCardProviderTriggerState =
-                EducationalTipCardProviderTriggerState.getInstance();
-        if (educationalTipCardProviderTriggerState.shouldNotifyCardShownPerSession(cardType)) {
+        EducationalTipCardProviderSignalHandler educationalTipCardProviderSignalHandler =
+                EducationalTipCardProviderSignalHandler.getInstance();
+        if (educationalTipCardProviderSignalHandler.shouldNotifyCardShownPerSession(cardType)) {
             EducationalTipModuleMediatorJni.get().notifyCardShown(mProfile, cardType);
         }
     }
@@ -177,27 +185,13 @@
         segmentationPlatformService.getClassificationResult(
                 "ephemeral_home_module_backend",
                 /* prediction_options= */ createPredictionOptions(),
-                /* inputContext= */ createInputContext(),
+                /* inputContext= */ EducationalTipCardProviderSignalHandler.getInstance()
+                        .createInputContext(mActionDelegate, mTracker),
                 result -> {
                     showModuleWithCardInfo(onGetClassificationResult(result));
                 });
     }
 
-    /** Creates an instance of InputContext. */
-    @VisibleForTesting
-    InputContext createInputContext() {
-        InputContext inputContext = new InputContext();
-        inputContext.addEntry(
-                "should_show_non_role_manager_default_browser_promo",
-                ProcessedValue.fromFloat(shouldShowNonRoleManagerDefaultBrowserPromo()));
-        inputContext.addEntry(
-                "has_default_browser_promo_shown_in_other_surface",
-                ProcessedValue.fromFloat(hasDefaultBrowserPromoShownInOtherSurface()));
-        inputContext.addEntry("tab_group_exists", ProcessedValue.fromFloat(tabGroupExists()));
-        inputContext.addEntry("number_of_tabs", ProcessedValue.fromFloat(getCurrentTabCount()));
-        return inputContext;
-    }
-
     /** Creates an instance of PredictionOptions. */
     @VisibleForTesting
     PredictionOptions createPredictionOptions() {
@@ -217,51 +211,6 @@
         }
     }
 
-    /**
-     * @see DefaultBrowserPromoUtils#shouldShowNonRoleManagerPromo(Context), returns a value of 1.0f
-     *     to indicate that a default browser promo, other than the Role Manager Promo, should be
-     *     displayed. If not, it returns 0.0f.
-     */
-    private float shouldShowNonRoleManagerDefaultBrowserPromo() {
-        return DefaultBrowserPromoUtils.getInstance()
-                        .shouldShowNonRoleManagerPromo(mActionDelegate.getContext())
-                ? 1.0f
-                : 0.0f;
-    }
-
-    /**
-     * Returns a value of 1.0f to signify that the default browser promotion has been displayed
-     * within the past 7 days on a platform other than the current one, such as through settings,
-     * messages, or alternative NTPs. If the promotion has not been shown within this timeframe, the
-     * function returns 0.0f.
-     */
-    private float hasDefaultBrowserPromoShownInOtherSurface() {
-        return mTracker.wouldTriggerHelpUi(FeatureConstants.DEFAULT_BROWSER_PROMO_MAGIC_STACK)
-                ? 0.0f
-                : 1.0f;
-    }
-
-    /**
-     * Returns a value of 1.0f if a tab group exists within either the normal or incognito TabModel.
-     * Otherwise, it returns 0.0f.
-     */
-    private float tabGroupExists() {
-        TabGroupModelFilterProvider provider = mTabModelSelector.getTabGroupModelFilterProvider();
-        TabGroupModelFilter normalFilter =
-                provider.getTabGroupModelFilter(/* isIncognito= */ false);
-        TabGroupModelFilter incognitoFilter =
-                provider.getTabGroupModelFilter(/* isIncognito= */ true);
-        int groupCount = normalFilter.getTabGroupCount() + incognitoFilter.getTabGroupCount();
-        return groupCount > 0 ? 1.0f : 0.0f;
-    }
-
-    /** Returns the total number of tabs across both regular and incognito browsing modes. */
-    private float getCurrentTabCount() {
-        TabModel normalModel = mTabModelSelector.getModel(/* incognito= */ false);
-        TabModel incognitoModel = mTabModelSelector.getModel(/* incognito= */ true);
-        return normalModel.getCount() + incognitoModel.getCount();
-    }
-
     @ModuleType
     int getModuleType() {
         return mModuleType;
diff --git a/chrome/browser/educational_tip/junit/src/org/chromium/chrome/browser/educational_tip/EducationalTipCardProviderSignalHandlerUnitTest.java b/chrome/browser/educational_tip/junit/src/org/chromium/chrome/browser/educational_tip/EducationalTipCardProviderSignalHandlerUnitTest.java
new file mode 100644
index 0000000..cd2bb63
--- /dev/null
+++ b/chrome/browser/educational_tip/junit/src/org/chromium/chrome/browser/educational_tip/EducationalTipCardProviderSignalHandlerUnitTest.java
@@ -0,0 +1,195 @@
+// Copyright 2024 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.educational_tip;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.filters.SmallTest;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+import org.robolectric.annotation.Config;
+
+import org.chromium.base.test.BaseRobolectricTestRunner;
+import org.chromium.base.test.util.Features.EnableFeatures;
+import org.chromium.chrome.browser.educational_tip.EducationalTipCardProvider.EducationalTipCardType;
+import org.chromium.chrome.browser.feature_engagement.TrackerFactory;
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
+import org.chromium.chrome.browser.tabmodel.TabGroupModelFilter;
+import org.chromium.chrome.browser.tabmodel.TabGroupModelFilterProvider;
+import org.chromium.chrome.browser.tabmodel.TabModel;
+import org.chromium.chrome.browser.tabmodel.TabModelSelector;
+import org.chromium.chrome.browser.ui.default_browser_promo.DefaultBrowserPromoUtils;
+import org.chromium.components.feature_engagement.FeatureConstants;
+import org.chromium.components.feature_engagement.Tracker;
+import org.chromium.components.segmentation_platform.InputContext;
+
+/** Unit tests for {@link EducationalTipCardProviderSignalHandler}. */
+@RunWith(BaseRobolectricTestRunner.class)
+@Config(manifest = Config.NONE)
+public class EducationalTipCardProviderSignalHandlerUnitTest {
+    @Rule public MockitoRule mMockitoRule = MockitoJUnit.rule();
+
+    @Mock private EducationTipModuleActionDelegate mActionDelegate;
+    @Mock private DefaultBrowserPromoUtils mMockDefaultBrowserPromoUtils;
+    @Mock private Tracker mTracker;
+    @Mock private TabModelSelector mTabModelSelector;
+    @Mock private TabGroupModelFilter mNormalFilter;
+    @Mock private TabGroupModelFilter mIncognitoFilter;
+    @Mock private TabModel mNormalModel;
+    @Mock private TabModel mIncognitoModel;
+    @Mock private TabGroupModelFilterProvider mProvider;
+
+    private EducationalTipCardProviderSignalHandler mEducationalTipCardProviderSignalHandler;
+    private Context mContext;
+
+    @Before
+    public void setUp() {
+        mContext = ApplicationProvider.getApplicationContext();
+        mEducationalTipCardProviderSignalHandler = new EducationalTipCardProviderSignalHandler();
+        when(mActionDelegate.getContext()).thenReturn(mContext);
+        when(mActionDelegate.getTabModelSelector()).thenReturn(mTabModelSelector);
+        when(mTabModelSelector.getTabGroupModelFilterProvider()).thenReturn(mProvider);
+        when(mProvider.getTabGroupModelFilter(/* isIncognito= */ false)).thenReturn(mNormalFilter);
+        when(mProvider.getTabGroupModelFilter(/* isIncognito= */ true))
+                .thenReturn(mIncognitoFilter);
+        when(mTabModelSelector.getModel(/* incognito= */ false)).thenReturn(mNormalModel);
+        when(mTabModelSelector.getModel(/* incognito= */ true)).thenReturn(mIncognitoModel);
+        DefaultBrowserPromoUtils.setInstanceForTesting(mMockDefaultBrowserPromoUtils);
+        TrackerFactory.setTrackerForTests(mTracker);
+    }
+
+    @Test
+    @SmallTest
+    @EnableFeatures({ChromeFeatureList.EDUCATIONAL_TIP_MODULE})
+    public void testCreateInputContext() {
+        assertTrue(ChromeFeatureList.sEducationalTipModule.isEnabled());
+
+        InputContext inputContext =
+                mEducationalTipCardProviderSignalHandler.createInputContext(
+                        mActionDelegate, mTracker);
+        assertEquals(4, inputContext.getSizeForTesting());
+
+        // Test signal "should_show_non_role_manager_default_browser_promo".
+        when(mMockDefaultBrowserPromoUtils.shouldShowNonRoleManagerPromo(mContext))
+                .thenReturn(true);
+        inputContext =
+                mEducationalTipCardProviderSignalHandler.createInputContext(
+                        mActionDelegate, mTracker);
+        assertEquals(
+                1,
+                inputContext.getEntryForTesting(
+                                "should_show_non_role_manager_default_browser_promo")
+                        .floatValue,
+                0.01);
+
+        when(mMockDefaultBrowserPromoUtils.shouldShowNonRoleManagerPromo(mContext))
+                .thenReturn(false);
+        inputContext =
+                mEducationalTipCardProviderSignalHandler.createInputContext(
+                        mActionDelegate, mTracker);
+        assertEquals(
+                0,
+                inputContext.getEntryForTesting(
+                                "should_show_non_role_manager_default_browser_promo")
+                        .floatValue,
+                0.01);
+
+        // Test signal "has_default_browser_promo_shown_in_other_surface".
+        when(mTracker.wouldTriggerHelpUi(FeatureConstants.DEFAULT_BROWSER_PROMO_MAGIC_STACK))
+                .thenReturn(true);
+        inputContext =
+                mEducationalTipCardProviderSignalHandler.createInputContext(
+                        mActionDelegate, mTracker);
+        assertEquals(
+                0,
+                inputContext.getEntryForTesting("has_default_browser_promo_shown_in_other_surface")
+                        .floatValue,
+                0.01);
+
+        when(mTracker.wouldTriggerHelpUi(FeatureConstants.DEFAULT_BROWSER_PROMO_MAGIC_STACK))
+                .thenReturn(false);
+        inputContext =
+                mEducationalTipCardProviderSignalHandler.createInputContext(
+                        mActionDelegate, mTracker);
+        assertEquals(
+                1,
+                inputContext.getEntryForTesting("has_default_browser_promo_shown_in_other_surface")
+                        .floatValue,
+                0.01);
+
+        // Test signal "tab_group_exists".
+        when(mNormalFilter.getTabGroupCount()).thenReturn(0);
+        when(mIncognitoFilter.getTabGroupCount()).thenReturn(0);
+        inputContext =
+                mEducationalTipCardProviderSignalHandler.createInputContext(
+                        mActionDelegate, mTracker);
+        assertEquals(0, inputContext.getEntryForTesting("tab_group_exists").floatValue, 0.01);
+
+        when(mNormalFilter.getTabGroupCount()).thenReturn(5);
+        when(mIncognitoFilter.getTabGroupCount()).thenReturn(6);
+        inputContext =
+                mEducationalTipCardProviderSignalHandler.createInputContext(
+                        mActionDelegate, mTracker);
+        assertEquals(1, inputContext.getEntryForTesting("tab_group_exists").floatValue, 0.01);
+
+        // Test signal "number_of_tabs".
+        when(mNormalModel.getCount()).thenReturn(0);
+        when(mIncognitoModel.getCount()).thenReturn(0);
+        inputContext =
+                mEducationalTipCardProviderSignalHandler.createInputContext(
+                        mActionDelegate, mTracker);
+        assertEquals(0, inputContext.getEntryForTesting("number_of_tabs").floatValue, 0.01);
+
+        when(mNormalModel.getCount()).thenReturn(5);
+        when(mIncognitoModel.getCount()).thenReturn(0);
+        inputContext =
+                mEducationalTipCardProviderSignalHandler.createInputContext(
+                        mActionDelegate, mTracker);
+        assertEquals(5, inputContext.getEntryForTesting("number_of_tabs").floatValue, 0.01);
+
+        when(mNormalModel.getCount()).thenReturn(0);
+        when(mIncognitoModel.getCount()).thenReturn(10);
+        inputContext =
+                mEducationalTipCardProviderSignalHandler.createInputContext(
+                        mActionDelegate, mTracker);
+        assertEquals(10, inputContext.getEntryForTesting("number_of_tabs").floatValue, 0.01);
+
+        when(mNormalModel.getCount()).thenReturn(10);
+        when(mIncognitoModel.getCount()).thenReturn(10);
+        inputContext =
+                mEducationalTipCardProviderSignalHandler.createInputContext(
+                        mActionDelegate, mTracker);
+        assertEquals(20, inputContext.getEntryForTesting("number_of_tabs").floatValue, 0.01);
+    }
+
+    @Test
+    @SmallTest
+    public void testShouldNotifyCardShownPerSession() {
+        for (int cardType = 1; cardType < EducationalTipCardType.NUM_ENTRIES; cardType++) {
+            assertTrue(
+                    mEducationalTipCardProviderSignalHandler.shouldNotifyCardShownPerSession(
+                            cardType));
+
+            assertFalse(
+                    mEducationalTipCardProviderSignalHandler.shouldNotifyCardShownPerSession(
+                            cardType));
+            assertFalse(
+                    mEducationalTipCardProviderSignalHandler.shouldNotifyCardShownPerSession(
+                            cardType));
+        }
+    }
+}
diff --git a/chrome/browser/educational_tip/junit/src/org/chromium/chrome/browser/educational_tip/EducationalTipCardProviderTriggerStateUnitTest.java b/chrome/browser/educational_tip/junit/src/org/chromium/chrome/browser/educational_tip/EducationalTipCardProviderTriggerStateUnitTest.java
deleted file mode 100644
index 3bff341e..0000000
--- a/chrome/browser/educational_tip/junit/src/org/chromium/chrome/browser/educational_tip/EducationalTipCardProviderTriggerStateUnitTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright 2024 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.chrome.browser.educational_tip;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-import androidx.test.filters.SmallTest;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.annotation.Config;
-
-import org.chromium.base.test.BaseRobolectricTestRunner;
-import org.chromium.chrome.browser.educational_tip.EducationalTipCardProvider.EducationalTipCardType;
-
-/** Unit tests for {@link EducationalTipCardProviderTriggerState}. */
-@RunWith(BaseRobolectricTestRunner.class)
-@Config(manifest = Config.NONE)
-public class EducationalTipCardProviderTriggerStateUnitTest {
-    private EducationalTipCardProviderTriggerState mEducationalTipCardProviderTriggerState;
-
-    @Before
-    public void setUp() {
-        mEducationalTipCardProviderTriggerState = new EducationalTipCardProviderTriggerState();
-    }
-
-    @Test
-    @SmallTest
-    public void testShouldNotifyCardShownPerSession() {
-        assertTrue(
-                mEducationalTipCardProviderTriggerState.shouldNotifyCardShownPerSession(
-                        EducationalTipCardType.TAB_GROUP));
-        assertFalse(
-                mEducationalTipCardProviderTriggerState.shouldNotifyCardShownPerSession(
-                        EducationalTipCardType.TAB_GROUP));
-
-        assertTrue(
-                mEducationalTipCardProviderTriggerState.shouldNotifyCardShownPerSession(
-                        EducationalTipCardType.TAB_GROUP_SYNC));
-        assertFalse(
-                mEducationalTipCardProviderTriggerState.shouldNotifyCardShownPerSession(
-                        EducationalTipCardType.TAB_GROUP_SYNC));
-
-        assertTrue(
-                mEducationalTipCardProviderTriggerState.shouldNotifyCardShownPerSession(
-                        EducationalTipCardType.QUICK_DELETE));
-        assertFalse(
-                mEducationalTipCardProviderTriggerState.shouldNotifyCardShownPerSession(
-                        EducationalTipCardType.QUICK_DELETE));
-    }
-}
diff --git a/chrome/browser/educational_tip/junit/src/org/chromium/chrome/browser/educational_tip/EducationalTipModuleMediatorUnitTest.java b/chrome/browser/educational_tip/junit/src/org/chromium/chrome/browser/educational_tip/EducationalTipModuleMediatorUnitTest.java
index e7c7d338..826ac91 100644
--- a/chrome/browser/educational_tip/junit/src/org/chromium/chrome/browser/educational_tip/EducationalTipModuleMediatorUnitTest.java
+++ b/chrome/browser/educational_tip/junit/src/org/chromium/chrome/browser/educational_tip/EducationalTipModuleMediatorUnitTest.java
@@ -37,22 +37,18 @@
 import org.chromium.base.supplier.ObservableSupplier;
 import org.chromium.base.test.BaseRobolectricTestRunner;
 import org.chromium.base.test.util.Features.EnableFeatures;
+import org.chromium.base.test.util.HistogramWatcher;
 import org.chromium.chrome.browser.educational_tip.EducationalTipCardProvider.EducationalTipCardType;
 import org.chromium.chrome.browser.feature_engagement.TrackerFactory;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.chrome.browser.magic_stack.ModuleDelegate;
 import org.chromium.chrome.browser.magic_stack.ModuleDelegate.ModuleType;
 import org.chromium.chrome.browser.profiles.Profile;
-import org.chromium.chrome.browser.tabmodel.TabGroupModelFilter;
-import org.chromium.chrome.browser.tabmodel.TabGroupModelFilterProvider;
-import org.chromium.chrome.browser.tabmodel.TabModel;
-import org.chromium.chrome.browser.tabmodel.TabModelSelector;
 import org.chromium.chrome.browser.ui.default_browser_promo.DefaultBrowserPromoUtils;
 import org.chromium.chrome.browser.ui.default_browser_promo.DefaultBrowserPromoUtils.DefaultBrowserPromoTriggerStateListener;
 import org.chromium.components.feature_engagement.FeatureConstants;
 import org.chromium.components.feature_engagement.Tracker;
 import org.chromium.components.segmentation_platform.ClassificationResult;
-import org.chromium.components.segmentation_platform.InputContext;
 import org.chromium.components.segmentation_platform.PredictionOptions;
 import org.chromium.components.segmentation_platform.prediction_status.PredictionStatus;
 import org.chromium.ui.modelutil.PropertyModel;
@@ -74,12 +70,9 @@
     @Mock EducationalTipModuleMediator.Natives mEducationalTipModuleMediatorJniMock;
     @Mock private Tracker mTracker;
     @Mock private DefaultBrowserPromoUtils mMockDefaultBrowserPromoUtils;
-    @Mock private TabModelSelector mTabModelSelector;
-    @Mock private TabGroupModelFilterProvider mProvider;
-    @Mock private TabGroupModelFilter mNormalFilter;
-    @Mock private TabGroupModelFilter mIncognitoFilter;
-    @Mock private TabModel mNormalModel;
-    @Mock private TabModel mIncognitoModel;
+
+    @Mock
+    private EducationalTipCardProviderSignalHandler mMockEducationalTipCardProviderSignalHandler;
 
     @Captor
     private ArgumentCaptor<DefaultBrowserPromoTriggerStateListener>
@@ -96,20 +89,15 @@
         mContext = ApplicationProvider.getApplicationContext();
         when(mActionDelegate.getContext()).thenReturn(mContext);
         when(mActionDelegate.getProfileSupplier()).thenReturn(mProfileSupplier);
-        when(mActionDelegate.getTabModelSelector()).thenReturn(mTabModelSelector);
         when(mProfileSupplier.hasValue()).thenReturn(true);
         when(mProfileSupplier.get()).thenReturn(mProfile);
         when(mProfile.getOriginalProfile()).thenReturn(mProfile);
-        when(mTabModelSelector.getTabGroupModelFilterProvider()).thenReturn(mProvider);
-        when(mProvider.getTabGroupModelFilter(/* isIncognito= */ false)).thenReturn(mNormalFilter);
-        when(mProvider.getTabGroupModelFilter(/* isIncognito= */ true))
-                .thenReturn(mIncognitoFilter);
-        when(mTabModelSelector.getModel(/* incognito= */ false)).thenReturn(mNormalModel);
-        when(mTabModelSelector.getModel(/* incognito= */ true)).thenReturn(mIncognitoModel);
         EducationalTipModuleMediatorJni.setInstanceForTesting(mEducationalTipModuleMediatorJniMock);
         mExpectedModuleType = ModuleType.EDUCATIONAL_TIP;
         TrackerFactory.setTrackerForTests(mTracker);
         DefaultBrowserPromoUtils.setInstanceForTesting(mMockDefaultBrowserPromoUtils);
+        EducationalTipCardProviderSignalHandler.setInstanceForTesting(
+                mMockEducationalTipCardProviderSignalHandler);
 
         mEducationalTipModuleMediator =
                 new EducationalTipModuleMediator(mModel, mModuleDelegate, mActionDelegate);
@@ -157,88 +145,6 @@
     @Test
     @SmallTest
     @EnableFeatures({ChromeFeatureList.EDUCATIONAL_TIP_MODULE})
-    public void testCreateInputContext() {
-        assertTrue(ChromeFeatureList.sEducationalTipModule.isEnabled());
-
-        InputContext inputContext = mEducationalTipModuleMediator.createInputContext();
-        assertEquals(4, inputContext.getSizeForTesting());
-
-        // Test signal "should_show_non_role_manager_default_browser_promo".
-        when(mMockDefaultBrowserPromoUtils.shouldShowNonRoleManagerPromo(mContext))
-                .thenReturn(true);
-        inputContext = mEducationalTipModuleMediator.createInputContext();
-        assertEquals(
-                1,
-                inputContext.getEntryForTesting(
-                                "should_show_non_role_manager_default_browser_promo")
-                        .floatValue,
-                0.01);
-
-        when(mMockDefaultBrowserPromoUtils.shouldShowNonRoleManagerPromo(mContext))
-                .thenReturn(false);
-        inputContext = mEducationalTipModuleMediator.createInputContext();
-        assertEquals(
-                0,
-                inputContext.getEntryForTesting(
-                                "should_show_non_role_manager_default_browser_promo")
-                        .floatValue,
-                0.01);
-
-        // Test signal "has_default_browser_promo_shown_in_other_surface".
-        when(mTracker.wouldTriggerHelpUi(FeatureConstants.DEFAULT_BROWSER_PROMO_MAGIC_STACK))
-                .thenReturn(true);
-        inputContext = mEducationalTipModuleMediator.createInputContext();
-        assertEquals(
-                0,
-                inputContext.getEntryForTesting("has_default_browser_promo_shown_in_other_surface")
-                        .floatValue,
-                0.01);
-
-        when(mTracker.wouldTriggerHelpUi(FeatureConstants.DEFAULT_BROWSER_PROMO_MAGIC_STACK))
-                .thenReturn(false);
-        inputContext = mEducationalTipModuleMediator.createInputContext();
-        assertEquals(
-                1,
-                inputContext.getEntryForTesting("has_default_browser_promo_shown_in_other_surface")
-                        .floatValue,
-                0.01);
-
-        // Test signal "tab_group_exists".
-        when(mNormalFilter.getTabGroupCount()).thenReturn(0);
-        when(mIncognitoFilter.getTabGroupCount()).thenReturn(0);
-        inputContext = mEducationalTipModuleMediator.createInputContext();
-        assertEquals(0, inputContext.getEntryForTesting("tab_group_exists").floatValue, 0.01);
-
-        when(mNormalFilter.getTabGroupCount()).thenReturn(5);
-        when(mIncognitoFilter.getTabGroupCount()).thenReturn(6);
-        inputContext = mEducationalTipModuleMediator.createInputContext();
-        assertEquals(1, inputContext.getEntryForTesting("tab_group_exists").floatValue, 0.01);
-
-        // Test signal "number_of_tabs".
-        when(mNormalModel.getCount()).thenReturn(0);
-        when(mIncognitoModel.getCount()).thenReturn(0);
-        inputContext = mEducationalTipModuleMediator.createInputContext();
-        assertEquals(0, inputContext.getEntryForTesting("number_of_tabs").floatValue, 0.01);
-
-        when(mNormalModel.getCount()).thenReturn(5);
-        when(mIncognitoModel.getCount()).thenReturn(0);
-        inputContext = mEducationalTipModuleMediator.createInputContext();
-        assertEquals(5, inputContext.getEntryForTesting("number_of_tabs").floatValue, 0.01);
-
-        when(mNormalModel.getCount()).thenReturn(0);
-        when(mIncognitoModel.getCount()).thenReturn(10);
-        inputContext = mEducationalTipModuleMediator.createInputContext();
-        assertEquals(10, inputContext.getEntryForTesting("number_of_tabs").floatValue, 0.01);
-
-        when(mNormalModel.getCount()).thenReturn(10);
-        when(mIncognitoModel.getCount()).thenReturn(10);
-        inputContext = mEducationalTipModuleMediator.createInputContext();
-        assertEquals(20, inputContext.getEntryForTesting("number_of_tabs").floatValue, 0.01);
-    }
-
-    @Test
-    @SmallTest
-    @EnableFeatures({ChromeFeatureList.EDUCATIONAL_TIP_MODULE})
     public void testCreatePredictionOptions() {
         assertTrue(ChromeFeatureList.sEducationalTipModule.isEnabled());
 
@@ -301,8 +207,20 @@
     @Test
     @SmallTest
     @EnableFeatures({ChromeFeatureList.EDUCATIONAL_TIP_MODULE})
-    public void testOnViewCreated() {
+    public void testOnViewCreated_DefaultBrowserPromo() {
         assertTrue(ChromeFeatureList.sEducationalTipModule.isEnabled());
+
+        // TODO(crbug.com/382803396): The sample here is a temporary workaround and will need to be
+        // fully replaced with the module type after the refactor.
+        var watcher =
+                HistogramWatcher.newBuilder()
+                        .expectIntRecords(
+                                "MagicStack.Clank.NewTabPage.Module.EducationalTip.Impression",
+                                EducationalTipCardType.DEFAULT_BROWSER_PROMO
+                                        + ModuleType.NUM_ENTRIES,
+                                EducationalTipCardType.TAB_GROUP + ModuleType.NUM_ENTRIES)
+                        .build();
+
         when(mTracker.shouldTriggerHelpUi(FeatureConstants.DEFAULT_BROWSER_PROMO_MAGIC_STACK))
                 .thenReturn(true);
 
@@ -320,12 +238,49 @@
         mEducationalTipModuleMediator.showModuleWithCardInfo(EducationalTipCardType.TAB_GROUP);
         mEducationalTipModuleMediator.onViewCreated();
         verify(mEducationalTipModuleMediatorJniMock)
-                .notifyCardShown(mProfile, EducationalTipCardType.TAB_GROUP);
+                .notifyCardShown(mProfile, EducationalTipCardType.DEFAULT_BROWSER_PROMO);
         verify(mMockDefaultBrowserPromoUtils)
                 .removeListener(
                         mEducationalTipModuleMediator
                                 .getDefaultBrowserPromoTriggerStateListenerForTesting());
         verify(mMockDefaultBrowserPromoUtils).notifyDefaultBrowserPromoVisible();
+
+        watcher.assertExpected();
+    }
+
+    @Test
+    @SmallTest
+    @EnableFeatures({ChromeFeatureList.EDUCATIONAL_TIP_MODULE})
+    public void testOnViewCreated_TabGroupPromo() {
+        assertTrue(ChromeFeatureList.sEducationalTipModule.isEnabled());
+
+        // TODO(crbug.com/382803396): The sample here is a temporary workaround and will need to be
+        // fully replaced with the module type after the refactor.
+        var watcher =
+                HistogramWatcher.newBuilder()
+                        .expectIntRecordTimes(
+                                "MagicStack.Clank.NewTabPage.Module.EducationalTip.Impression",
+                                EducationalTipCardType.TAB_GROUP + ModuleType.NUM_ENTRIES,
+                                2)
+                        .build();
+
+        when(mMockEducationalTipCardProviderSignalHandler.shouldNotifyCardShownPerSession(
+                        EducationalTipCardType.TAB_GROUP))
+                .thenReturn(true);
+        mEducationalTipModuleMediator.showModuleWithCardInfo(EducationalTipCardType.TAB_GROUP);
+        mEducationalTipModuleMediator.onViewCreated();
+        verify(mEducationalTipModuleMediatorJniMock)
+                .notifyCardShown(mProfile, EducationalTipCardType.TAB_GROUP);
+
+        when(mMockEducationalTipCardProviderSignalHandler.shouldNotifyCardShownPerSession(
+                        EducationalTipCardType.TAB_GROUP))
+                .thenReturn(false);
+        mEducationalTipModuleMediator.showModuleWithCardInfo(EducationalTipCardType.TAB_GROUP);
+        mEducationalTipModuleMediator.onViewCreated();
+        verify(mEducationalTipModuleMediatorJniMock)
+                .notifyCardShown(mProfile, EducationalTipCardType.TAB_GROUP);
+
+        watcher.assertExpected();
     }
 
     @Test
diff --git a/chrome/browser/fingerprinting_protection/fingerprinting_protection_filter_browser_test_harness.cc b/chrome/browser/fingerprinting_protection/fingerprinting_protection_filter_browser_test_harness.cc
index afc8111..9e2be87 100644
--- a/chrome/browser/fingerprinting_protection/fingerprinting_protection_filter_browser_test_harness.cc
+++ b/chrome/browser/fingerprinting_protection/fingerprinting_protection_filter_browser_test_harness.cc
@@ -8,6 +8,7 @@
 #include "components/fingerprinting_protection_filter/common/fingerprinting_protection_filter_features.h"
 #include "components/subresource_filter/content/browser/test_ruleset_publisher.h"
 #include "components/subresource_filter/core/common/test_ruleset_creator.h"
+#include "net/dns/mock_host_resolver.h"
 #include "net/test/embedded_test_server/embedded_test_server.h"
 
 #if !BUILDFLAG(IS_ANDROID)
@@ -143,4 +144,36 @@
   ASSERT_TRUE(embedded_test_server()->Start());
 }
 
+// ==== FingerprintingProtectionFilterRefreshHeuristicExceptionBrowserTest ====
+
+FingerprintingProtectionFilterRefreshHeuristicExceptionBrowserTest::
+    FingerprintingProtectionFilterRefreshHeuristicExceptionBrowserTest() {
+  // Enable refresh heuristic after 2 refreshes in both regular and incognito.
+  scoped_feature_list_.InitWithFeaturesAndParameters(
+      /*enabled_features=*/
+      {{features::kEnableFingerprintingProtectionFilter,
+        {{features::kRefreshHeuristicExceptionThresholdParam, "2"}}},
+       {features::kEnableFingerprintingProtectionFilterInIncognito,
+        {{features::kRefreshHeuristicExceptionThresholdParam, "2"}}}},
+      /*disabled_features=*/{});
+}
+
+FingerprintingProtectionFilterRefreshHeuristicExceptionBrowserTest::
+    ~FingerprintingProtectionFilterRefreshHeuristicExceptionBrowserTest() =
+        default;
+
+void FingerprintingProtectionFilterRefreshHeuristicExceptionBrowserTest::
+    SetUpOnMainThread() {
+  FingerprintingProtectionFilterBrowserTest::SetUpOnMainThread();
+  ASSERT_TRUE(embedded_test_server()->Start());
+
+  // These tests depend on eTLD+1, so we need the browser to navigate to
+  // a URL with domain name, not an IP address - it breaks if the URL is
+  // 127.0.0.1 as it is by default in these tests.
+  // Resolve "google.test" to 127.0.0.1 so that these tests can navigate to
+  // "google.test" and work as desired.
+  host_resolver()->AddRule("google.test",
+                           embedded_test_server()->base_url().host_piece());
+}
+
 }  // namespace fingerprinting_protection_filter
diff --git a/chrome/browser/fingerprinting_protection/fingerprinting_protection_filter_browser_test_harness.h b/chrome/browser/fingerprinting_protection/fingerprinting_protection_filter_browser_test_harness.h
index c9013a3a..5e6ae41d 100644
--- a/chrome/browser/fingerprinting_protection/fingerprinting_protection_filter_browser_test_harness.h
+++ b/chrome/browser/fingerprinting_protection/fingerprinting_protection_filter_browser_test_harness.h
@@ -148,6 +148,28 @@
   base::test::ScopedFeatureList scoped_feature_list_;
 };
 
+class FingerprintingProtectionFilterRefreshHeuristicExceptionBrowserTest
+    : public FingerprintingProtectionFilterBrowserTest {
+ public:
+  FingerprintingProtectionFilterRefreshHeuristicExceptionBrowserTest();
+
+  FingerprintingProtectionFilterRefreshHeuristicExceptionBrowserTest(
+      const FingerprintingProtectionFilterRefreshHeuristicExceptionBrowserTest&) =
+      delete;
+  FingerprintingProtectionFilterRefreshHeuristicExceptionBrowserTest& operator=(
+      const FingerprintingProtectionFilterRefreshHeuristicExceptionBrowserTest&) =
+      delete;
+
+  ~FingerprintingProtectionFilterRefreshHeuristicExceptionBrowserTest()
+      override;
+
+ protected:
+  void SetUpOnMainThread() override;
+
+ private:
+  base::test::ScopedFeatureList scoped_feature_list_;
+};
+
 }  // namespace fingerprinting_protection_filter
 
 #endif  // CHROME_BROWSER_FINGERPRINTING_PROTECTION_FINGERPRINTING_PROTECTION_FILTER_BROWSER_TEST_HARNESS_H_
diff --git a/chrome/browser/fingerprinting_protection/fingerprinting_protection_filter_browsertest.cc b/chrome/browser/fingerprinting_protection/fingerprinting_protection_filter_browsertest.cc
index 2a7909f..ce54bca 100644
--- a/chrome/browser/fingerprinting_protection/fingerprinting_protection_filter_browsertest.cc
+++ b/chrome/browser/fingerprinting_protection/fingerprinting_protection_filter_browsertest.cc
@@ -23,6 +23,7 @@
 
 #if !BUILDFLAG(IS_ANDROID)
 #include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/browser_commands.h"
 #include "chrome/test/base/ui_test_utils.h"
 #endif  // !BUILDFLAG(IS_ANDROID)
 
@@ -457,6 +458,100 @@
   histogram_tester.ExpectTotalCount(kEvaluationTotalCPUDurationForPage, 1);
 }
 
+// TODO(https://crbug.com/382055410): Adjust
+// `FingerprintingProtectionFilterRefreshHeuristicExceptionBrowserTest` tests so
+// they can also run on android.
+IN_PROC_BROWSER_TEST_F(
+    FingerprintingProtectionFilterRefreshHeuristicExceptionBrowserTest,
+    ExceptionIsAddedInNonIncognito) {
+  // Refresh exception code depends on eTLD+1, so we need to navigate to a
+  // host with a domain name.
+  GURL url(embedded_test_server()->GetURL("google.test", kTestFrameSetPath));
+
+  // Disallow child frame documents.
+  ASSERT_NO_FATAL_FAILURE(
+      SetRulesetToDisallowURLsWithPathSuffix("included_script.html"));
+
+  ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), url));
+
+  // Expect initially only second subframe loads due to blocking.
+  const std::vector<const char*> kSubframeNames{"one", "two", "three"};
+  const std::vector<bool> kExpectOnlySecondSubframe{false, true, false};
+  ASSERT_NO_FATAL_FAILURE(ExpectParsedScriptElementLoadedStatusInFrames(
+      kSubframeNames, kExpectOnlySecondSubframe));
+  ExpectFramesIncludedInLayout(kSubframeNames, kExpectOnlySecondSubframe);
+
+  // Reload
+  chrome::Reload(browser(), WindowOpenDisposition::CURRENT_TAB);
+  ASSERT_TRUE(content::WaitForLoadStop(
+      browser()->tab_strip_model()->GetActiveWebContents()));
+  // Blocking still has effect
+  ASSERT_NO_FATAL_FAILURE(ExpectParsedScriptElementLoadedStatusInFrames(
+      kSubframeNames, kExpectOnlySecondSubframe));
+  ExpectFramesIncludedInLayout(kSubframeNames, kExpectOnlySecondSubframe);
+
+  // Reload again
+  chrome::Reload(browser(), WindowOpenDisposition::CURRENT_TAB);
+  ASSERT_TRUE(content::WaitForLoadStop(
+      browser()->tab_strip_model()->GetActiveWebContents()));
+  // An exception will have been added.
+
+  // TODO(https://crbug.com/372669423): When acting on exceptions is
+  // implemented, change this test to expect no blocking.
+  ASSERT_NO_FATAL_FAILURE(ExpectParsedScriptElementLoadedStatusInFrames(
+      kSubframeNames, kExpectOnlySecondSubframe));
+  ExpectFramesIncludedInLayout(kSubframeNames, kExpectOnlySecondSubframe);
+}
+
+IN_PROC_BROWSER_TEST_F(
+    FingerprintingProtectionFilterRefreshHeuristicExceptionBrowserTest,
+    ExceptionIsAddedInIncognito) {
+  // Close normal browser and switch the test's browser instance to an incognito
+  // instance.
+  Browser* incognito = CreateIncognitoBrowser(browser()->profile());
+  CloseBrowserSynchronously(browser());
+  SelectFirstBrowser();
+  ASSERT_EQ(browser(), incognito);
+
+  // Refresh exception code depends on eTLD+1, so we need to navigate to a
+  // host with a domain name.
+  GURL url(embedded_test_server()->GetURL("google.test", kTestFrameSetPath));
+
+  // Disallow child frame documents.
+  ASSERT_NO_FATAL_FAILURE(
+      SetRulesetToDisallowURLsWithPathSuffix("included_script.html"));
+
+  ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), url));
+
+  // Expect initially only second subframe loads due to blocking.
+  const std::vector<const char*> kSubframeNames{"one", "two", "three"};
+  const std::vector<bool> kExpectOnlySecondSubframe{false, true, false};
+  ASSERT_NO_FATAL_FAILURE(ExpectParsedScriptElementLoadedStatusInFrames(
+      kSubframeNames, kExpectOnlySecondSubframe));
+  ExpectFramesIncludedInLayout(kSubframeNames, kExpectOnlySecondSubframe);
+
+  // Reload
+  chrome::Reload(browser(), WindowOpenDisposition::CURRENT_TAB);
+  ASSERT_TRUE(content::WaitForLoadStop(
+      browser()->tab_strip_model()->GetActiveWebContents()));
+  // Blocking still has effect
+  ASSERT_NO_FATAL_FAILURE(ExpectParsedScriptElementLoadedStatusInFrames(
+      kSubframeNames, kExpectOnlySecondSubframe));
+  ExpectFramesIncludedInLayout(kSubframeNames, kExpectOnlySecondSubframe);
+
+  // Reload again
+  chrome::Reload(browser(), WindowOpenDisposition::CURRENT_TAB);
+  ASSERT_TRUE(content::WaitForLoadStop(
+      browser()->tab_strip_model()->GetActiveWebContents()));
+  // An exception will have been added.
+
+  // TODO(https://crbug.com/372669423): When acting on exceptions is
+  // implemented, change this test to expect no blocking.
+  ASSERT_NO_FATAL_FAILURE(ExpectParsedScriptElementLoadedStatusInFrames(
+      kSubframeNames, kExpectOnlySecondSubframe));
+  ExpectFramesIncludedInLayout(kSubframeNames, kExpectOnlySecondSubframe);
+}
+
 #endif  // !BUILDFLAG(IS_ANDROID)
 
 }  // namespace fingerprinting_protection_filter
diff --git a/chrome/browser/magic_stack/android/java/src/org/chromium/chrome/browser/magic_stack/HomeModulesMetricsUtils.java b/chrome/browser/magic_stack/android/java/src/org/chromium/chrome/browser/magic_stack/HomeModulesMetricsUtils.java
index 339f4f39..5968833 100644
--- a/chrome/browser/magic_stack/android/java/src/org/chromium/chrome/browser/magic_stack/HomeModulesMetricsUtils.java
+++ b/chrome/browser/magic_stack/android/java/src/org/chromium/chrome/browser/magic_stack/HomeModulesMetricsUtils.java
@@ -21,10 +21,15 @@
 
 /** The utility class for logging the magic stack's metrics. */
 public class HomeModulesMetricsUtils {
-    @VisibleForTesting static final String HISTOGRAM_PREFIX = "MagicStack.Clank.NewTabPage";
+    @VisibleForTesting public static final String HISTOGRAM_PREFIX = "MagicStack.Clank.NewTabPage";
+    @VisibleForTesting public static final String HISTOGRAM_MAGIC_STACK_MODULE = ".Module.";
+
+    @VisibleForTesting
+    public static final String HISTOGRAM_MAGIC_STACK_MODULE_IMPRESSION_WITH_POSITION =
+            ".Impression";
+
     @VisibleForTesting static final String HISTOGRAM_OS_PREFIX = "MagicStack.Clank.";
     @VisibleForTesting static final String HISTOGRAM_MAGIC_STACK_MODULE_CLICK = ".Module.Click";
-    @VisibleForTesting static final String HISTOGRAM_MAGIC_STACK_MODULE = ".Module.";
     @VisibleForTesting static final String HISTOGRAM_MAGIC_STACK_HOST_SURFACE_REGULAR = ".Regular";
     @VisibleForTesting static final String HISTOGRAM_MAGIC_STACK_HOST_SURFACE_STARTUP = ".Startup";
 
@@ -32,7 +37,6 @@
     static final String HISTOGRAM_MAGIC_STACK_MODULE_CLICK_WITH_POSITION = ".Click";
 
     @VisibleForTesting static final String HISTOGRAM_MAGIC_STACK_MODULE_BUILD = ".Build";
-    static final String HISTOGRAM_MAGIC_STACK_MODULE_IMPRESSION_WITH_POSITION = ".Impression";
 
     @VisibleForTesting
     static final String HISTOGRAM_MAGIC_STACK_MODULE_IMPRESSION = ".Module.TopImpressionV2";
diff --git a/chrome/browser/metrics/url_constants_browsertest.cc b/chrome/browser/metrics/server_urls_browsertest.cc
similarity index 99%
rename from chrome/browser/metrics/url_constants_browsertest.cc
rename to chrome/browser/metrics/server_urls_browsertest.cc
index 013f03d..c25fe4d1 100644
--- a/chrome/browser/metrics/url_constants_browsertest.cc
+++ b/chrome/browser/metrics/server_urls_browsertest.cc
@@ -2,10 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "components/metrics/server_urls.h"
+
 #include "build/branding_buildflags.h"
 #include "build/buildflag.h"
 #include "chrome/test/base/platform_browser_test.h"
-#include "components/metrics/server_urls.h"
 #include "content/public/test/browser_test.h"
 
 using MetricsServerUrlsBrowserTest = PlatformBrowserTest;
diff --git a/chrome/browser/net/BUILD.gn b/chrome/browser/net/BUILD.gn
index 4dedcd58..7d73924 100644
--- a/chrome/browser/net/BUILD.gn
+++ b/chrome/browser/net/BUILD.gn
@@ -28,3 +28,21 @@
     sources = [ "secure_dns_config.h" ]
   }
 }
+
+static_library("server_certificate_database_test_support") {
+  testonly = true
+
+  sources = [
+    "server_certificate_database_test_util.cc",
+    "server_certificate_database_test_util.h",
+  ]
+
+  deps = [
+    "//base",
+    "//base/test:test_support",
+    "//chrome/browser",
+    "//crypto",
+    "//testing/gmock",
+    "//testing/gtest",
+  ]
+}
diff --git a/chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/NotificationUmaTracker.java b/chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/NotificationUmaTracker.java
index c16c050..95d49e5be 100644
--- a/chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/NotificationUmaTracker.java
+++ b/chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/NotificationUmaTracker.java
@@ -5,7 +5,6 @@
 package org.chromium.chrome.browser.notifications;
 
 import android.app.Notification;
-import android.app.NotificationChannel;
 import android.os.Build;
 import android.text.format.DateUtils;
 
@@ -14,6 +13,7 @@
 import androidx.annotation.RequiresApi;
 import androidx.core.app.NotificationManagerCompat;
 
+import org.chromium.base.Callback;
 import org.chromium.base.MathUtils;
 import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.base.metrics.RecordUserAction;
@@ -21,8 +21,8 @@
 import org.chromium.chrome.browser.notifications.channels.ChromeChannelDefinitions;
 import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
 import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
-import org.chromium.components.browser_ui.notifications.NotificationManagerProxy;
-import org.chromium.components.browser_ui.notifications.NotificationManagerProxyImpl;
+import org.chromium.components.browser_ui.notifications.BaseNotificationManagerProxy;
+import org.chromium.components.browser_ui.notifications.BaseNotificationManagerProxyFactory;
 import org.chromium.components.browser_ui.notifications.NotificationProxyUtils;
 
 import java.lang.annotation.Retention;
@@ -343,7 +343,7 @@
 
     // Cached objects.
     private final SharedPreferencesManager mSharedPreferences;
-    private final NotificationManagerProxy mNotificationManager;
+    private final BaseNotificationManagerProxy mNotificationManager;
 
     public static NotificationUmaTracker getInstance() {
         return LazyHolder.INSTANCE;
@@ -351,7 +351,7 @@
 
     private NotificationUmaTracker() {
         mSharedPreferences = ChromeSharedPreferences.getInstance();
-        mNotificationManager = NotificationManagerProxyImpl.getInstance();
+        mNotificationManager = BaseNotificationManagerProxyFactory.create();
     }
 
     /**
@@ -656,21 +656,35 @@
             recordHistogram("Mobile.SystemNotification.Blocked", type);
             return;
         }
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
-                && channelId != null
-                && isChannelBlocked(channelId)) {
-            recordHistogram("Mobile.SystemNotification.ChannelBlocked", type);
+        if (channelId == null) {
+            saveLastShownNotification(type);
+            recordHistogram("Mobile.SystemNotification.Shown", type);
             return;
         }
-        saveLastShownNotification(type);
-        recordHistogram("Mobile.SystemNotification.Shown", type);
+
+        isChannelBlocked(
+                channelId,
+                (blocked) -> {
+                    if (blocked) {
+                        recordHistogram("Mobile.SystemNotification.ChannelBlocked", type);
+                    } else {
+                        saveLastShownNotification(type);
+                        recordHistogram("Mobile.SystemNotification.Shown", type);
+                    }
+                });
     }
 
     @RequiresApi(26)
-    private boolean isChannelBlocked(@ChromeChannelDefinitions.ChannelId String channelId) {
-        NotificationChannel channel = mNotificationManager.getNotificationChannel(channelId);
-        return channel != null
-                && channel.getImportance() == NotificationManagerCompat.IMPORTANCE_NONE;
+    private void isChannelBlocked(
+            @ChromeChannelDefinitions.ChannelId String channelId, Callback<Boolean> callback) {
+        mNotificationManager.getNotificationChannel(
+                channelId,
+                (channel) -> {
+                    callback.onResult(
+                            channel != null
+                                    && channel.getImportance()
+                                            == NotificationManagerCompat.IMPORTANCE_NONE);
+                });
     }
 
     private void saveLastShownNotification(@SystemNotificationType int type) {
diff --git a/chrome/browser/password_manager/android/access_loss/java/src/org/chromium/chrome/browser/access_loss/PwdAccessLossNotificationCoordinatorTest.java b/chrome/browser/password_manager/android/access_loss/java/src/org/chromium/chrome/browser/access_loss/PwdAccessLossNotificationCoordinatorTest.java
index 7c846ad..0f14ea0b 100644
--- a/chrome/browser/password_manager/android/access_loss/java/src/org/chromium/chrome/browser/access_loss/PwdAccessLossNotificationCoordinatorTest.java
+++ b/chrome/browser/password_manager/android/access_loss/java/src/org/chromium/chrome/browser/access_loss/PwdAccessLossNotificationCoordinatorTest.java
@@ -32,7 +32,7 @@
 import org.chromium.chrome.browser.flags.ChromeSwitches;
 import org.chromium.chrome.browser.notifications.NotificationUmaTracker.SystemNotificationType;
 import org.chromium.chrome.browser.notifications.channels.ChromeChannelDefinitions;
-import org.chromium.components.browser_ui.notifications.AsyncNotificationManagerProxy;
+import org.chromium.components.browser_ui.notifications.BaseNotificationManagerProxy;
 import org.chromium.components.browser_ui.notifications.BaseNotificationManagerProxyFactory;
 import org.chromium.components.browser_ui.notifications.NotificationFeatureMap;
 import org.chromium.components.browser_ui.notifications.NotificationMetadata;
@@ -49,7 +49,7 @@
     private Context mContext;
 
     @Rule public MockitoRule mMockitoRule = MockitoJUnit.rule().strictness(Strictness.STRICT_STUBS);
-    @Mock private AsyncNotificationManagerProxy mNotificationManagerProxy;
+    @Mock private BaseNotificationManagerProxy mNotificationManagerProxy;
 
     @Before
     public void setUp() {
diff --git a/chrome/browser/picture_in_picture/auto_picture_in_picture_tab_helper_browsertest.cc b/chrome/browser/picture_in_picture/auto_picture_in_picture_tab_helper_browsertest.cc
index 8c4f723..e072d61 100644
--- a/chrome/browser/picture_in_picture/auto_picture_in_picture_tab_helper_browsertest.cc
+++ b/chrome/browser/picture_in_picture/auto_picture_in_picture_tab_helper_browsertest.cc
@@ -1808,16 +1808,8 @@
   EXPECT_TRUE(first_web_contents->HasPictureInPictureDocument());
 }
 
-// TODO(crbug.com/382180421): Test failing on Max and Linux
-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
-#define MAYBE_DevToolsMediaLogsRecordedForOpener \
-  DISABLED_DevToolsMediaLogsRecordedForOpener
-#else
-#define MAYBE_DevToolsMediaLogsRecordedForOpener \
-  DevToolsMediaLogsRecordedForOpener
-#endif
 IN_PROC_BROWSER_TEST_F(AutoPictureInPictureWithVideoPlaybackBrowserTest,
-                       MAYBE_DevToolsMediaLogsRecordedForOpener) {
+                       DevToolsMediaLogsRecordedForOpener) {
   LoadAutoDocumentVideoVisibilityPipPage(browser());
   auto* web_contents = browser()->tab_strip_model()->GetActiveWebContents();
   PlayVideo(web_contents);
@@ -1855,16 +1847,8 @@
   SwitchBackToOpenerAndWaitForPipToClose();
 }
 
-// TODO(crbug.com/382180421): Test failing on Max and Linux
-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
-#define MAYBE_DevToolsMediaLogsNotRecordedForPipWindow \
-  DISABLED_DevToolsMediaLogsNotRecordedForPipWindow
-#else
-#define MAYBE_DevToolsMediaLogsNotRecordedForPipWindow \
-  DevToolsMediaLogsNotRecordedForPipWindow
-#endif
 IN_PROC_BROWSER_TEST_F(AutoPictureInPictureWithVideoPlaybackBrowserTest,
-                       MAYBE_DevToolsMediaLogsNotRecordedForPipWindow) {
+                       DevToolsMediaLogsNotRecordedForPipWindow) {
   LoadAutoDocumentVideoVisibilityPipPage(browser());
   auto* web_contents = browser()->tab_strip_model()->GetActiveWebContents();
   PlayVideo(web_contents);
diff --git a/chrome/browser/privacy_sandbox/DIR_METADATA b/chrome/browser/privacy_sandbox/DIR_METADATA
index 46191cc..cb1e73c9 100644
--- a/chrome/browser/privacy_sandbox/DIR_METADATA
+++ b/chrome/browser/privacy_sandbox/DIR_METADATA
@@ -1,7 +1,7 @@
 monorail: {
-  component: "UI>Settings>Privacy"
+  component: "UI>Browser>Privacy Sandbox"
 }
-team_email: "chrome-privacy-controls@google.com"
+team_email: "koilos@google.com"
 buganizer_public: {
-  component_id: 1457044
+  component_id: 1697287
 }
diff --git a/chrome/browser/quick_delete/android/javatests/src/org/chromium/chrome/browser/quick_delete/QuickDeleteControllerTest.java b/chrome/browser/quick_delete/android/javatests/src/org/chromium/chrome/browser/quick_delete/QuickDeleteControllerTest.java
index 673f264..798d3852 100644
--- a/chrome/browser/quick_delete/android/javatests/src/org/chromium/chrome/browser/quick_delete/QuickDeleteControllerTest.java
+++ b/chrome/browser/quick_delete/android/javatests/src/org/chromium/chrome/browser/quick_delete/QuickDeleteControllerTest.java
@@ -148,6 +148,15 @@
                 .check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE)));
 
         // Click on quick delete menu item.
+        HistogramWatcher histogramWatcher =
+                HistogramWatcher.newBuilder()
+                        .expectIntRecords(
+                                QuickDeleteMetricsDelegate.HISTOGRAM_NAME,
+                                QuickDeleteMetricsDelegate.QuickDeleteAction.MENU_ITEM_CLICKED,
+                                QuickDeleteMetricsDelegate.QuickDeleteAction
+                                        .LAST_15_MINUTES_SELECTED)
+                        .build();
+
         runOnUiThreadBlocking(
                 () -> {
                     AppMenuTestSupport.callOnItemClick(
@@ -155,6 +164,8 @@
                 });
         onViewWaiting(withId(R.id.quick_delete_spinner), true)
                 .check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE)));
+
+        histogramWatcher.assertExpected();
     }
 
     private void assertDataTypesCleared(@TimePeriod int timePeriod, int... types) {
diff --git a/chrome/browser/resources/certificate_viewer/BUILD.gn b/chrome/browser/resources/certificate_viewer/BUILD.gn
index a88c13a5..173bad0 100644
--- a/chrome/browser/resources/certificate_viewer/BUILD.gn
+++ b/chrome/browser/resources/certificate_viewer/BUILD.gn
@@ -16,6 +16,7 @@
   ]
 
   non_web_component_files = [
+    "browser_proxy.ts",
     "certificate_viewer.ts",
     "constraint_list.ts",
     "constraint_list.html.ts",
diff --git a/chrome/browser/resources/certificate_viewer/browser_proxy.ts b/chrome/browser/resources/certificate_viewer/browser_proxy.ts
new file mode 100644
index 0000000..792af2c
--- /dev/null
+++ b/chrome/browser/resources/certificate_viewer/browser_proxy.ts
@@ -0,0 +1,35 @@
+// Copyright 2024 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @fileoverview Browser Proxy for Certificate Viewer. Helps make testing
+ * easier.
+ */
+
+import {sendWithPromise} from 'chrome://resources/js/cr.js';
+
+export interface CertMetadataChangeResult {
+  success: boolean;
+  errorMessage?: string;
+}
+
+export interface CertViewerBrowserProxy {
+  updateTrustState(newTrust: number): Promise<CertMetadataChangeResult>;
+}
+
+export class CertViewerBrowserProxyImpl implements CertViewerBrowserProxy {
+  updateTrustState(newTrust: number): Promise<CertMetadataChangeResult> {
+    return sendWithPromise('updateTrustState', newTrust);
+  }
+
+  static getInstance(): CertViewerBrowserProxy {
+    return instance || (instance = new CertViewerBrowserProxyImpl());
+  }
+
+  static setInstance(obj: CertViewerBrowserProxyImpl) {
+    instance = obj;
+  }
+}
+
+let instance: CertViewerBrowserProxyImpl|null = null;
diff --git a/chrome/browser/resources/certificate_viewer/certificate_viewer.css b/chrome/browser/resources/certificate_viewer/certificate_viewer.css
index 8f2ac05..71c5c42 100644
--- a/chrome/browser/resources/certificate_viewer/certificate_viewer.css
+++ b/chrome/browser/resources/certificate_viewer/certificate_viewer.css
@@ -90,6 +90,20 @@
   padding-bottom: 10px;
 }
 
+.input-with-error {
+  display: flex;
+  flex-direction: column;
+}
+
+.error {
+  margin: 4px 10px;
+  color: rgb(179, 38, 30);
+}
+
+.hide-error {
+  display: none;
+}
+
 .modifications-row-label {
   width: 150px;
 }
diff --git a/chrome/browser/resources/certificate_viewer/certificate_viewer.html b/chrome/browser/resources/certificate_viewer/certificate_viewer.html
index 1ca7bb4..aae145f 100644
--- a/chrome/browser/resources/certificate_viewer/certificate_viewer.html
+++ b/chrome/browser/resources/certificate_viewer/certificate_viewer.html
@@ -120,17 +120,21 @@
       </div>
 
       <!-- Modifications -->
-      <!-- TODO(crbug.com/40928765): hook up to allow for modifications. -->
       <div slot="panel" id="modifications" role="tabpanel">
         <div class="vertical-box">
           <h3 role="heading">$i18n{trust}</h3>
           <div class="horizontal-row">
             <label class="modifications-row-label">$i18n{trustState}</label>
-            <select id="trust-state-select" class="md-select" disabled>
-              <option value="0">$i18n{trustStateDistrusted}</option>
-              <option value="1">$i18n{trustStateHint}</option>
-              <option value="2">$i18n{trustStateTrusted}</option>
-            </select>
+            <div class="input-with-error">
+              <select id="trust-state-select" class="md-select" disabled>
+                <option value="0">$i18n{trustStateDistrusted}</option>
+                <option value="1">$i18n{trustStateHint}</option>
+                <option value="2">$i18n{trustStateTrusted}</option>
+              </select>
+              <div id="trust-state-select-error" class="error hide-error">
+                Error
+              </div>
+            </div>
 
           </div>
           <div class="horizontal-row">
diff --git a/chrome/browser/resources/certificate_viewer/certificate_viewer.ts b/chrome/browser/resources/certificate_viewer/certificate_viewer.ts
index a148db1..2c45647 100644
--- a/chrome/browser/resources/certificate_viewer/certificate_viewer.ts
+++ b/chrome/browser/resources/certificate_viewer/certificate_viewer.ts
@@ -6,6 +6,7 @@
 import 'chrome://resources/cr_elements/cr_tab_box/cr_tab_box.js';
 import 'chrome://resources/cr_elements/cr_tree/cr_tree.js';
 import 'chrome://resources/cr_elements/cr_tree/cr_tree_item.js';
+import './browser_proxy.js';
 import './constraint_list.js';
 
 import type {CrTreeElement} from 'chrome://resources/cr_elements/cr_tree/cr_tree.js';
@@ -13,6 +14,9 @@
 import {assert} from 'chrome://resources/js/assert.js';
 import {sendWithPromise} from 'chrome://resources/js/cr.js';
 
+import {CertViewerBrowserProxyImpl} from './browser_proxy.js';
+import type {CertMetadataChangeResult} from './browser_proxy.js';
+
 interface TreeInfo {
   payload?: object;
   children?: TreeInfo[];
@@ -29,7 +33,8 @@
 
 interface CertificateMetadata {
   trust: CertificateTrust;
-  constraints: string[];
+  constraints?: string[];
+  isEditable: boolean;
 }
 
 interface CertificateInfo {
@@ -99,6 +104,52 @@
   exportButton.onclick = exportCertificate;
 }
 
+export function onTrustStateChange() {
+  // Clear any error message
+  const trustStateErrorMessage =
+      document.querySelector<HTMLElement>('#trust-state-select-error');
+  assert(trustStateErrorMessage);
+  trustStateErrorMessage.classList.add('hide-error');
+
+  // Update the trust state.
+  const trustStateSelect =
+      document.querySelector<HTMLSelectElement>('#trust-state-select');
+  assert(trustStateSelect);
+
+  // Disable editing so we only have one change outstanding at any one time.
+  trustStateSelect.disabled = true;
+  assert(trustStateSelect);
+  CertViewerBrowserProxyImpl.getInstance()
+      .updateTrustState(Number(trustStateSelect.value))
+      .then(onTrustStateChangeFinished);
+}
+
+function onTrustStateChangeFinished(result: CertMetadataChangeResult) {
+  const trustStateSelect =
+      document.querySelector<HTMLSelectElement>('#trust-state-select');
+  assert(trustStateSelect);
+  trustStateSelect.disabled = false;
+
+  if (!result.success) {
+    const trustStateErrorMessage =
+        document.querySelector<HTMLElement>('#trust-state-select-error');
+    assert(trustStateErrorMessage);
+    // Set error message
+    if (result.errorMessage !== undefined) {
+      trustStateErrorMessage.innerText = result.errorMessage;
+    } else {
+      // TODO(crbug.com/40928765): localize
+      trustStateErrorMessage.innerText =
+          'There was an error saving the trust state change';
+    }
+
+    trustStateErrorMessage.classList.remove('hide-error');
+  }
+
+  document.body.dispatchEvent(
+      new CustomEvent('trust-state-change-finished-for-testing'));
+}
+
 function getCertificateMetadata(certInfo: CertificateInfo) {
   if (certInfo.certMetadata === undefined) {
     return;
@@ -114,10 +165,17 @@
   assert(trustStateSelect);
   trustStateSelect.value = certInfo.certMetadata.trust.toString();
 
-  const constraintsElement = document.querySelector('constraint-list');
-  assert(constraintsElement);
+  if (certInfo.certMetadata.isEditable) {
+    trustStateSelect.disabled = false;
+    trustStateSelect.addEventListener('change', onTrustStateChange);
+  }
 
-  constraintsElement.constraints = certInfo.certMetadata.constraints;
+  if (certInfo.certMetadata.constraints !== undefined) {
+    const constraintsElement = document.querySelector('constraint-list');
+    assert(constraintsElement);
+
+    constraintsElement.constraints = certInfo.certMetadata.constraints;
+  }
 }
 
 /**
diff --git a/chrome/browser/resources/on_device_internals/tools.html b/chrome/browser/resources/on_device_internals/tools.html
index 93c4abf8..a58c1b6a 100644
--- a/chrome/browser/resources/on_device_internals/tools.html
+++ b/chrome/browser/resources/on_device_internals/tools.html
@@ -22,7 +22,7 @@
 
   #textInput {
     --cr-input-error-display: none;
-    margin: 0 0 20px 0;
+    margin: 0 0 10px 0;
   }
 
   .output-options {
@@ -46,9 +46,18 @@
   }
 
   .session {
+    margin-top: 20px;
+  }
+
+  .action-button {
+    margin-inline-end: 8px;
     margin-top: 10px;
   }
 
+  #imageInput {
+    display: none;
+  }
+
   .text,
   .response {
     background-color: var(--google-grey-300);
@@ -69,6 +78,11 @@
     background-color: var(--google-red-100);
   }
 
+  .image-error {
+    color: var(--cr-fallback-color-error);
+    margin-bottom: 3px;
+  }
+
   .text {
     margin-inline-end: 50px;
   }
@@ -139,19 +153,35 @@
 <cr-textarea id="textInput" disabled="[[!canExecute_(currentResponse_, model_)]]"
     label="Input"
     placeholder="Place control tokens {$SYSTEM, $MODEL, $USER, $END} on their own lines, in between lines of text."
-    on-change="onExecute_"
     value="{{text_}}">
-  <cr-button slot="suffix"
+</cr-textarea>
+<div class="image-error">[[imageError_]]</div>
+<div hidden$="[[file_]]">
+  <cr-button class="floating-button"
+      disabled="[[!canUploadFile_(currentResponse_, model_, file_)]]"
+      on-click="onAddImageClick_">
+    <cr-icon icon="cr:add" slot="prefix-icon"></cr-icon>
+    Add image
+  </cr-button>
+  <input id="imageInput" type="file"></input>
+</div>
+<cr-button class="floating-button" hidden$="[[!file_]]"
+    on-click="onRemoteImageClick_">
+  <cr-icon icon="cr:delete" slot="prefix-icon"></cr-icon>
+  [[file_.name]]
+</cr-button>
+<div>
+  <cr-button class="action-button"
       disabled="[[!canExecute_(currentResponse_, model_)]]"
       on-click="onExecuteClick_">
     Execute
   </cr-button>
-  <cr-button slot="suffix"
+  <cr-button
       disabled="[[!currentResponse_]]"
       on-click="onCancelClick_">
     Cancel
   </cr-button>
-</cr-textarea>
+</div>
 
 <div class="session" hidden="[[!currentResponse_]]">
   <div class="text">[[currentResponse_.text]]</div>
diff --git a/chrome/browser/resources/on_device_internals/tools.ts b/chrome/browser/resources/on_device_internals/tools.ts
index 028c55b1..5a8aaba 100644
--- a/chrome/browser/resources/on_device_internals/tools.ts
+++ b/chrome/browser/resources/on_device_internals/tools.ts
@@ -31,6 +31,7 @@
     modelInput: CrInputElement,
     temperatureInput: CrInputElement,
     textInput: CrInputElement,
+    imageInput: HTMLInputElement,
     topKInput: CrInputElement,
   };
 }
@@ -93,6 +94,7 @@
         value: '',
       },
       error_: String,
+      imageError_: String,
       text_: String,
       loadModelStart_: {
         type: Number,
@@ -119,6 +121,10 @@
       contextText_: String,
       topK_: Number,
       temperature_: Number,
+      file_: {
+        type: Object,
+        value: null,
+      },
     };
   }
 
@@ -133,6 +139,7 @@
   private contextText_: string;
   private currentResponse_: Response|null;
   private error_: string;
+  private imageError_: string;
   private loadModelDuration_: number;
   private loadModelStart_: number;
   private modelPath_: string;
@@ -143,6 +150,7 @@
   private temperature_: number = 0;
   private text_: string;
   private topK_: number = 1;
+  private file_: File|null = null;
 
   private proxy_: BrowserProxy = BrowserProxy.getInstance();
   private responseRouter_: StreamingResponderCallbackRouter =
@@ -152,6 +160,8 @@
     super.ready();
     this.getPerformanceClass_();
     this.$.temperatureInput.inputElement.step = '0.1';
+    this.$.imageInput.addEventListener(
+        'change', this.onImageChange_.bind(this));
   }
 
   private async getPerformanceClass_() {
@@ -172,6 +182,15 @@
     this.onModelSelected_();
   }
 
+  private onAddImageClick_() {
+    this.$.imageInput.click();
+  }
+
+  private onRemoteImageClick_() {
+    this.file_ = null;
+    this.$.imageInput.value = '';
+  }
+
   private onServiceCrashed_() {
     if (this.currentResponse_) {
       this.currentResponse_.error = true;
@@ -184,6 +203,15 @@
     this.$.modelInput.focus();
   }
 
+  private onImageChange_() {
+    this.imageError_ = '';
+    if ((this.$.imageInput.files?.length ?? 0) > 0) {
+      this.file_ = this.$.imageInput.files!.item(0) ?? null;
+    } else {
+      this.file_ = null;
+    }
+  }
+
   private async onModelSelected_() {
     this.error_ = '';
     if (this.model_) {
@@ -249,8 +277,8 @@
     this.addResponse_();
   }
 
-  private onExecuteClick_() {
-    this.onExecute_();
+  private async onExecuteClick_() {
+    await this.onExecute_();
   }
 
   private addResponse_() {
@@ -259,7 +287,32 @@
     this.$.textInput.focus();
   }
 
-  private onExecute_() {
+  private async decodeBitmap_() {
+    const data = new Uint8Array(await this.file_!.arrayBuffer());
+    if (data.byteLength <= 0) {
+      return null;
+    }
+    const handle = Mojo.createSharedBuffer(data.byteLength).handle;
+    const buffer = new Uint8Array(handle.mapBuffer(0, data.byteLength).buffer);
+    buffer.set(data);
+
+    // BigBuffer type wants all properties but Mojo expects only one of them.
+    const bigBuffer = {
+      sharedMemory: {
+        bufferHandle: handle,
+        size: data.byteLength,
+      },
+      bytes: undefined,
+      invalidBuffer: undefined,
+    };
+    delete bigBuffer.invalidBuffer;
+    delete bigBuffer.bytes;
+    const {bitmap} = await this.proxy_.handler.decodeBitmap(bigBuffer);
+    return bitmap;
+  }
+
+  private async onExecute_() {
+    this.imageError_ = '';
     if (this.session_ === null) {
       return;
     }
@@ -269,6 +322,17 @@
     if (!this.$.temperatureInput.validate()) {
       return;
     }
+    const pieces = textToInputPieces(this.text_);
+    if (this.file_ !== null) {
+      const bitmap = await this.decodeBitmap_();
+      if (bitmap) {
+        pieces.unshift({bitmap});
+      } else {
+        this.file_ = null;
+        this.imageError_ = 'Image is invalid';
+        return;
+      }
+    }
     this.session_.execute(
         {
           ignoreContext: false,
@@ -277,7 +341,7 @@
           maxOutputTokens: 0,
           topK: this.topK_,
           temperature: this.temperature_,
-          input: {pieces: textToInputPieces(this.text_)},
+          input: {pieces: pieces},
         },
         this.responseRouter_.$.bindNewPipeAndPassRemote());
     const onResponseId =
@@ -306,6 +370,10 @@
     return !this.currentResponse_ && this.model_ !== null;
   }
 
+  private canUploadFile_(): boolean {
+    return this.canExecute_() && this.file_ === null;
+  }
+
   private isLoading_(): boolean {
     return this.loadModelStart_ !== 0;
   }
diff --git a/chrome/browser/resources/privacy_sandbox/DIR_METADATA b/chrome/browser/resources/privacy_sandbox/DIR_METADATA
index 46191cc..cb1e73c9 100644
--- a/chrome/browser/resources/privacy_sandbox/DIR_METADATA
+++ b/chrome/browser/resources/privacy_sandbox/DIR_METADATA
@@ -1,7 +1,7 @@
 monorail: {
-  component: "UI>Settings>Privacy"
+  component: "UI>Browser>Privacy Sandbox"
 }
-team_email: "chrome-privacy-controls@google.com"
+team_email: "koilos@google.com"
 buganizer_public: {
-  component_id: 1457044
+  component_id: 1697287
 }
diff --git a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_consent_step.html b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_consent_step.html
index e31e44a..4cdefc12 100644
--- a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_consent_step.html
+++ b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_consent_step.html
@@ -10,7 +10,7 @@
       <img class="logo" alt="">
       <h1>$i18n{m1ConsentTitle}</h1>
     </div>
-    <template is="dom-if" if="[[!shouldShowV2_]]">
+    <template is="dom-if" if="[[!shouldShowV2()]]">
       <div id="consentContent">
         <div class="section cr-secondary-text">
           $i18n{m1ConsentDescription1}
@@ -46,7 +46,7 @@
         </div>
       </div>
     </template>
-    <template is="dom-if" if="[[shouldShowV2_]]">
+    <template is="dom-if" if="[[shouldShowV2()]]">
       <div id="consentContentV2">
         <div class="section cr-secondary-text">
           $i18n{m1ConsentDescription2V2}
@@ -82,11 +82,11 @@
       </div>
     </template>
     <div class="buttons-container">
-      <cr-button id="declineButton" class$="[[getButtonsClass_(shouldShowV2_)]]"
+      <cr-button id="declineButton" class$="[[getButtonsClass_()]]"
           on-click="onConsentDeclined_">
         $i18n{m1ConsentDeclineButton}
       </cr-button>
-      <cr-button id="confirmButton" class$="[[getButtonsClass_(shouldShowV2_)]]"
+      <cr-button id="confirmButton" class$="[[getButtonsClass_()]]"
           on-click="onConsentAccepted_">
         $i18n{m1ConsentAcceptButton}
       </cr-button>
diff --git a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_consent_step.ts b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_consent_step.ts
index d6666ba..8f806ed 100644
--- a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_consent_step.ts
+++ b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_consent_step.ts
@@ -11,7 +11,6 @@
 import './privacy_sandbox_dialog_learn_more.js';
 import './privacy_sandbox_privacy_policy_dialog.js';
 
-import {loadTimeData} from 'chrome://resources/js/load_time_data.js';
 import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
 import {PrivacySandboxDialogBrowserProxy, PrivacySandboxPromptAction} from './privacy_sandbox_dialog_browser_proxy.js';
@@ -54,23 +53,11 @@
         type: Boolean,
         value: false,
       },
-
-      /**
-       * If true, the Ads API UX Enhancement should be shown.
-       */
-      shouldShowV2_: {
-        type: Boolean,
-        value: () => {
-          return loadTimeData.getBoolean(
-              'isPrivacySandboxAdsApiUxEnhancementsEnabled');
-        },
-      },
     };
   }
 
   private isPrivacyPolicyLinkEnabled_: boolean;
   private hideConsentNoticePage_: boolean;
-  private shouldShowV2_: boolean;
 
   private onConsentAccepted_() {
     this.promptActionOccurred(PrivacySandboxPromptAction.CONSENT_ACCEPTED);
@@ -106,7 +93,7 @@
   private onBackButtonClicked_() {
     this.hideConsentNoticePage_ = false;
     const privacyPolicyLinkId =
-        this.shouldShowV2_ ? '#privacyPolicyLinkV2' : '#privacyPolicyLink';
+        this.shouldShowV2() ? '#privacyPolicyLinkV2' : '#privacyPolicyLink';
     // Send focus back to privacy policy link for a11y screen reader.
     this.shadowRoot!.querySelector<HTMLElement>(privacyPolicyLinkId)!.focus();
   }
@@ -116,7 +103,7 @@
   }
 
   private getButtonsClass_() {
-    return this.shouldShowV2_ ? 'tonal-button' : '';
+    return this.shouldShowV2() ? 'tonal-button' : '';
   }
 }
 
diff --git a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_learn_more.html b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_learn_more.html
index 73a7cce3..c83f41c 100644
--- a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_learn_more.html
+++ b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_learn_more.html
@@ -17,7 +17,7 @@
 }
 </style>
 
-<div class$="[[getDivClass_(shouldShowV2_)]]">
+<div class$="[[getDivClass_()]]">
   <cr-expand-button expanded="{{expanded}}">
     <div class="cr-secondary-text">
       {{title}}
diff --git a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_mixin.ts b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_mixin.ts
index b840596..be877e05 100644
--- a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_mixin.ts
+++ b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_mixin.ts
@@ -23,10 +23,9 @@
         wasScrolledToBottom: boolean = true;
 
         private didStartWithScrollbar_: boolean = false;
-        private shouldShowV2_: boolean = loadTimeData.getBoolean(
-            'isPrivacySandboxAdsApiUxEnhancementsEnabled');
         private wasScrolledToBottomResolver_: PromiseResolver<void>;
         private moreButtonInitialized_: PromiseResolver<void>;
+        private shouldShowV2_: boolean;
 
         static get properties() {
           return {
@@ -34,9 +33,24 @@
               type: Boolean,
               observer: 'onWasScrolledToBottomChange_',
             },
+
+            /**
+             * If true, the Ads API UX Enhancement should be shown.
+             */
+            shouldShowV2_: {
+              type: Boolean,
+              value: () => {
+                return loadTimeData.getBoolean(
+                    'isPrivacySandboxAdsApiUxEnhancementsEnabled');
+              },
+            },
           };
         }
 
+        shouldShowV2(): boolean {
+          return this.shouldShowV2_;
+        }
+
         onConsentLearnMoreExpandedChanged(
             newValue: boolean, oldValue: boolean) {
           // Check both old and new value to avoid reporting actions when the
@@ -185,7 +199,7 @@
 
             const buttonRowHeight = 64;
             let lastTextElementId = '#lastTextElement';
-            if (this.shouldShowV2_ &&
+            if (this.shouldShowV2() &&
                 scrollable.querySelector('#lastTextElementV2')) {
               lastTextElementId = '#lastTextElementV2';
             }
@@ -262,6 +276,9 @@
 export interface PrivacySandboxDialogMixinInterface {
   wasScrolledToBottom: boolean;
 
+  // Returns true if the Ads API UX Enhancement should be shown.
+  shouldShowV2(): boolean;
+
   onConsentLearnMoreExpandedChanged(newValue: boolean, oldValue: boolean): void;
   onNoticeLearnMoreExpandedChanged(newValue: boolean, oldValue: boolean): void;
   onNoticeSiteSuggestedAdsLearnMoreExpandedChanged(
diff --git a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_notice_step.html b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_notice_step.html
index 4592e86a..05eb64b 100644
--- a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_notice_step.html
+++ b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_notice_step.html
@@ -21,7 +21,7 @@
         <img class="logo" alt="">
         <h1>$i18n{m1NoticeEeaTitle}</h1>
       </div>
-      <template is="dom-if" if="[[!shouldShowV2_]]">
+      <template is="dom-if" if="[[!shouldShowV2()]]">
         <div id="noticeContent">
           <div class="section cr-secondary-text">
             $i18n{m1NoticeEeaDescription1}
@@ -52,7 +52,7 @@
           </div>
         </div>
       </template>
-      <template is="dom-if" if="[[shouldShowV2_]]">
+      <template is="dom-if" if="[[shouldShowV2()]]">
         <div id="noticeContentV2">
           <div class="section cr-secondary-text">
             $i18n{m1NoticeEEADescription1V2}
@@ -105,11 +105,11 @@
     </div>
     <div class="buttons-container">
       <cr-button id="settingsButton"
-          class$="[[getSettingsButtonsClass_(shouldShowV2_)]]"
+          class$="[[getSettingsButtonsClass_()]]"
           on-click="onNoticeOpenSettings">
         $i18n{m1NoticeEeaSettingsButton}
       </cr-button>
-      <cr-button id="ackButton" class$="[[getAckButtonsClass_(shouldShowV2_)]]"
+      <cr-button id="ackButton" class$="[[getAckButtonsClass_()]]"
           on-click="onNoticeAcknowledge">
         $i18n{m1NoticeEeaAckButton}
       </cr-button>
diff --git a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_notice_step.ts b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_notice_step.ts
index a3d7857..6df0e977 100644
--- a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_notice_step.ts
+++ b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_notice_step.ts
@@ -11,7 +11,6 @@
 import './privacy_sandbox_dialog_learn_more.js';
 import './privacy_sandbox_privacy_policy_dialog.js';
 
-import {loadTimeData} from 'chrome://resources/js/load_time_data.js';
 import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
 import {PrivacySandboxDialogBrowserProxy} from './privacy_sandbox_dialog_browser_proxy.js';
@@ -64,23 +63,11 @@
         type: Boolean,
         value: false,
       },
-
-      /**
-       * If true, the Ads API UX Enhancement should be shown.
-       */
-      shouldShowV2_: {
-        type: Boolean,
-        value: () => {
-          return loadTimeData.getBoolean(
-              'isPrivacySandboxAdsApiUxEnhancementsEnabled');
-        },
-      },
     };
   }
 
   private isPrivacyPolicyLinkEnabled_: boolean;
   private hideNoticePage_: boolean;
-  private shouldShowV2_: boolean;
 
   private loadPrivacyPolicyOnExpand_(newValue: boolean, oldValue: boolean) {
     // When the expand is triggered, if the iframe hasn't been loaded yet,
@@ -114,11 +101,11 @@
   }
 
   private getSettingsButtonsClass_() {
-    return this.shouldShowV2_ ? 'tonal-button' : '';
+    return this.shouldShowV2() ? 'tonal-button' : '';
   }
 
   private getAckButtonsClass_() {
-    return this.shouldShowV2_ ? 'tonal-button' : 'action-button';
+    return this.shouldShowV2() ? 'tonal-button' : 'action-button';
   }
 }
 
diff --git a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_notice_dialog_app.html b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_notice_dialog_app.html
index 1ed48207..321738d 100644
--- a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_notice_dialog_app.html
+++ b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_notice_dialog_app.html
@@ -18,7 +18,7 @@
     <div class="section cr-secondary-text">
       $i18n{m1NoticeRowDescription3}
     </div>
-    <template is="dom-if" if="[[!shouldShowV2_]]">
+    <template is="dom-if" if="[[!shouldShowV2()]]">
       <div id="learnMoreAndLastText">
         <privacy-sandbox-dialog-learn-more class="learn-more-section"
             expanded="{{expanded_}}"
@@ -54,7 +54,7 @@
         </div>
       </div>
     </template>
-    <template is="dom-if" if="[[shouldShowV2_]]">
+    <template is="dom-if" if="[[shouldShowV2()]]">
       <div id="learnMoreAndLastTextV2">
         <privacy-sandbox-dialog-learn-more class="learn-more-section"
             expanded="{{expanded_}}"
diff --git a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_notice_dialog_app.ts b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_notice_dialog_app.ts
index e1a2810..fd392ce2 100644
--- a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_notice_dialog_app.ts
+++ b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_notice_dialog_app.ts
@@ -11,7 +11,6 @@
 import './privacy_sandbox_dialog_learn_more.js';
 import './privacy_sandbox_privacy_policy_dialog.js';
 
-import {loadTimeData} from 'chrome://resources/js/load_time_data.js';
 import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
 import {PrivacySandboxDialogBrowserProxy, PrivacySandboxPromptAction} from './privacy_sandbox_dialog_browser_proxy.js';
@@ -54,23 +53,11 @@
         type: Boolean,
         value: false,
       },
-
-      /**
-       * If true, the Ads API UX Enhancement should be shown.
-       */
-      shouldShowV2_: {
-        type: Boolean,
-        value: () => {
-          return loadTimeData.getBoolean(
-              'isPrivacySandboxAdsApiUxEnhancementsEnabled');
-        },
-      },
     };
   }
 
   private isPrivacyPolicyLinkEnabled_: boolean;
   private hideNoticePage_: boolean;
-  private shouldShowV2_: boolean;
 
   override ready() {
     super.ready();
diff --git a/chrome/browser/resources/settings/privacy_sandbox/DIR_METADATA b/chrome/browser/resources/settings/privacy_sandbox/DIR_METADATA
index 46191cc..5440eed 100644
--- a/chrome/browser/resources/settings/privacy_sandbox/DIR_METADATA
+++ b/chrome/browser/resources/settings/privacy_sandbox/DIR_METADATA
@@ -1,7 +1,7 @@
 monorail: {
-  component: "UI>Settings>Privacy"
+  component: "UI>Browser>Privacy Sandbox"
 }
-team_email: "chrome-privacy-controls@google.com"
+team_email: "koilos@google.com"
 buganizer_public: {
-  component_id: 1457044
-}
+  component_id: 1697287
+}
\ No newline at end of file
diff --git a/chrome/browser/resources/side_panel/customize_chrome/hover_button.css b/chrome/browser/resources/side_panel/customize_chrome/hover_button.css
index 62142410..e6c2593 100644
--- a/chrome/browser/resources/side_panel/customize_chrome/hover_button.css
+++ b/chrome/browser/resources/side_panel/customize_chrome/hover_button.css
@@ -15,8 +15,6 @@
   color: var(--cr-primary-text-color);
   cursor: pointer;
   display: flex;
-  font-size: 13px;
-  font-weight: 400;
   justify-content: space-between;
   line-height: 16px;
   margin-top: 8px;
diff --git a/chrome/browser/resources/tab_search/declutter/declutter_page.html.ts b/chrome/browser/resources/tab_search/declutter/declutter_page.html.ts
index a4d16794..dcd7fc8 100644
--- a/chrome/browser/resources/tab_search/declutter/declutter_page.html.ts
+++ b/chrome/browser/resources/tab_search/declutter/declutter_page.html.ts
@@ -44,7 +44,10 @@
           html`
       <div class="empty-content">
         <div class="empty-title">$i18n{declutterEmptyTitle}</div>
-        <div class="empty-subheading">$i18n{declutterEmptyBody}</div>
+        <div class="empty-subheading">${
+              this.dedupeEnabled ?
+                  html`$i18n{declutterEmptyBody}` :
+                  html`$i18n{declutterEmptyBodyNoDedupe}`}</div>
       </div>
     ` :
           html`
diff --git a/chrome/browser/resources/tab_search/tab_organization_selector.ts b/chrome/browser/resources/tab_search/tab_organization_selector.ts
index 0ebee10f..265af09 100644
--- a/chrome/browser/resources/tab_search/tab_organization_selector.ts
+++ b/chrome/browser/resources/tab_search/tab_organization_selector.ts
@@ -4,8 +4,10 @@
 
 import './auto_tab_groups/auto_tab_groups_page.js';
 import './declutter/declutter_page.js';
+import '/strings.m.js';
 import './tab_organization_selector_button.js';
 
+import {loadTimeData} from 'chrome://resources/js/load_time_data.js';
 import {PluralStringProxyImpl} from 'chrome://resources/js/plural_string_proxy.js';
 import type {PropertyValues} from 'chrome://resources/lit/v3_0/lit.rollup.js';
 import {CrLitElement} from 'chrome://resources/lit/v3_0/lit.rollup.js';
@@ -47,6 +49,7 @@
       disableDeclutter_: {type: Boolean},
       selectedState_: {type: Number},
       prevSelectedState_: {type: Number},
+      dedupeEnabled_: {type: Boolean},
     };
   }
 
@@ -61,6 +64,7 @@
   private apiProxy_: TabSearchApiProxy = TabSearchApiProxyImpl.getInstance();
   private listenerIds_: number[] = [];
   private visibilityChangedListener_: () => void;
+  private dedupeEnabled_: boolean = loadTimeData.getBoolean('dedupeEnabled');
 
   constructor() {
     super();
@@ -180,7 +184,9 @@
     this.disableDeclutter_ = declutterTabCount === 0;
     this.declutterHeading_ =
         await PluralStringProxyImpl.getInstance().getPluralString(
-            'declutterSelectorHeading', declutterTabCount);
+            this.dedupeEnabled_ ? 'declutterSelectorHeading' :
+                                  'declutterSelectorHeadingNoDedupe',
+            declutterTabCount);
   }
 
   private updateSelectedFeature_(feature: TabOrganizationFeature) {
diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsing/BUILD.gn
index e75f7bc..7ef4e3af 100644
--- a/chrome/browser/safe_browsing/BUILD.gn
+++ b/chrome/browser/safe_browsing/BUILD.gn
@@ -176,6 +176,7 @@
       "//build:branding_buildflags",
       "//build:chromeos_buildflags",
       "//chrome/browser:browser_process",
+      "//chrome/browser/content_extraction:content_extraction",
       "//chrome/browser/content_settings:content_settings_factory",
       "//chrome/browser/download",
       "//chrome/browser/profiles:profile",
diff --git a/chrome/browser/safe_browsing/chrome_client_side_detection_host_delegate.cc b/chrome/browser/safe_browsing/chrome_client_side_detection_host_delegate.cc
index e1324c4c..0758bdd 100644
--- a/chrome/browser/safe_browsing/chrome_client_side_detection_host_delegate.cc
+++ b/chrome/browser/safe_browsing/chrome_client_side_detection_host_delegate.cc
@@ -146,4 +146,18 @@
   return ::safe_browsing::GetUserPopulationForProfile(profile);
 }
 
+void ChromeClientSideDetectionHostDelegate::GetInnerText(
+    HostInnerTextCallback callback) {
+  content_extraction::GetInnerText(
+      *web_contents_->GetPrimaryMainFrame(), std::nullopt,
+      base::BindOnce(&ChromeClientSideDetectionHostDelegate::OnInnerTextResult,
+                     weak_factory_.GetWeakPtr(), std::move(callback)));
+}
+
+void ChromeClientSideDetectionHostDelegate::OnInnerTextResult(
+    HostInnerTextCallback callback,
+    std::unique_ptr<content_extraction::InnerTextResult> result) {
+  std::move(callback).Run(result ? result->inner_text : "");
+}
+
 }  // namespace safe_browsing
diff --git a/chrome/browser/safe_browsing/chrome_client_side_detection_host_delegate.h b/chrome/browser/safe_browsing/chrome_client_side_detection_host_delegate.h
index 6c59e3c2..86f268d6 100644
--- a/chrome/browser/safe_browsing/chrome_client_side_detection_host_delegate.h
+++ b/chrome/browser/safe_browsing/chrome_client_side_detection_host_delegate.h
@@ -6,6 +6,7 @@
 #define CHROME_BROWSER_SAFE_BROWSING_CHROME_CLIENT_SIDE_DETECTION_HOST_DELEGATE_H_
 
 #include "base/memory/raw_ptr.h"
+#include "chrome/browser/content_extraction/inner_text.h"
 #include "components/safe_browsing/content/browser/client_side_detection_host.h"
 #include "components/safe_browsing/content/browser/safe_browsing_navigation_observer_manager.h"
 #include "content/public/browser/global_routing_id.h"
@@ -44,6 +45,7 @@
                             current_outermost_main_frame_id) override;
   VerdictCacheManager* GetCacheManager() override;
   ChromeUserPopulation GetUserPopulation() override;
+  void GetInnerText(HostInnerTextCallback callback) override;
 
   void SetNavigationObserverManagerForTesting(
       SafeBrowsingNavigationObserverManager* navigation_observer_manager) {
@@ -57,9 +59,14 @@
       SafeBrowsingNavigationObserverManager::AttributionResult result);
 
  private:
+  void OnInnerTextResult(
+      HostInnerTextCallback callback,
+      std::unique_ptr<content_extraction::InnerTextResult> result);
   raw_ptr<content::WebContents> web_contents_;
   raw_ptr<SafeBrowsingNavigationObserverManager> observer_manager_for_testing_ =
       nullptr;
+  base::WeakPtrFactory<ChromeClientSideDetectionHostDelegate> weak_factory_{
+      this};
 };
 
 }  // namespace safe_browsing
diff --git a/chrome/browser/safe_browsing/chrome_client_side_detection_service_delegate.cc b/chrome/browser/safe_browsing/chrome_client_side_detection_service_delegate.cc
index 076ab3b7..2ebd443 100644
--- a/chrome/browser/safe_browsing/chrome_client_side_detection_service_delegate.cc
+++ b/chrome/browser/safe_browsing/chrome_client_side_detection_service_delegate.cc
@@ -28,6 +28,11 @@
     });
 }  // namespace
 
+void LogOnDeviceModelDownloadSuccess(bool success) {
+  base::UmaHistogramBoolean("SBClientPhishing.OnDeviceModelDownloadSuccess",
+                            success);
+}
+
 namespace safe_browsing {
 
 ChromeClientSideDetectionServiceDelegate::
@@ -78,17 +83,17 @@
     return;
   }
 
-  optimization_guide::OnDeviceModelEligibilityReason reason;
-  bool can_create = opt_guide->CanCreateOnDeviceSession(
-      optimization_guide::ModelBasedCapabilityKey::kScamDetection, &reason);
+  using ::optimization_guide::SessionConfigParams;
+  SessionConfigParams config_params = SessionConfigParams{
+      .execution_mode = SessionConfigParams::ExecutionMode::kOnDeviceOnly,
+  };
 
-  if (!kWaitableReasons.contains(reason)) {
-    base::UmaHistogramBoolean("SBClientPhishing.OnDeviceModelDownloadSuccess",
-                              false);
-    return;
-  }
+  std::unique_ptr<optimization_guide::OptimizationGuideModelExecutor::Session>
+      session = opt_guide->StartSession(
+          optimization_guide::ModelBasedCapabilityKey::kScamDetection,
+          config_params);
 
-  if (can_create) {
+  if (session) {
     NotifyServiceOnDeviceModelAvailable();
   } else {
     observing_on_device_model_availability_ = true;
@@ -134,15 +139,13 @@
         base::TimeTicks::Now() - on_device_fetch_time_);
     NotifyServiceOnDeviceModelAvailable();
   } else {
-    base::UmaHistogramBoolean("SBClientPhishing.OnDeviceModelDownloadSuccess",
-                              false);
+    LogOnDeviceModelDownloadSuccess(false);
   }
 }
 
 void ChromeClientSideDetectionServiceDelegate::
     NotifyServiceOnDeviceModelAvailable() {
-  base::UmaHistogramBoolean("SBClientPhishing.OnDeviceModelDownloadSuccess",
-                            true);
+  LogOnDeviceModelDownloadSuccess(true);
   ClientSideDetectionService* csd_service =
       ClientSideDetectionServiceFactory::GetForProfile(profile_);
   // This can be null in unit tests.
@@ -151,4 +154,28 @@
   }
 }
 
+std::unique_ptr<optimization_guide::OptimizationGuideModelExecutor::Session>
+ChromeClientSideDetectionServiceDelegate::GetModelExecutorSession() {
+  if (!observing_on_device_model_availability_) {
+    return nullptr;
+  }
+
+  auto* opt_guide =
+      OptimizationGuideKeyedServiceFactory::GetForProfile(profile_);
+
+  if (!opt_guide) {
+    return nullptr;
+  }
+
+  using ::optimization_guide::SessionConfigParams;
+  SessionConfigParams config_params = SessionConfigParams{
+      .execution_mode = SessionConfigParams::ExecutionMode::kOnDeviceOnly,
+      .logging_mode = SessionConfigParams::LoggingMode::kDefault,
+  };
+
+  return opt_guide->StartSession(
+      optimization_guide::ModelBasedCapabilityKey::kScamDetection,
+      config_params);
+}
+
 }  // namespace safe_browsing
diff --git a/chrome/browser/safe_browsing/chrome_client_side_detection_service_delegate.h b/chrome/browser/safe_browsing/chrome_client_side_detection_service_delegate.h
index 38a58c8..16e71c9 100644
--- a/chrome/browser/safe_browsing/chrome_client_side_detection_service_delegate.h
+++ b/chrome/browser/safe_browsing/chrome_client_side_detection_service_delegate.h
@@ -43,6 +43,8 @@
       content::BrowserContext* context) override;
   void StartListeningToOnDeviceModelUpdate() override;
   void StopListeningToOnDeviceModelUpdate() override;
+  std::unique_ptr<optimization_guide::OptimizationGuideModelExecutor::Session>
+  GetModelExecutorSession() override;
 
  private:
   // optimization_guide::OnDeviceModelAvailabilityObserver
diff --git a/chrome/browser/safe_browsing/client_side_detection_host_browsertest.cc b/chrome/browser/safe_browsing/client_side_detection_host_browsertest.cc
index 1889755..bc96be8 100644
--- a/chrome/browser/safe_browsing/client_side_detection_host_browsertest.cc
+++ b/chrome/browser/safe_browsing/client_side_detection_host_browsertest.cc
@@ -62,6 +62,10 @@
   }
   void StartListeningToOnDeviceModelUpdate() override { return; }
   void StopListeningToOnDeviceModelUpdate() override { return; }
+  std::unique_ptr<optimization_guide::OptimizationGuideModelExecutor::Session>
+  GetModelExecutorSession() override {
+    return nullptr;
+  }
 };
 
 class FakeClientSideDetectionService : public ClientSideDetectionService {
diff --git a/chrome/browser/safe_browsing/client_side_detection_host_unittest.cc b/chrome/browser/safe_browsing/client_side_detection_host_unittest.cc
index 313bd13..80843e4 100644
--- a/chrome/browser/safe_browsing/client_side_detection_host_unittest.cc
+++ b/chrome/browser/safe_browsing/client_side_detection_host_unittest.cc
@@ -163,6 +163,13 @@
   MOCK_METHOD0(GetModelSharedMemoryRegion, base::ReadOnlySharedMemoryRegion());
   MOCK_METHOD0(GetModelType, CSDModelType());
   MOCK_METHOD0(IsModelAvailable, bool());
+  MOCK_METHOD(
+      void,
+      InquireOnDeviceModel,
+      (ClientPhishingRequest*,
+       std::string,
+       base::OnceCallback<void(
+           std::optional<optimization_guide::proto::ScamDetectionResponse>)>));
 };
 
 class MockSafeBrowsingUIManager : public SafeBrowsingUIManager {
@@ -2176,4 +2183,117 @@
   fake_phishing_detector_.CheckMessage(&url);
 }
 
+class ClientSideDetectionHostScamDetectionTest
+    : public ClientSideDetectionHostTest {
+ public:
+  ClientSideDetectionHostScamDetectionTest() = default;
+
+  void SetUp() override {
+    ClientSideDetectionHostTest::SetUp();
+
+    SetEnhancedProtectionPrefForTests(profile()->GetPrefs(), true);
+    SetFeatures({kClientSideDetectionBrandAndIntentForScamDetection}, {});
+  }
+
+  void PhishingDetectionDone(mojo_base::ProtoWrapper verdict,
+                             ClientSideDetectionType type) {
+    csd_host_->PhishingDetectionDone(
+        type,
+        /*is_sample_ping=*/false, /*did_match_high_confidence_allowlist=*/false,
+        mojom::PhishingDetectorResult::SUCCESS, std::move(verdict));
+  }
+};
+
+TEST_F(ClientSideDetectionHostScamDetectionTest,
+       KeyboardLockRequestTriggersOnDeviceLLM) {
+  if (base::FeatureList::IsEnabled(kClientSideDetectionKillswitch)) {
+    GTEST_SKIP();
+  }
+
+  base::HistogramTester histogram_tester;
+
+  // Although the score is not phishy at all, we will still inquire the
+  // on-device model.
+  ClientPhishingRequest verdict;
+  verdict.set_url("http://example.com/");
+  verdict.set_client_score(0.0f);
+  verdict.set_is_phishing(false);
+
+  base::RunLoop run_loop_for_inquire_on_device_model;
+
+  // Because the client side detection type is KEYBOARD_LOCK_REQUESTED, we will
+  // call to inquire the on-device model.
+  EXPECT_CALL(*csd_service_, InquireOnDeviceModel(_, _, _))
+      .WillOnce(testing::Invoke(
+          [&](ClientPhishingRequest* verdict, std::string rendered_text,
+              base::OnceCallback<void(
+                  std::optional<
+                      optimization_guide::proto::ScamDetectionResponse>)>
+                  callback) {
+            run_loop_for_inquire_on_device_model.Quit();
+            std::move(callback).Run(std::nullopt);
+          }));
+
+  // We can expect the token fetcher to occur as usual because the ESB
+  // preference is enabled.
+  EXPECT_CALL(*csd_service_, SendClientReportPhishingRequest(
+                                 PartiallyEqualVerdict(verdict), _,
+                                 "fake_access_token_keyboard_lock"));
+
+  SafeBrowsingTokenFetcher::Callback cb;
+  EXPECT_CALL(*raw_token_fetcher_, Start(_)).WillOnce(MoveArg<0>(&cb));
+
+  PhishingDetectionDone(mojo_base::ProtoWrapper(verdict),
+                        ClientSideDetectionType::KEYBOARD_LOCK_REQUESTED);
+
+  // First run the inquire on device function.
+  run_loop_for_inquire_on_device_model.Run();
+  // Token fetcher will run afterwards.
+  EXPECT_TRUE(Mock::VerifyAndClear(raw_token_fetcher_));
+
+  ASSERT_FALSE(cb.is_null());
+  std::move(cb).Run("fake_access_token_keyboard_lock");
+
+  EXPECT_TRUE(Mock::VerifyAndClear(csd_host_.get()));
+  EXPECT_TRUE(Mock::VerifyAndClear(csd_service_.get()));
+}
+
+TEST_F(ClientSideDetectionHostScamDetectionTest,
+       NonKeyboardLockRequestDoesNotTriggersOnDeviceLLM) {
+  if (base::FeatureList::IsEnabled(kClientSideDetectionKillswitch)) {
+    GTEST_SKIP();
+  }
+
+  base::HistogramTester histogram_tester;
+
+  ClientPhishingRequest verdict;
+  verdict.set_url("http://example.com/");
+  verdict.set_client_score(0.0f);
+  verdict.set_is_phishing(false);
+
+  // Because the client side detection type is POINTER_LOCK_REQUESTED, we will
+  // NOT inquire the on-device model.
+  EXPECT_CALL(*csd_service_, InquireOnDeviceModel(_, _, _)).Times(0);
+
+  // We can expect the token fetcher to occur as usual because ESB preference is
+  // enabled.
+  EXPECT_CALL(*csd_service_, SendClientReportPhishingRequest(
+                                 PartiallyEqualVerdict(verdict), _,
+                                 "fake_access_token_pointer_lock"));
+
+  SafeBrowsingTokenFetcher::Callback cb;
+  EXPECT_CALL(*raw_token_fetcher_, Start(_)).WillOnce(MoveArg<0>(&cb));
+
+  PhishingDetectionDone(mojo_base::ProtoWrapper(verdict),
+                        ClientSideDetectionType::POINTER_LOCK_REQUESTED);
+
+  EXPECT_TRUE(Mock::VerifyAndClear(raw_token_fetcher_));
+
+  ASSERT_FALSE(cb.is_null());
+  std::move(cb).Run("fake_access_token_pointer_lock");
+
+  EXPECT_TRUE(Mock::VerifyAndClear(csd_host_.get()));
+  EXPECT_TRUE(Mock::VerifyAndClear(csd_service_.get()));
+}
+
 }  // namespace safe_browsing
diff --git a/chrome/browser/safe_browsing/client_side_detection_service_unittest.cc b/chrome/browser/safe_browsing/client_side_detection_service_unittest.cc
index 7dae338..2899b58 100644
--- a/chrome/browser/safe_browsing/client_side_detection_service_unittest.cc
+++ b/chrome/browser/safe_browsing/client_side_detection_service_unittest.cc
@@ -25,6 +25,7 @@
 #include "base/test/bind.h"
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/scoped_feature_list.h"
+#include "base/test/test_future.h"
 #include "base/time/time.h"
 #include "build/chromeos_buildflags.h"
 #include "chrome/browser/optimization_guide/mock_optimization_guide_keyed_service.h"
@@ -32,8 +33,12 @@
 #include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chrome/test/base/testing_profile_manager.h"
+#include "components/optimization_guide/core/mock_optimization_guide_model_executor.h"
+#include "components/optimization_guide/core/optimization_guide_model_executor.h"
+#include "components/optimization_guide/core/optimization_guide_proto_util.h"
 #include "components/optimization_guide/core/test_model_info_builder.h"
 #include "components/optimization_guide/core/test_optimization_guide_model_provider.h"
+#include "components/optimization_guide/proto/features/scam_detection.pb.h"
 #include "components/safe_browsing/core/common/features.h"
 #include "components/safe_browsing/core/common/proto/client_model.pb.h"
 #include "components/safe_browsing/core/common/proto/csd.pb.h"
@@ -55,9 +60,15 @@
 #endif
 
 using content::BrowserThread;
+using ::optimization_guide::AnyWrapProto;
+using ::optimization_guide::MockSession;
+using ::optimization_guide::OptimizationGuideModelExecutionError;
+using ::optimization_guide::OptimizationGuideModelStreamingExecutionResult;
+using ::optimization_guide::proto::ScamDetectionResponse;
 using ::testing::_;
 using ::testing::Invoke;
 using ::testing::Mock;
+using ::testing::NiceMock;
 using ::testing::StrictMock;
 
 namespace safe_browsing {
@@ -297,6 +308,17 @@
                     })));
   }
 
+  optimization_guide::StreamingResponse CreateScamDetectionResponse(
+      const std::string& brand,
+      const std::string& intent,
+      bool is_complete) {
+    ScamDetectionResponse response;
+    response.set_brand(brand);
+    response.set_intent(intent);
+    return optimization_guide::StreamingResponse{
+        .response = AnyWrapProto(response), .is_complete = is_complete};
+  }
+
  protected:
   content::BrowserTaskEnvironment task_environment_;
   TestingProfileManager profile_manager_;
@@ -311,6 +333,7 @@
       model_observer_tracker_;
   raw_ptr<MockOptimizationGuideKeyedService>
       mock_optimization_guide_keyed_service_;
+  testing::NiceMock<MockSession> session_;
 
  private:
   void SendRequestDone(base::OnceClosure continuation_callback,
@@ -717,18 +740,11 @@
 
   // When the Enhanced Safe Browsing protection setting is enabled, the next to
   // functions will call from the delegate.
-  EXPECT_CALL(*mock_optimization_guide_keyed_service_,
-              CanCreateOnDeviceSession(_, _))
-      .WillOnce(testing::Invoke(
+  EXPECT_CALL(*mock_optimization_guide_keyed_service_, StartSession(_, _))
+      .WillOnce(
           [&](optimization_guide::ModelBasedCapabilityKey feature,
-              raw_ptr<optimization_guide::OnDeviceModelEligibilityReason>
-                  debug_reason) {
-            // Setting kConfigNotAvailableForFeature should trigger a retry and
-            // allow the delegate to start waiting.
-            *debug_reason = optimization_guide::OnDeviceModelEligibilityReason::
-                kConfigNotAvailableForFeature;
-            return false;
-          }));
+              const std::optional<optimization_guide::SessionConfigParams>&
+                  config_params) { return nullptr; });
 
   optimization_guide::OnDeviceModelAvailabilityObserver* availability_observer =
       nullptr;
@@ -784,17 +800,23 @@
 
   SetupMockOptimizationGuideKeyedService();
 
+  EXPECT_CALL(*mock_optimization_guide_keyed_service_, StartSession(_, _))
+      .WillOnce(
+          [&](optimization_guide::ModelBasedCapabilityKey feature,
+              const std::optional<optimization_guide::SessionConfigParams>&
+                  config_params) { return nullptr; });
+
+  optimization_guide::OnDeviceModelAvailabilityObserver* availability_observer =
+      nullptr;
+
+  base::RunLoop run_loop_for_add_observer;
   EXPECT_CALL(*mock_optimization_guide_keyed_service_,
-              CanCreateOnDeviceSession(_, _))
+              AddOnDeviceModelAvailabilityChangeObserver(_, _))
       .WillOnce(testing::Invoke(
           [&](optimization_guide::ModelBasedCapabilityKey feature,
-              raw_ptr<optimization_guide::OnDeviceModelEligibilityReason>
-                  debug_reason) {
-            // Setting kTooManyRecentCrashes will not trigger a retry and the
-            // delegate will not wait as a result.
-            *debug_reason = optimization_guide::OnDeviceModelEligibilityReason::
-                kTooManyRecentCrashes;
-            return false;
+              optimization_guide::OnDeviceModelAvailabilityObserver* observer) {
+            availability_observer = observer;
+            run_loop_for_add_observer.Quit();
           }));
 
   histogram_tester.ExpectUniqueSample(
@@ -802,8 +824,558 @@
 
   profile_->GetPrefs()->SetBoolean(prefs::kSafeBrowsingEnhanced, true);
 
+  // Now that the delegate is observing, send `kTooManyRecentCrashes`
+  // to the observer, which is not a waitable reason.
+  availability_observer->OnDeviceModelAvailabilityChanged(
+      optimization_guide::ModelBasedCapabilityKey::kScamDetection,
+      optimization_guide::OnDeviceModelEligibilityReason::
+          kTooManyRecentCrashes);
+
   histogram_tester.ExpectUniqueSample(
       "SBClientPhishing.OnDeviceModelDownloadSuccess", false, 1);
 }
 
+TEST_P(ClientSideDetectionServiceTest, TestSessionCreationFailure) {
+  if (!base::FeatureList::IsEnabled(
+          kClientSideDetectionBrandAndIntentForScamDetection)) {
+    return;
+  }
+
+  base::HistogramTester histogram_tester;
+
+  csd_service_ = std::make_unique<ClientSideDetectionService>(
+      std::make_unique<ChromeClientSideDetectionServiceDelegate>(profile_),
+      model_observer_tracker_.get());
+
+  profile_->GetPrefs()->SetBoolean(prefs::kSafeBrowsingEnabled, true);
+
+  SetupMockOptimizationGuideKeyedService();
+
+  // When the Enhanced Safe Browsing protection setting is enabled, the next to
+  // functions will call from the delegate.
+  EXPECT_CALL(*mock_optimization_guide_keyed_service_, StartSession(_, _))
+      .WillOnce(
+          [&](optimization_guide::ModelBasedCapabilityKey feature,
+              const std::optional<optimization_guide::SessionConfigParams>&
+                  config_params) { return nullptr; });
+
+  optimization_guide::OnDeviceModelAvailabilityObserver* availability_observer =
+      nullptr;
+  base::RunLoop run_loop_for_add_observer;
+  EXPECT_CALL(*mock_optimization_guide_keyed_service_,
+              AddOnDeviceModelAvailabilityChangeObserver(_, _))
+      .WillOnce(testing::Invoke(
+          [&](optimization_guide::ModelBasedCapabilityKey feature,
+              optimization_guide::OnDeviceModelAvailabilityObserver* observer) {
+            availability_observer = observer;
+            run_loop_for_add_observer.Quit();
+          }));
+
+  profile_->GetPrefs()->SetBoolean(prefs::kSafeBrowsingEnhanced, true);
+
+  run_loop_for_add_observer.Run();
+  CHECK(availability_observer);
+
+  // Now that the delegate is observing, send `kConfigNotAvailableForFeature`
+  // first to the observer, which will not stop the observing.
+  availability_observer->OnDeviceModelAvailabilityChanged(
+      optimization_guide::ModelBasedCapabilityKey::kScamDetection,
+      optimization_guide::OnDeviceModelEligibilityReason::
+          kConfigNotAvailableForFeature);
+
+  histogram_tester.ExpectUniqueSample(
+      "SBClientPhishing.OnDeviceModelDownloadSuccess", true, 0);
+
+  // And then send `kSuccess` to the observer, which will log the histogram.
+  availability_observer->OnDeviceModelAvailabilityChanged(
+      optimization_guide::ModelBasedCapabilityKey::kScamDetection,
+      optimization_guide::OnDeviceModelEligibilityReason::kSuccess);
+
+  histogram_tester.ExpectUniqueSample(
+      "SBClientPhishing.OnDeviceModelDownloadSuccess", true, 1);
+  histogram_tester.ExpectTotalCount("SBClientPhishing.OnDeviceModelFetchTime",
+                                    1);
+
+  EXPECT_CALL(*mock_optimization_guide_keyed_service_, StartSession(_, _))
+      .WillOnce(
+          [&](optimization_guide::ModelBasedCapabilityKey feature,
+              const std::optional<optimization_guide::SessionConfigParams>&
+                  config_params) { return nullptr; });
+
+  csd_service_->SetOnDeviceAvailabilityForTesting(true);
+
+  ClientPhishingRequest verdict;
+  base::test::TestFuture<std::optional<ScamDetectionResponse>> future;
+  csd_service_->InquireOnDeviceModel(&verdict, "", future.GetCallback());
+
+  histogram_tester.ExpectTotalCount(
+      "SBClientPhishing.OnDeviceModelSessionCreationTime", 0);
+}
+
+TEST_P(ClientSideDetectionServiceTest, TestSessionCreationSuccess) {
+  if (!base::FeatureList::IsEnabled(
+          kClientSideDetectionBrandAndIntentForScamDetection)) {
+    return;
+  }
+
+  base::HistogramTester histogram_tester;
+
+  csd_service_ = std::make_unique<ClientSideDetectionService>(
+      std::make_unique<ChromeClientSideDetectionServiceDelegate>(profile_),
+      model_observer_tracker_.get());
+
+  profile_->GetPrefs()->SetBoolean(prefs::kSafeBrowsingEnabled, true);
+
+  SetupMockOptimizationGuideKeyedService();
+
+  EXPECT_CALL(*mock_optimization_guide_keyed_service_, StartSession(_, _))
+      .WillOnce(
+          [&](optimization_guide::ModelBasedCapabilityKey feature,
+              const std::optional<optimization_guide::SessionConfigParams>&
+                  config_params) { return nullptr; });
+
+  optimization_guide::OnDeviceModelAvailabilityObserver* availability_observer =
+      nullptr;
+  base::RunLoop run_loop_for_add_observer;
+  EXPECT_CALL(*mock_optimization_guide_keyed_service_,
+              AddOnDeviceModelAvailabilityChangeObserver(_, _))
+      .WillOnce(testing::Invoke(
+          [&](optimization_guide::ModelBasedCapabilityKey feature,
+              optimization_guide::OnDeviceModelAvailabilityObserver* observer) {
+            availability_observer = observer;
+            run_loop_for_add_observer.Quit();
+          }));
+
+  profile_->GetPrefs()->SetBoolean(prefs::kSafeBrowsingEnhanced, true);
+
+  run_loop_for_add_observer.Run();
+  CHECK(availability_observer);
+
+  // Now that the delegate is observing, send `kConfigNotAvailableForFeature`
+  // first to the observer, which will not stop the observing.
+  availability_observer->OnDeviceModelAvailabilityChanged(
+      optimization_guide::ModelBasedCapabilityKey::kScamDetection,
+      optimization_guide::OnDeviceModelEligibilityReason::
+          kConfigNotAvailableForFeature);
+
+  histogram_tester.ExpectUniqueSample(
+      "SBClientPhishing.OnDeviceModelDownloadSuccess", true, 0);
+
+  // And then send `kSuccess` to the observer, which will log the histogram.
+  availability_observer->OnDeviceModelAvailabilityChanged(
+      optimization_guide::ModelBasedCapabilityKey::kScamDetection,
+      optimization_guide::OnDeviceModelEligibilityReason::kSuccess);
+
+  histogram_tester.ExpectUniqueSample(
+      "SBClientPhishing.OnDeviceModelDownloadSuccess", true, 1);
+  histogram_tester.ExpectTotalCount("SBClientPhishing.OnDeviceModelFetchTime",
+                                    1);
+
+  EXPECT_CALL(*mock_optimization_guide_keyed_service_, StartSession(_, _))
+      .WillOnce(testing::Invoke(
+          [&](optimization_guide::ModelBasedCapabilityKey feature,
+              const std::optional<optimization_guide::SessionConfigParams>&
+                  config_params) {
+            return std::make_unique<NiceMock<MockSession>>(&session_);
+          }));
+
+  csd_service_->SetOnDeviceAvailabilityForTesting(true);
+
+  ClientPhishingRequest verdict;
+  base::test::TestFuture<std::optional<ScamDetectionResponse>> future;
+  csd_service_->InquireOnDeviceModel(&verdict, "", future.GetCallback());
+
+  histogram_tester.ExpectTotalCount(
+      "SBClientPhishing.OnDeviceModelSessionCreationTime", 1);
+}
+
+TEST_P(ClientSideDetectionServiceTest, TestSessionExecutionFailure) {
+  if (!base::FeatureList::IsEnabled(
+          kClientSideDetectionBrandAndIntentForScamDetection)) {
+    return;
+  }
+
+  base::HistogramTester histogram_tester;
+
+  csd_service_ = std::make_unique<ClientSideDetectionService>(
+      std::make_unique<ChromeClientSideDetectionServiceDelegate>(profile_),
+      model_observer_tracker_.get());
+
+  profile_->GetPrefs()->SetBoolean(prefs::kSafeBrowsingEnabled, true);
+
+  SetupMockOptimizationGuideKeyedService();
+
+  EXPECT_CALL(*mock_optimization_guide_keyed_service_, StartSession(_, _))
+      .WillOnce(
+          [&](optimization_guide::ModelBasedCapabilityKey feature,
+              const std::optional<optimization_guide::SessionConfigParams>&
+                  config_params) { return nullptr; });
+
+  optimization_guide::OnDeviceModelAvailabilityObserver* availability_observer =
+      nullptr;
+  base::RunLoop run_loop_for_add_observer;
+  EXPECT_CALL(*mock_optimization_guide_keyed_service_,
+              AddOnDeviceModelAvailabilityChangeObserver(_, _))
+      .WillOnce(testing::Invoke(
+          [&](optimization_guide::ModelBasedCapabilityKey feature,
+              optimization_guide::OnDeviceModelAvailabilityObserver* observer) {
+            availability_observer = observer;
+            run_loop_for_add_observer.Quit();
+          }));
+
+  profile_->GetPrefs()->SetBoolean(prefs::kSafeBrowsingEnhanced, true);
+
+  run_loop_for_add_observer.Run();
+  CHECK(availability_observer);
+
+  // Now that the delegate is observing, send `kConfigNotAvailableForFeature`
+  // first to the observer, which will not stop the observing.
+  availability_observer->OnDeviceModelAvailabilityChanged(
+      optimization_guide::ModelBasedCapabilityKey::kScamDetection,
+      optimization_guide::OnDeviceModelEligibilityReason::
+          kConfigNotAvailableForFeature);
+
+  histogram_tester.ExpectUniqueSample(
+      "SBClientPhishing.OnDeviceModelDownloadSuccess", true, 0);
+
+  // And then send `kSuccess` to the observer, which will log the histogram.
+  availability_observer->OnDeviceModelAvailabilityChanged(
+      optimization_guide::ModelBasedCapabilityKey::kScamDetection,
+      optimization_guide::OnDeviceModelEligibilityReason::kSuccess);
+
+  histogram_tester.ExpectUniqueSample(
+      "SBClientPhishing.OnDeviceModelDownloadSuccess", true, 1);
+  histogram_tester.ExpectTotalCount("SBClientPhishing.OnDeviceModelFetchTime",
+                                    1);
+
+  EXPECT_CALL(*mock_optimization_guide_keyed_service_, StartSession(_, _))
+      .WillOnce(testing::Invoke(
+          [&](optimization_guide::ModelBasedCapabilityKey feature,
+              const std::optional<optimization_guide::SessionConfigParams>&
+                  config_params) {
+            return std::make_unique<NiceMock<MockSession>>(&session_);
+          }));
+
+  EXPECT_CALL(session_, ExecuteModel(_, _))
+      .WillOnce(testing::WithArg<1>(testing::Invoke(
+          [&](optimization_guide::
+                  OptimizationGuideModelExecutionResultStreamingCallback
+                      callback) {
+            callback.Run(OptimizationGuideModelStreamingExecutionResult(
+                base::unexpected(
+                    OptimizationGuideModelExecutionError::
+                        FromModelExecutionError(
+                            OptimizationGuideModelExecutionError::
+                                ModelExecutionError::kGenericFailure)),
+                /*provided_by_on_device=*/true, nullptr));
+          })));
+
+  csd_service_->SetOnDeviceAvailabilityForTesting(true);
+
+  ClientPhishingRequest verdict;
+  base::test::TestFuture<std::optional<ScamDetectionResponse>> future;
+  csd_service_->InquireOnDeviceModel(&verdict, "", future.GetCallback());
+
+  histogram_tester.ExpectTotalCount(
+      "SBClientPhishing.OnDeviceModelSessionCreationTime", 1);
+  histogram_tester.ExpectTotalCount(
+      "SBClientPhishing.OnDeviceModelExecutionDuration", 1);
+  histogram_tester.ExpectUniqueSample(
+      "SBClientPhishing.OnDeviceModelExecutionSuccess", false, 1);
+}
+
+TEST_P(ClientSideDetectionServiceTest,
+       TestSessionExecutionSuccessButNotComplete) {
+  if (!base::FeatureList::IsEnabled(
+          kClientSideDetectionBrandAndIntentForScamDetection)) {
+    return;
+  }
+
+  base::HistogramTester histogram_tester;
+
+  csd_service_ = std::make_unique<ClientSideDetectionService>(
+      std::make_unique<ChromeClientSideDetectionServiceDelegate>(profile_),
+      model_observer_tracker_.get());
+
+  profile_->GetPrefs()->SetBoolean(prefs::kSafeBrowsingEnabled, true);
+
+  SetupMockOptimizationGuideKeyedService();
+
+  EXPECT_CALL(*mock_optimization_guide_keyed_service_, StartSession(_, _))
+      .WillOnce(
+          [&](optimization_guide::ModelBasedCapabilityKey feature,
+              const std::optional<optimization_guide::SessionConfigParams>&
+                  config_params) { return nullptr; });
+
+  optimization_guide::OnDeviceModelAvailabilityObserver* availability_observer =
+      nullptr;
+  base::RunLoop run_loop_for_add_observer;
+  EXPECT_CALL(*mock_optimization_guide_keyed_service_,
+              AddOnDeviceModelAvailabilityChangeObserver(_, _))
+      .WillOnce(testing::Invoke(
+          [&](optimization_guide::ModelBasedCapabilityKey feature,
+              optimization_guide::OnDeviceModelAvailabilityObserver* observer) {
+            availability_observer = observer;
+            run_loop_for_add_observer.Quit();
+          }));
+
+  profile_->GetPrefs()->SetBoolean(prefs::kSafeBrowsingEnhanced, true);
+
+  run_loop_for_add_observer.Run();
+  CHECK(availability_observer);
+
+  // Now that the delegate is observing, send `kConfigNotAvailableForFeature`
+  // first to the observer, which will not stop the observing.
+  availability_observer->OnDeviceModelAvailabilityChanged(
+      optimization_guide::ModelBasedCapabilityKey::kScamDetection,
+      optimization_guide::OnDeviceModelEligibilityReason::
+          kConfigNotAvailableForFeature);
+
+  histogram_tester.ExpectUniqueSample(
+      "SBClientPhishing.OnDeviceModelDownloadSuccess", true, 0);
+
+  // And then send `kSuccess` to the observer, which will log the histogram.
+  availability_observer->OnDeviceModelAvailabilityChanged(
+      optimization_guide::ModelBasedCapabilityKey::kScamDetection,
+      optimization_guide::OnDeviceModelEligibilityReason::kSuccess);
+
+  histogram_tester.ExpectUniqueSample(
+      "SBClientPhishing.OnDeviceModelDownloadSuccess", true, 1);
+  histogram_tester.ExpectTotalCount("SBClientPhishing.OnDeviceModelFetchTime",
+                                    1);
+
+  EXPECT_CALL(*mock_optimization_guide_keyed_service_, StartSession(_, _))
+      .WillOnce(testing::Invoke(
+          [&](optimization_guide::ModelBasedCapabilityKey feature,
+              const std::optional<optimization_guide::SessionConfigParams>&
+                  config_params) {
+            return std::make_unique<NiceMock<MockSession>>(&session_);
+          }));
+
+  EXPECT_CALL(session_, ExecuteModel(_, _))
+      .WillOnce(testing::WithArg<1>(testing::Invoke(
+          [&](optimization_guide::
+                  OptimizationGuideModelExecutionResultStreamingCallback
+                      callback) {
+            callback.Run(OptimizationGuideModelStreamingExecutionResult(
+                base::ok(CreateScamDetectionResponse("Google", "Search Engine",
+                                                     /*is_complete=*/false)),
+                /*provided_by_on_device=*/false));
+          })));
+
+  csd_service_->SetOnDeviceAvailabilityForTesting(true);
+
+  ClientPhishingRequest verdict;
+  base::test::TestFuture<std::optional<ScamDetectionResponse>> future;
+  csd_service_->InquireOnDeviceModel(&verdict, "", future.GetCallback());
+
+  histogram_tester.ExpectTotalCount(
+      "SBClientPhishing.OnDeviceModelSessionCreationTime", 1);
+
+  // Because the execution result isn't complete yet, we do not intend on
+  // tracking the duration or success since we're still waiting. For the purpose
+  // of the test, we do not complete the execution result to make sure that
+  // they're not logged.
+  histogram_tester.ExpectTotalCount(
+      "SBClientPhishing.OnDeviceModelExecutionDuration", 0);
+  histogram_tester.ExpectTotalCount(
+      "SBClientPhishing.OnDeviceModelExecutionSuccess", 0);
+}
+
+TEST_P(ClientSideDetectionServiceTest,
+       TestSessionExecutionSuccessButFailedParsing) {
+  if (!base::FeatureList::IsEnabled(
+          kClientSideDetectionBrandAndIntentForScamDetection)) {
+    return;
+  }
+
+  base::HistogramTester histogram_tester;
+
+  csd_service_ = std::make_unique<ClientSideDetectionService>(
+      std::make_unique<ChromeClientSideDetectionServiceDelegate>(profile_),
+      model_observer_tracker_.get());
+
+  profile_->GetPrefs()->SetBoolean(prefs::kSafeBrowsingEnabled, true);
+
+  SetupMockOptimizationGuideKeyedService();
+
+  // When the Enhanced Safe Browsing protection setting is enabled, the next to
+  // functions will call from the delegate.
+  EXPECT_CALL(*mock_optimization_guide_keyed_service_, StartSession(_, _))
+      .WillOnce(
+          [&](optimization_guide::ModelBasedCapabilityKey feature,
+              const std::optional<optimization_guide::SessionConfigParams>&
+                  config_params) { return nullptr; });
+
+  optimization_guide::OnDeviceModelAvailabilityObserver* availability_observer =
+      nullptr;
+  base::RunLoop run_loop_for_add_observer;
+  EXPECT_CALL(*mock_optimization_guide_keyed_service_,
+              AddOnDeviceModelAvailabilityChangeObserver(_, _))
+      .WillOnce(testing::Invoke(
+          [&](optimization_guide::ModelBasedCapabilityKey feature,
+              optimization_guide::OnDeviceModelAvailabilityObserver* observer) {
+            availability_observer = observer;
+            run_loop_for_add_observer.Quit();
+          }));
+
+  profile_->GetPrefs()->SetBoolean(prefs::kSafeBrowsingEnhanced, true);
+
+  run_loop_for_add_observer.Run();
+  CHECK(availability_observer);
+
+  // Now that the delegate is observing, send `kConfigNotAvailableForFeature`
+  // first to the observer, which will not stop the observing.
+  availability_observer->OnDeviceModelAvailabilityChanged(
+      optimization_guide::ModelBasedCapabilityKey::kScamDetection,
+      optimization_guide::OnDeviceModelEligibilityReason::
+          kConfigNotAvailableForFeature);
+
+  histogram_tester.ExpectUniqueSample(
+      "SBClientPhishing.OnDeviceModelDownloadSuccess", true, 0);
+
+  // And then send `kSuccess` to the observer, which will log the histogram.
+  availability_observer->OnDeviceModelAvailabilityChanged(
+      optimization_guide::ModelBasedCapabilityKey::kScamDetection,
+      optimization_guide::OnDeviceModelEligibilityReason::kSuccess);
+
+  histogram_tester.ExpectUniqueSample(
+      "SBClientPhishing.OnDeviceModelDownloadSuccess", true, 1);
+  histogram_tester.ExpectTotalCount("SBClientPhishing.OnDeviceModelFetchTime",
+                                    1);
+
+  EXPECT_CALL(*mock_optimization_guide_keyed_service_, StartSession(_, _))
+      .WillOnce(testing::Invoke(
+          [&](optimization_guide::ModelBasedCapabilityKey feature,
+              const std::optional<optimization_guide::SessionConfigParams>&
+                  config_params) {
+            return std::make_unique<NiceMock<MockSession>>(&session_);
+          }));
+
+  optimization_guide::proto::DefaultResponse default_response;
+  optimization_guide::StreamingResponse default_streaming_response{
+      .response = AnyWrapProto(default_response), .is_complete = true};
+
+  EXPECT_CALL(session_, ExecuteModel(_, _))
+      .WillOnce(testing::WithArg<1>(testing::Invoke(
+          [&](optimization_guide::
+                  OptimizationGuideModelExecutionResultStreamingCallback
+                      callback) {
+            callback.Run(OptimizationGuideModelStreamingExecutionResult(
+                base::ok(default_streaming_response),
+                /*provided_by_on_device=*/true));
+          })));
+
+  csd_service_->SetOnDeviceAvailabilityForTesting(true);
+
+  ClientPhishingRequest verdict;
+  base::test::TestFuture<std::optional<ScamDetectionResponse>> future;
+  csd_service_->InquireOnDeviceModel(&verdict, "", future.GetCallback());
+
+  histogram_tester.ExpectTotalCount(
+      "SBClientPhishing.OnDeviceModelSessionCreationTime", 1);
+  histogram_tester.ExpectTotalCount(
+      "SBClientPhishing.OnDeviceModelExecutionDuration", 1);
+  histogram_tester.ExpectUniqueSample(
+      "SBClientPhishing.OnDeviceModelExecutionSuccess", true, 1);
+  histogram_tester.ExpectUniqueSample(
+      "SBClientPhishing.OnDeviceModelResponseParseSuccess", false, 1);
+}
+
+TEST_P(ClientSideDetectionServiceTest,
+       TestSessionExecutionAndResponseParseSuccess) {
+  if (!base::FeatureList::IsEnabled(
+          kClientSideDetectionBrandAndIntentForScamDetection)) {
+    return;
+  }
+
+  base::HistogramTester histogram_tester;
+
+  csd_service_ = std::make_unique<ClientSideDetectionService>(
+      std::make_unique<ChromeClientSideDetectionServiceDelegate>(profile_),
+      model_observer_tracker_.get());
+
+  profile_->GetPrefs()->SetBoolean(prefs::kSafeBrowsingEnabled, true);
+
+  SetupMockOptimizationGuideKeyedService();
+
+  // When the Enhanced Safe Browsing protection setting is enabled, the next to
+  // functions will call from the delegate.
+  EXPECT_CALL(*mock_optimization_guide_keyed_service_, StartSession(_, _))
+      .WillOnce(
+          [&](optimization_guide::ModelBasedCapabilityKey feature,
+              const std::optional<optimization_guide::SessionConfigParams>&
+                  config_params) { return nullptr; });
+
+  optimization_guide::OnDeviceModelAvailabilityObserver* availability_observer =
+      nullptr;
+  base::RunLoop run_loop_for_add_observer;
+  EXPECT_CALL(*mock_optimization_guide_keyed_service_,
+              AddOnDeviceModelAvailabilityChangeObserver(_, _))
+      .WillOnce(testing::Invoke(
+          [&](optimization_guide::ModelBasedCapabilityKey feature,
+              optimization_guide::OnDeviceModelAvailabilityObserver* observer) {
+            availability_observer = observer;
+            run_loop_for_add_observer.Quit();
+          }));
+
+  profile_->GetPrefs()->SetBoolean(prefs::kSafeBrowsingEnhanced, true);
+
+  run_loop_for_add_observer.Run();
+  CHECK(availability_observer);
+
+  // Now that the delegate is observing, send `kConfigNotAvailableForFeature`
+  // first to the observer, which will not stop the observing.
+  availability_observer->OnDeviceModelAvailabilityChanged(
+      optimization_guide::ModelBasedCapabilityKey::kScamDetection,
+      optimization_guide::OnDeviceModelEligibilityReason::
+          kConfigNotAvailableForFeature);
+
+  histogram_tester.ExpectUniqueSample(
+      "SBClientPhishing.OnDeviceModelDownloadSuccess", true, 0);
+
+  // And then send `kSuccess` to the observer, which will log the histogram.
+  availability_observer->OnDeviceModelAvailabilityChanged(
+      optimization_guide::ModelBasedCapabilityKey::kScamDetection,
+      optimization_guide::OnDeviceModelEligibilityReason::kSuccess);
+
+  histogram_tester.ExpectUniqueSample(
+      "SBClientPhishing.OnDeviceModelDownloadSuccess", true, 1);
+  histogram_tester.ExpectTotalCount("SBClientPhishing.OnDeviceModelFetchTime",
+                                    1);
+  EXPECT_CALL(*mock_optimization_guide_keyed_service_, StartSession(_, _))
+      .WillOnce(testing::Invoke(
+          [&](optimization_guide::ModelBasedCapabilityKey feature,
+              const std::optional<optimization_guide::SessionConfigParams>&
+                  config_params) {
+            return std::make_unique<NiceMock<MockSession>>(&session_);
+          }));
+
+  EXPECT_CALL(session_, ExecuteModel(_, _))
+      .WillOnce(testing::WithArg<1>(testing::Invoke(
+          [&](optimization_guide::
+                  OptimizationGuideModelExecutionResultStreamingCallback
+                      callback) {
+            callback.Run(OptimizationGuideModelStreamingExecutionResult(
+                base::ok(CreateScamDetectionResponse("Google", "Search Engine",
+                                                     /*is_complete=*/true)),
+                /*provided_by_on_device=*/false));
+          })));
+
+  csd_service_->SetOnDeviceAvailabilityForTesting(true);
+
+  ClientPhishingRequest verdict;
+  base::test::TestFuture<std::optional<ScamDetectionResponse>> future;
+  csd_service_->InquireOnDeviceModel(&verdict, "", future.GetCallback());
+
+  histogram_tester.ExpectTotalCount(
+      "SBClientPhishing.OnDeviceModelSessionCreationTime", 1);
+  histogram_tester.ExpectTotalCount(
+      "SBClientPhishing.OnDeviceModelExecutionDuration", 1);
+  histogram_tester.ExpectUniqueSample(
+      "SBClientPhishing.OnDeviceModelExecutionSuccess", true, 1);
+  histogram_tester.ExpectUniqueSample(
+      "SBClientPhishing.OnDeviceModelResponseParseSuccess", true, 1);
+}
+
 }  // namespace safe_browsing
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index e19010fc..464b1bf 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -1891,6 +1891,9 @@
       # //c/b/ui.
       "//chrome/browser/ui/tabs:tab_strip_model_observer_impl",
 
+      # TODO(crbug.com/382237520): Remove this once NTP code is modularized.
+      "//chrome/browser/ui/lens:impl",
+
       "//chrome/browser/ui/signin:impl",
       "//chrome/browser/ui/webui/commerce:impl",
       "//chrome/browser/ui/webui/signin:signin_impl",
@@ -2989,6 +2992,7 @@
       "//chrome/browser/themes",
       "//chrome/browser/ui/autofill/payments",
       "//chrome/browser/ui/lens",
+      "//chrome/browser/ui/lens:impl",
       "//components/lens/proto/server:proto",
       "//third_party/lens_server_proto:lens_overlay_proto",
       "//third_party/omnibox_proto",
diff --git a/chrome/browser/ui/android/webid/internal/java/src/org/chromium/chrome/browser/ui/android/webid/AccountSelectionButtonModeIntegrationTest.java b/chrome/browser/ui/android/webid/internal/java/src/org/chromium/chrome/browser/ui/android/webid/AccountSelectionButtonModeIntegrationTest.java
index fb61028..83d2d3f 100644
--- a/chrome/browser/ui/android/webid/internal/java/src/org/chromium/chrome/browser/ui/android/webid/AccountSelectionButtonModeIntegrationTest.java
+++ b/chrome/browser/ui/android/webid/internal/java/src/org/chromium/chrome/browser/ui/android/webid/AccountSelectionButtonModeIntegrationTest.java
@@ -49,6 +49,7 @@
 import org.chromium.blink.mojom.RpMode;
 import org.chromium.chrome.browser.flags.ChromeSwitches;
 import org.chromium.chrome.browser.ui.android.webid.AccountSelectionMediator.AccountChooserResult;
+import org.chromium.chrome.browser.ui.android.webid.AccountSelectionMediator.LoadingDialogResult;
 import org.chromium.chrome.browser.ui.android.webid.AccountSelectionProperties.HeaderProperties.HeaderType;
 import org.chromium.chrome.browser.ui.android.webid.data.Account;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
@@ -936,6 +937,148 @@
         verify(mMockBridge, never()).onAccountSelected(any(), any());
     }
 
+    @Test
+    @MediumTest
+    public void testProceedRecordsLoadingDialogResultHistogram() {
+        HistogramWatcher histogramWatcher =
+                HistogramWatcher.newSingleRecordWatcher(
+                        "Blink.FedCm.Button.LoadingDialogResult", LoadingDialogResult.PROCEED);
+
+        runOnUiThreadBlocking(
+                () -> {
+                    mAccountSelection.showAccounts(
+                            EXAMPLE_ETLD_PLUS_ONE,
+                            TEST_ETLD_PLUS_ONE_2,
+                            Arrays.asList(RETURNING_ANA),
+                            mIdpDataWithAddAccount,
+                            /* isAutoReauthn= */ false,
+                            /* newAccounts= */ Collections.EMPTY_LIST);
+                });
+        pollUiThread(() -> getBottomSheetState() == BottomSheetController.SheetState.HALF);
+
+        histogramWatcher.assertExpected();
+    }
+
+    @Test
+    @MediumTest
+    public void testProceedThroughPopupRecordsLoadingDialogResultHistogram() {
+        HistogramWatcher histogramWatcher =
+                HistogramWatcher.newSingleRecordWatcher(
+                        "Blink.FedCm.Button.LoadingDialogResult",
+                        LoadingDialogResult.PROCEED_THROUGH_POPUP);
+
+        runOnUiThreadBlocking(
+                () -> {
+                    mAccountSelection.showLoadingDialog(
+                            EXAMPLE_ETLD_PLUS_ONE, TEST_ETLD_PLUS_ONE_2, RpContext.SIGN_IN);
+                    mAccountSelection.getMediator().onModalDialogClosed();
+                    mAccountSelection.showAccounts(
+                            EXAMPLE_ETLD_PLUS_ONE,
+                            TEST_ETLD_PLUS_ONE_2,
+                            Arrays.asList(RETURNING_ANA),
+                            mIdpDataWithAddAccount,
+                            /* isAutoReauthn= */ false,
+                            /* newAccounts= */ Collections.EMPTY_LIST);
+                });
+        pollUiThread(() -> getBottomSheetState() == BottomSheetController.SheetState.HALF);
+
+        histogramWatcher.assertExpected();
+    }
+
+    @Test
+    @MediumTest
+    public void testSwipeRecordsLoadingDialogResultHistogram() {
+        runOnUiThreadBlocking(
+                () -> {
+                    mAccountSelection.showLoadingDialog(
+                            EXAMPLE_ETLD_PLUS_ONE, TEST_ETLD_PLUS_ONE_2, RpContext.SIGN_IN);
+                });
+        pollUiThread(() -> getBottomSheetState() == BottomSheetController.SheetState.HALF);
+
+        HistogramWatcher histogramWatcher =
+                HistogramWatcher.newSingleRecordWatcher(
+                        "Blink.FedCm.Button.LoadingDialogResult", LoadingDialogResult.SWIPE);
+
+        BottomSheetTestSupport sheetSupport = new BottomSheetTestSupport(mBottomSheetController);
+        runOnUiThreadBlocking(
+                () -> {
+                    sheetSupport.suppressSheet(BottomSheetController.StateChangeReason.SWIPE);
+                });
+        waitForEvent(mMockBridge).onDismissed(IdentityRequestDialogDismissReason.SWIPE);
+
+        histogramWatcher.assertExpected();
+    }
+
+    @Test
+    @MediumTest
+    public void testPressBackLoadingDialogResultHistogram() {
+        runOnUiThreadBlocking(
+                () -> {
+                    mAccountSelection.showLoadingDialog(
+                            EXAMPLE_ETLD_PLUS_ONE, TEST_ETLD_PLUS_ONE_2, RpContext.SIGN_IN);
+                });
+        pollUiThread(() -> getBottomSheetState() == BottomSheetController.SheetState.HALF);
+
+        HistogramWatcher histogramWatcher =
+                HistogramWatcher.newSingleRecordWatcher(
+                        "Blink.FedCm.Button.LoadingDialogResult", LoadingDialogResult.BACK_PRESS);
+
+        Espresso.pressBack();
+        waitForEvent(mMockBridge).onDismissed(IdentityRequestDialogDismissReason.BACK_PRESS);
+
+        histogramWatcher.assertExpected();
+    }
+
+    @Test
+    @MediumTest
+    public void testTapScrimLoadingDialogResultHistogram() {
+        runOnUiThreadBlocking(
+                () -> {
+                    mAccountSelection.showLoadingDialog(
+                            EXAMPLE_ETLD_PLUS_ONE, TEST_ETLD_PLUS_ONE_2, RpContext.SIGN_IN);
+                });
+        pollUiThread(() -> getBottomSheetState() == BottomSheetController.SheetState.HALF);
+
+        HistogramWatcher histogramWatcher =
+                HistogramWatcher.newSingleRecordWatcher(
+                        "Blink.FedCm.Button.LoadingDialogResult", LoadingDialogResult.TAP_SCRIM);
+
+        BottomSheetTestSupport sheetSupport = new BottomSheetTestSupport(mBottomSheetController);
+        runOnUiThreadBlocking(
+                () -> {
+                    sheetSupport.forceClickOutsideTheSheet();
+                });
+
+        waitForEvent(mMockBridge).onDismissed(IdentityRequestDialogDismissReason.TAP_SCRIM);
+
+        histogramWatcher.assertExpected();
+    }
+
+    @Test
+    @MediumTest
+    public void testDestroyLoadingDialogResultHistogram() {
+        runOnUiThreadBlocking(
+                () -> {
+                    mAccountSelection.showLoadingDialog(
+                            EXAMPLE_ETLD_PLUS_ONE, TEST_ETLD_PLUS_ONE_2, RpContext.SIGN_IN);
+                });
+        pollUiThread(() -> getBottomSheetState() == BottomSheetController.SheetState.HALF);
+
+        HistogramWatcher histogramWatcher =
+                HistogramWatcher.newSingleRecordWatcher(
+                        "Blink.FedCm.Button.LoadingDialogResult", LoadingDialogResult.DESTROY);
+
+        BottomSheetTestSupport sheetSupport = new BottomSheetTestSupport(mBottomSheetController);
+        runOnUiThreadBlocking(
+                () -> {
+                    sheetSupport.suppressSheet(BottomSheetController.StateChangeReason.NAVIGATION);
+                });
+
+        waitForEvent(mMockBridge).onDismissed(IdentityRequestDialogDismissReason.OTHER);
+
+        histogramWatcher.assertExpected();
+    }
+
     private void clickFirstAccountInAccountsList() {
         runOnUiThreadBlocking(
                 () -> {
diff --git a/chrome/browser/ui/android/webid/internal/java/src/org/chromium/chrome/browser/ui/android/webid/AccountSelectionMediator.java b/chrome/browser/ui/android/webid/internal/java/src/org/chromium/chrome/browser/ui/android/webid/AccountSelectionMediator.java
index 7dce46f..547a8122 100644
--- a/chrome/browser/ui/android/webid/internal/java/src/org/chromium/chrome/browser/ui/android/webid/AccountSelectionMediator.java
+++ b/chrome/browser/ui/android/webid/internal/java/src/org/chromium/chrome/browser/ui/android/webid/AccountSelectionMediator.java
@@ -130,6 +130,37 @@
         int NUM_ENTRIES = 7;
     }
 
+    /**
+     * The following integers are used for histograms. Do not remove or modify existing values, but
+     * you may add new values at the end and increase NUM_ENTRIES. This enum should be kept in sync
+     * with LoadingDialogResult in
+     * chrome/browser/ui/views/webid/fedcm_account_selection_view_desktop.h as well as with
+     * FedCmLoadingDialogResult in tools/metrics/histograms/enums.xml.
+     */
+    @IntDef({
+        LoadingDialogResult.PROCEED,
+        LoadingDialogResult.CANCEL,
+        LoadingDialogResult.PROCEED_THROUGH_POPUP,
+        LoadingDialogResult.DESTROY,
+        LoadingDialogResult.SWIPE,
+        LoadingDialogResult.BACK_PRESS,
+        LoadingDialogResult.TAP_SCRIM,
+        LoadingDialogResult.NUM_ENTRIES
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    @VisibleForTesting
+    @interface LoadingDialogResult {
+        int PROCEED = 0;
+        int CANCEL = 1;
+        int PROCEED_THROUGH_POPUP = 2;
+        int DESTROY = 3;
+        int SWIPE = 4;
+        int BACK_PRESS = 5;
+        int TAP_SCRIM = 6;
+
+        int NUM_ENTRIES = 7;
+    }
+
     private boolean mRegisteredObservers;
     private boolean mWasDismissed;
     // Keeps track of the last bottom sheet seen by the BottomSheetObserver. Used to know whether a
@@ -166,6 +197,7 @@
     private IdentityCredentialTokenError mError;
     private @IdentityRequestDialogDisclosureField int[] mDisclosureFields;
     private ImageFetcher mImageFetcher;
+    private UkmRecorder mUkmRecorder;
 
     // All of the user's accounts.
     private List<Account> mAccounts;
@@ -188,6 +220,14 @@
     // recorded for active mode.
     private @Nullable Integer mAccountChooserState;
 
+    // The current state of the loading dialog if opened for metrics purposes. Histogram is only
+    // recorded for active mode.
+    private @Nullable Integer mLoadingDialogState;
+
+    // Whether there was a login to IDP CCT that was closed while the loading dialog is open. This
+    // could mean that the user successfully completed the login to IDP flow.
+    private boolean mIsLoadingDialogLoginToIdpClosed;
+
     private KeyboardVisibilityListener mKeyboardVisibilityListener =
             new KeyboardVisibilityListener() {
                 @Override
@@ -226,6 +266,9 @@
         mContext = context;
         mModalDialogManager = modalDialogManager;
         mLastSheetSeen = mBottomSheetContent;
+        if (mTab != null && mTab.getWebContents() != null) {
+            mUkmRecorder = new UkmRecorder(mTab.getWebContents(), "Blink.FedCm");
+        }
 
         mBottomSheetObserver =
                 new EmptyBottomSheetObserver() {
@@ -281,6 +324,10 @@
                                             mAccountChooserState != null
                                                     ? AccountChooserResult.SWIPE
                                                     : null;
+                                    mLoadingDialogState =
+                                            mHeaderType == HeaderType.LOADING
+                                                    ? LoadingDialogResult.SWIPE
+                                                    : null;
                                 } else if (reason
                                         == BottomSheetController.StateChangeReason.BACK_PRESS) {
                                     dismissReason = IdentityRequestDialogDismissReason.BACK_PRESS;
@@ -291,6 +338,10 @@
                                             mAccountChooserState != null
                                                     ? AccountChooserResult.BACK_PRESS
                                                     : null;
+                                    mLoadingDialogState =
+                                            mHeaderType == HeaderType.LOADING
+                                                    ? LoadingDialogResult.BACK_PRESS
+                                                    : null;
                                 } else if (reason
                                         == BottomSheetController.StateChangeReason.TAP_SCRIM) {
                                     dismissReason = IdentityRequestDialogDismissReason.TAP_SCRIM;
@@ -301,6 +352,10 @@
                                             mAccountChooserState != null
                                                     ? AccountChooserResult.TAP_SCRIM
                                                     : null;
+                                    mLoadingDialogState =
+                                            mHeaderType == HeaderType.LOADING
+                                                    ? LoadingDialogResult.TAP_SCRIM
+                                                    : null;
                                 }
                                 onDismissed(dismissReason);
                             }
@@ -525,14 +580,36 @@
 
         RecordHistogram.recordEnumeratedHistogram(
                 "Blink.FedCm.Button.AccountChooserResult", result, SheetType.NUM_ENTRIES);
-        if (mTab != null && mTab.getWebContents() != null) {
-            new UkmRecorder(mTab.getWebContents(), "Blink.FedCm")
-                    .addMetric("Button.AccountChooserResult", result)
-                    .record();
+        if (mUkmRecorder != null) {
+            mUkmRecorder.addMetric("Button.AccountChooserResult", result).record();
         }
         mAccountChooserState = null;
     }
 
+    private void maybeRecordLoadingDialogResult() {
+        if (mRpMode != RpMode.ACTIVE) return;
+
+        // mLoadingDialogState is set on dismissal e.g. tap scrim, back press or if the loading
+        // dialog gets updated into an account chooser. If it hasn't been set but onDismiss has
+        // called this while showing the loading dialog, it means the user has closed the tab or
+        // navigated away.
+        if (mLoadingDialogState == null && mHeaderType == HeaderType.LOADING) {
+            mLoadingDialogState = LoadingDialogResult.DESTROY;
+        }
+
+        // Can be null in tests that do not show the loading dialog before the dialog being tested.
+        if (mLoadingDialogState == null) return;
+
+        RecordHistogram.recordEnumeratedHistogram(
+                "Blink.FedCm.Button.LoadingDialogResult",
+                mLoadingDialogState,
+                SheetType.NUM_ENTRIES);
+        if (mUkmRecorder != null) {
+            mUkmRecorder.addMetric("Button.LoadingDialogResult", mLoadingDialogState).record();
+        }
+        mLoadingDialogState = null;
+    }
+
     void showVerifySheet(Account account) {
         if (mHeaderType == HeaderType.SIGN_IN || mHeaderType == HeaderType.REQUEST_PERMISSION) {
             mHeaderType = HeaderType.VERIFY;
@@ -577,6 +654,11 @@
         mRpContext = idpData.getRpContext();
         mDisclosureFields = idpData.getDisclosureFields();
         mSelectedAccount = null;
+        mLoadingDialogState =
+                mIsLoadingDialogLoginToIdpClosed
+                        ? LoadingDialogResult.PROCEED_THROUGH_POPUP
+                        : LoadingDialogResult.PROCEED;
+        maybeRecordLoadingDialogResult();
 
         if (accounts.size() == 1
                 && (isAutoReauthn || !mIdpMetadata.showUseDifferentAccountButton())) {
@@ -1073,6 +1155,7 @@
         if (mAccountChooserState != null) {
             maybeRecordAccountChooserResult(mAccountChooserState);
         }
+        maybeRecordLoadingDialogResult();
         dismissContent();
         mDelegate.onDismissed(dismissReason);
     }
@@ -1178,5 +1261,8 @@
 
     void onModalDialogClosed() {
         mIsModalDialogOpen = false;
+        if (!mIsLoadingDialogLoginToIdpClosed && mHeaderType == HeaderType.LOADING) {
+            mIsLoadingDialogLoginToIdpClosed = true;
+        }
     }
 }
diff --git a/chrome/browser/ui/bookmarks/bookmark_tab_helper.cc b/chrome/browser/ui/bookmarks/bookmark_tab_helper.cc
index b0eccf9..18221bb 100644
--- a/chrome/browser/ui/bookmarks/bookmark_tab_helper.cc
+++ b/chrome/browser/ui/bookmarks/bookmark_tab_helper.cc
@@ -30,6 +30,9 @@
 
 namespace {
 
+// TODO(crbug.com/382494946): Similar bespoke checks are used throughout the
+// codebase. This should be factored out as a common util and other callsites
+// converted to use this.
 bool IsNTP(content::WebContents* web_contents) {
   // Use the committed entry (or the visible entry, if the committed entry is
   // the initial NavigationEntry) so the bookmarks bar disappears at the same
diff --git a/chrome/browser/ui/browser_window/browser_window_features.cc b/chrome/browser/ui/browser_window/browser_window_features.cc
index 61478604..90b0dc7 100644
--- a/chrome/browser/ui/browser_window/browser_window_features.cc
+++ b/chrome/browser/ui/browser_window/browser_window_features.cc
@@ -33,6 +33,7 @@
 #include "chrome/browser/ui/ui_features.h"
 #include "chrome/browser/ui/views/data_sharing/data_sharing_open_group_helper.h"
 #include "chrome/browser/ui/views/frame/browser_view.h"
+#include "chrome/browser/ui/views/location_bar/location_bar_view.h"
 #include "chrome/browser/ui/views/media_router/cast_browser_controller.h"
 #include "chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_toolbar_bubble_controller.h"
 #include "chrome/browser/ui/views/side_panel/extensions/extension_side_panel_manager.h"
@@ -138,14 +139,23 @@
     send_tab_to_self_toolbar_bubble_controller_ = std::make_unique<
         send_tab_to_self::SendTabToSelfToolbarBubbleController>(browser);
 
-    // TODO(b/350508658): Ideally, we don't pass in a reference to browser as
-    // per the guidance in the comment above. However, currently, we need
-    // browser to properly determine if the lens overlay is enabled.
+    // TODO(crbug.com/350508658): Ideally, we don't pass in a reference to
+    // browser as per the guidance in the comment above. However, currently,
+    // we need browser to properly determine if the lens overlay is enabled.
     // Cannot be in Init since needs to listen to the fullscreen controller
-    // which is initialized after Init.
+    // and location bar view which are initialized after Init.
     if (lens::features::IsLensOverlayEnabled()) {
+      views::View* location_bar = nullptr;
+      // TODO(crbug.com/360163254): We should really be using
+      // Browser::GetBrowserView, which always returns a non-null BrowserView
+      // in production, but this crashes during unittests using
+      // BrowserWithTestWindowTest; these should eventually be refactored.
+      if (BrowserView* browser_view =
+              BrowserView::GetBrowserViewForBrowser(browser)) {
+        location_bar = browser_view->GetLocationBarView();
+      }
       lens_overlay_entry_point_controller_->Initialize(
-          browser, browser->command_controller());
+          browser, browser->command_controller(), location_bar);
     }
 
     auto* experiment_manager =
@@ -212,6 +222,7 @@
 
 void BrowserWindowFeatures::TearDownPreBrowserViewDestruction() {
   memory_saver_opt_in_iph_controller_.reset();
+  lens_overlay_entry_point_controller_.reset();
 
   // TODO(crbug.com/346148093): This logic should not be gated behind a
   // conditional.
diff --git a/chrome/browser/ui/cocoa/confirm_quit_panel_controller.mm b/chrome/browser/ui/cocoa/confirm_quit_panel_controller.mm
index acaa2c6..c88659d 100644
--- a/chrome/browser/ui/cocoa/confirm_quit_panel_controller.mm
+++ b/chrome/browser/ui/cocoa/confirm_quit_panel_controller.mm
@@ -103,33 +103,37 @@
 
 @end
 
+typedef NS_ENUM(NSInteger, FadeWindowsOperation) { kHide, kShow };
+
 // Animation ///////////////////////////////////////////////////////////////////
 
-// This animation will run through all the windows of the passed-in
-// NSApplication and will fade their alpha value to 0.0.
+// This animation will run through all the windows of NSApp and will fade their
+// alpha value to 0.0 if `op` is `kHide` and 1.0 otherwise.
 @interface FadeAllWindowsAnimation : NSAnimation <NSAnimationDelegate>
-- (instancetype)initWithApplication:(NSApplication*)app
-                  animationDuration:(NSTimeInterval)duration;
+- (instancetype)initWithOperation:(FadeWindowsOperation)op
+                animationDuration:(NSTimeInterval)duration;
 @end
 
 @implementation FadeAllWindowsAnimation {
-  NSApplication* __strong _application;
+  FadeWindowsOperation _op;
 }
 
-- (instancetype)initWithApplication:(NSApplication*)app
-                  animationDuration:(NSTimeInterval)duration {
+- (instancetype)initWithOperation:(FadeWindowsOperation)op
+                animationDuration:(NSTimeInterval)duration {
   if ((self = [super initWithDuration:duration
                        animationCurve:NSAnimationLinear])) {
-    _application = app;
+    _op = op;
     self.delegate = self;
   }
   return self;
 }
 
 - (void)setCurrentProgress:(NSAnimationProgress)progress {
-  for (NSWindow* window in _application.windows) {
-    if (chrome::FindBrowserWithWindow(window))
-      window.alphaValue = 1.0 - progress;
+  CGFloat value = _op == kShow ? progress : 1.0 - progress;
+  for (NSWindow* window in NSApp.windows) {
+    if (chrome::FindBrowserWithWindow(window)) {
+      window.alphaValue = value;
+    }
   }
 }
 
@@ -348,8 +352,8 @@
 // Iterates through the list of open windows and hides them all.
 - (void)hideAllWindowsWithDuration:(NSTimeInterval)duration {
   FadeAllWindowsAnimation* animation =
-      [[FadeAllWindowsAnimation alloc] initWithApplication:NSApp
-                                         animationDuration:duration];
+      [[FadeAllWindowsAnimation alloc] initWithOperation:kHide
+                                       animationDuration:duration];
 
   // -startAnimation holds a strong reference to the animation until it is
   // complete.
diff --git a/chrome/browser/ui/cookie_controls/cookie_controls_controller_unittest.cc b/chrome/browser/ui/cookie_controls/cookie_controls_controller_unittest.cc
index c5a3582..7d23611 100644
--- a/chrome/browser/ui/cookie_controls/cookie_controls_controller_unittest.cc
+++ b/chrome/browser/ui/cookie_controls/cookie_controls_controller_unittest.cc
@@ -29,6 +29,7 @@
 #include "components/privacy_sandbox/tracking_protection_settings.h"
 #include "components/site_engagement/content/site_engagement_service.h"
 #include "components/strings/grit/privacy_sandbox_strings.h"
+#include "components/subresource_filter/core/mojom/subresource_filter.mojom-shared.h"
 #include "components/ukm/test_ukm_recorder.h"
 #include "content/public/test/navigation_simulator.h"
 #include "content/public/test/web_contents_tester.h"
@@ -1576,7 +1577,8 @@
   NavigateAndCommit(GURL("https://example.com"));
   fingerprinting_protection_filter::FingerprintingProtectionWebContentsHelper::
       FromWebContents(web_contents())
-          ->NotifyOnBlockedSubresource();
+          ->NotifyOnBlockedSubresource(
+              subresource_filter::mojom::ActivationLevel::kEnabled);
 
   EXPECT_CALL(*mock(),
               OnStatusChanged(
@@ -1606,7 +1608,8 @@
   NavigateAndCommit(GURL("https://example.com"));
   fingerprinting_protection_filter::FingerprintingProtectionWebContentsHelper::
       FromWebContents(web_contents())
-          ->NotifyOnBlockedSubresource();
+          ->NotifyOnBlockedSubresource(
+              subresource_filter::mojom::ActivationLevel::kEnabled);
 
   EXPECT_CALL(*mock(),
               OnStatusChanged(
diff --git a/chrome/browser/ui/lens/BUILD.gn b/chrome/browser/ui/lens/BUILD.gn
index 08d4676..523df21 100644
--- a/chrome/browser/ui/lens/BUILD.gn
+++ b/chrome/browser/ui/lens/BUILD.gn
@@ -28,63 +28,82 @@
     "//chrome/browser/ui/ash/capture_mode",
   ]
   sources = [
-    "lens_overlay_blur_layer_delegate.cc",
     "lens_overlay_blur_layer_delegate.h",
     "lens_overlay_colors.h",
-    "lens_overlay_controller.cc",
-    "lens_overlay_entry_point_controller.cc",
-    "lens_overlay_event_handler.cc",
     "lens_overlay_event_handler.h",
-    "lens_overlay_gen204_controller.cc",
-    "lens_overlay_image_helper.cc",
     "lens_overlay_image_helper.h",
-    "lens_overlay_languages_controller.cc",
     "lens_overlay_languages_controller.h",
-    "lens_overlay_proto_converter.cc",
     "lens_overlay_proto_converter.h",
-    "lens_overlay_query_controller.cc",
     "lens_overlay_query_controller.h",
-    "lens_overlay_request_id_generator.cc",
     "lens_overlay_request_id_generator.h",
-    "lens_overlay_side_panel_coordinator.cc",
     "lens_overlay_side_panel_coordinator.h",
-    "lens_overlay_side_panel_navigation_throttle.cc",
-    "lens_overlay_side_panel_web_view.cc",
     "lens_overlay_side_panel_web_view.h",
-    "lens_overlay_theme_utils.cc",
     "lens_overlay_theme_utils.h",
-    "lens_overlay_untrusted_ui.cc",
-    "lens_overlay_url_builder.cc",
     "lens_overlay_url_builder.h",
-    "lens_permission_bubble_controller.cc",
     "lens_permission_bubble_controller.h",
-    "lens_preselection_bubble.cc",
     "lens_preselection_bubble.h",
-    "lens_side_panel_untrusted_ui.cc",
     "ref_counted_lens_overlay_client_logs.h",
   ]
 
   public_deps = [
+    "//base",
+    "//chrome/browser/content_extraction",
     "//chrome/browser/lens/core/mojom:mojo_bindings",
+    "//chrome/browser/search_engines:search_engines",
     "//chrome/browser/themes",
+    "//chrome/browser/ui/exclusive_access",
     "//chrome/browser/ui/omnibox",
+    "//chrome/browser/ui/views/side_panel",
+    "//chrome/browser/ui/webui/searchbox",
     "//chrome/browser/ui/webui/top_chrome",
+    "//components/endpoint_fetcher",
     "//components/find_in_page",
     "//components/lens",
+    "//components/user_education/webui",
     "//content/public/browser",
     "//third_party/lens_server_proto:lens_overlay_proto",
     "//ui/base/mojom:ui_base_types",
+    "//ui/views",
   ]
 
+  if (enable_pdf) {
+    public_deps += [ "//pdf/mojom" ]
+  }
+}
+
+source_set("impl") {
+  public = []
+  sources = [
+    "lens_overlay_blur_layer_delegate.cc",
+    "lens_overlay_controller.cc",
+    "lens_overlay_entry_point_controller.cc",
+    "lens_overlay_event_handler.cc",
+    "lens_overlay_gen204_controller.cc",
+    "lens_overlay_image_helper.cc",
+    "lens_overlay_languages_controller.cc",
+    "lens_overlay_proto_converter.cc",
+    "lens_overlay_query_controller.cc",
+    "lens_overlay_request_id_generator.cc",
+    "lens_overlay_side_panel_coordinator.cc",
+    "lens_overlay_side_panel_navigation_throttle.cc",
+    "lens_overlay_side_panel_web_view.cc",
+    "lens_overlay_theme_utils.cc",
+    "lens_overlay_untrusted_ui.cc",
+    "lens_overlay_url_builder.cc",
+    "lens_permission_bubble_controller.cc",
+    "lens_preselection_bubble.cc",
+    "lens_side_panel_untrusted_ui.cc",
+  ]
+
+  public_deps = []
   deps = [
-    "//base",
+    ":lens",
     "//build:branding_buildflags",
     "//chrome/app:generated_resources_grit",
     "//chrome/app/theme:theme_resources_grit",
     "//chrome/app/vector_icons",
     "//chrome/browser:browser_process",
     "//chrome/browser:primitives",
-    "//chrome/browser/content_extraction",
     "//chrome/browser/feedback",
     "//chrome/browser/media/webrtc",
     "//chrome/browser/profiles",
@@ -93,25 +112,21 @@
     "//chrome/browser/resources/lens/shared:resources",
     "//chrome/browser/resources/lens/shared:resources_grit",
     "//chrome/browser/search",
-    "//chrome/browser/search_engines:search_engines",
     "//chrome/browser/task_manager",
     "//chrome/browser/ui:browser_element_identifiers",
     "//chrome/browser/ui/browser_window",
     "//chrome/browser/ui/color:color_headers",
-    "//chrome/browser/ui/exclusive_access",
     "//chrome/browser/ui/hats",
     "//chrome/browser/ui/views/bubble",
-    "//chrome/browser/ui/views/side_panel",
+    "//chrome/browser/ui/views/page_action",
     "//chrome/browser/ui/views/toolbar",
     "//chrome/browser/ui/webui",
     "//chrome/browser/ui/webui:webui_util",
-    "//chrome/browser/ui/webui/searchbox",
     "//chrome/browser/ui/webui/util",
     "//chrome/common",
     "//chrome/common:channel_info",
     "//components/base32",
     "//components/constrained_window",
-    "//components/endpoint_fetcher",
     "//components/feature_engagement/public",
     "//components/input",
     "//components/language/core/common",
@@ -126,7 +141,6 @@
     "//components/sync/service",
     "//components/sync_preferences",
     "//components/unified_consent",
-    "//components/user_education/webui",
     "//components/variations",
     "//components/variations:variations_mojom",
     "//components/version_info:channel",
@@ -150,14 +164,12 @@
     "//ui/gfx/codec:codec",
     "//ui/gfx/geometry:geometry",
     "//ui/menus",
-    "//ui/views",
     "//ui/webui",
     "//url",
   ]
 
   if (enable_pdf) {
     deps += [ "//components/pdf/browser" ]
-    public_deps += [ "//pdf/mojom" ]
   }
 }
 
diff --git a/chrome/browser/ui/lens/lens_overlay_entry_point_controller.cc b/chrome/browser/ui/lens/lens_overlay_entry_point_controller.cc
index 1006af1..bbdfcf7 100644
--- a/chrome/browser/ui/lens/lens_overlay_entry_point_controller.cc
+++ b/chrome/browser/ui/lens/lens_overlay_entry_point_controller.cc
@@ -4,6 +4,7 @@
 
 #include "chrome/browser/ui/lens/lens_overlay_entry_point_controller.h"
 
+#include "base/functional/bind.h"
 #include "base/system/sys_info.h"
 #include "chrome/browser/command_updater.h"
 #include "chrome/browser/search/search.h"
@@ -12,10 +13,41 @@
 #include "chrome/browser/ui/exclusive_access/exclusive_access_context.h"
 #include "chrome/browser/ui/exclusive_access/exclusive_access_manager.h"
 #include "chrome/browser/ui/lens/lens_overlay_controller.h"
+#include "chrome/browser/ui/tabs/public/tab_features.h"
+#include "chrome/browser/ui/tabs/public/tab_interface.h"
+#include "chrome/browser/ui/ui_features.h"
+#include "chrome/browser/ui/views/page_action/page_action_controller.h"
 #include "chrome/browser/ui/views/toolbar/pinned_toolbar_actions_container.h"
 #include "chrome/browser/ui/views/toolbar/toolbar_view.h"
+#include "chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.h"
+#include "chrome/browser/ui/webui/new_tab_page_third_party/new_tab_page_third_party_ui.h"
+#include "chrome/browser/ui/webui/ntp/new_tab_ui.h"
 #include "components/lens/lens_features.h"
 #include "components/lens/lens_overlay_permission_utils.h"
+#include "components/omnibox/browser/omnibox_prefs.h"
+#include "content/public/browser/navigation_entry.h"
+
+namespace {
+
+// TODO(crbug.com/382494946): Similar bespoke checks are used throughout the
+// codebase. This should be factored out as a common util and other callsites
+// converted to use this.
+bool IsNewTabPage(content::WebContents* const web_contents) {
+  // Use the committed entry (or the visible entry, if the committed entry is
+  // the initial NavigationEntry).
+  CHECK(web_contents);
+  content::NavigationEntry* entry =
+      web_contents->GetController().GetLastCommittedEntry();
+  if (entry->IsInitialEntry()) {
+    entry = web_contents->GetController().GetVisibleEntry();
+  }
+  const GURL& url = entry->GetURL();
+  return NewTabUI::IsNewTab(url) || NewTabPageUI::IsNewTabPageOrigin(url) ||
+         NewTabPageThirdPartyUI::IsNewTabPageOrigin(url) ||
+         search::NavEntryIsInstantNTP(web_contents, entry);
+}
+
+}  // namespace
 
 namespace lens {
 
@@ -23,8 +55,22 @@
 
 void LensOverlayEntryPointController::Initialize(
     BrowserWindowInterface* browser_window_interface,
-    CommandUpdater* command_updater) {
+    CommandUpdater* command_updater,
+    views::View* location_bar) {
   browser_window_interface_ = browser_window_interface;
+  location_bar_ = location_bar;
+  if (location_bar_) {
+    location_bar_->GetFocusManager()->AddFocusChangeListener(this);
+    location_bar_->AddObserver(this);
+  }
+
+  pref_change_registrar_.Init(
+      browser_window_interface_->GetProfile()->GetPrefs());
+  pref_change_registrar_.Add(
+      omnibox::kShowGoogleLensShortcut,
+      base::BindRepeating(
+          &LensOverlayEntryPointController::UpdatePageActionState,
+          base::Unretained(this)));
   command_updater_ = command_updater;
 
   // Observe changes to fullscreen state.
@@ -43,7 +89,12 @@
   UpdateEntryPointsState(/*hide_if_needed=*/true);
 }
 
-LensOverlayEntryPointController::~LensOverlayEntryPointController() = default;
+LensOverlayEntryPointController::~LensOverlayEntryPointController() {
+  // Initialize may not have been called (e.g. for non-normal browser windows).
+  if (location_bar_) {
+    location_bar_->RemoveObserver(this);
+  }
+}
 
 bool LensOverlayEntryPointController::IsEnabled() {
   // This class is initialized if and only if it is observing.
@@ -98,6 +149,25 @@
   return phys_mem_mb > lens::features::GetLensOverlayMinRamMb();
 }
 
+void LensOverlayEntryPointController::OnViewAddedToWidget(views::View* view) {
+  CHECK(location_bar_);
+  location_bar_->GetFocusManager()->AddFocusChangeListener(this);
+}
+
+void LensOverlayEntryPointController::OnViewRemovedFromWidget(
+    views::View* view) {
+  CHECK(location_bar_);
+  location_bar_->GetFocusManager()->RemoveFocusChangeListener(this);
+}
+
+void LensOverlayEntryPointController::OnWillChangeFocus(views::View* before,
+                                                        views::View* now) {}
+
+void LensOverlayEntryPointController::OnDidChangeFocus(views::View* before,
+                                                       views::View* now) {
+  UpdatePageActionState();
+}
+
 void LensOverlayEntryPointController::OnFullscreenStateChanged() {
   // Disable the Lens entry points in the top chrome if there is no top bar in
   // Chrome. On Mac and ChromeOS, it is possible to hover over the top of the
@@ -138,4 +208,59 @@
       kActionSidePanelShowLensOverlayResults,
       /*scope=*/browser_window_interface_->GetActions()->root_action_item());
 }
+
+void LensOverlayEntryPointController::UpdatePageActionState() {
+  if (!base::FeatureList::IsEnabled(::features::kPageActionsMigration)) {
+    return;
+  }
+  // This may not have been initialized (e.g. for non-normal browser types).
+  if (!location_bar_) {
+    return;
+  }
+  CHECK(browser_window_interface_);
+
+  tabs::TabInterface* active_tab =
+      browser_window_interface_->GetActiveTabInterface();
+  // Possible during browser window initialization or teardown.
+  if (!active_tab) {
+    return;
+  }
+  CHECK(active_tab->GetTabFeatures());
+
+  page_actions::PageActionController* page_action_controller =
+      active_tab->GetTabFeatures()->page_action_controller();
+  CHECK(page_action_controller);
+
+  const actions::ActionId page_action_id =
+      kActionSidePanelShowLensOverlayResults;
+
+  if (!IsEnabled()) {
+    page_action_controller->Hide(page_action_id);
+    return;
+  }
+
+  if (!browser_window_interface_->GetProfile()->GetPrefs()->GetBoolean(
+          omnibox::kShowGoogleLensShortcut)) {
+    page_action_controller->Hide(page_action_id);
+    return;
+  }
+
+  if (!features::IsOmniboxEntrypointAlwaysVisible() &&
+      !location_bar_->HasFocus()) {
+    page_action_controller->Hide(page_action_id);
+    return;
+  }
+
+  // The overlay is unavailable on the NTP as it is unlikely to be useful to
+  // users on the page. It would also appear immediately when a new tab or
+  // window is created due to focus immediatey jumping into the location bar.
+  if (active_tab && IsNewTabPage(active_tab->GetContents())) {
+    page_action_controller->Hide(page_action_id);
+    return;
+  }
+
+  // TODO(crbug.com/376283383): We should always use the chip state once that's
+  // implemented.
+  page_action_controller->Show(page_action_id);
+}
 }  // namespace lens
diff --git a/chrome/browser/ui/lens/lens_overlay_entry_point_controller.h b/chrome/browser/ui/lens/lens_overlay_entry_point_controller.h
index 4a34945..7113ab2 100644
--- a/chrome/browser/ui/lens/lens_overlay_entry_point_controller.h
+++ b/chrome/browser/ui/lens/lens_overlay_entry_point_controller.h
@@ -8,13 +8,20 @@
 #include "base/scoped_observation.h"
 #include "chrome/browser/ui/exclusive_access/fullscreen_controller.h"
 #include "chrome/browser/ui/exclusive_access/fullscreen_observer.h"
+#include "components/prefs/pref_change_registrar.h"
 #include "components/search_engines/template_url_service.h"
 #include "components/search_engines/template_url_service_observer.h"
 #include "ui/actions/actions.h"
+#include "ui/views/focus/focus_manager.h"
+#include "ui/views/view_observer.h"
 
 class BrowserWindowInterface;
 class CommandUpdater;
 
+namespace views {
+class View;
+}
+
 namespace lens {
 
 // Per-browser-window class responsible for keeping Lens Overlay entry points in
@@ -22,14 +29,17 @@
 // LensOverlayController, since LensOverlayController exist per tab, while entry
 // points are per browser window.
 class LensOverlayEntryPointController : public FullscreenObserver,
-                                        public TemplateURLServiceObserver {
+                                        public TemplateURLServiceObserver,
+                                        public views::FocusChangeListener,
+                                        public views::ViewObserver {
  public:
   LensOverlayEntryPointController();
   ~LensOverlayEntryPointController() override;
 
   // This class does nothing if not initialized. IsEnabled returns false.
   void Initialize(BrowserWindowInterface* browser_window_interface,
-                  CommandUpdater* command_updater);
+                  CommandUpdater* command_updater,
+                  views::View* location_bar);
 
   // Whether the entry points should be enabled.
   bool IsEnabled();
@@ -42,11 +52,22 @@
   void OnTemplateURLServiceChanged() override;
   void OnTemplateURLServiceShuttingDown() override;
 
+  // views::FocusChangeListener
+  void OnWillChangeFocus(views::View* before, views::View* now) override;
+  void OnDidChangeFocus(views::View* before, views::View* now) override;
+
+  // views::ViewObserver
+  void OnViewAddedToWidget(views::View* view) override;
+  void OnViewRemovedFromWidget(views::View* view) override;
+
   // Updates the enable/disable state of entry points. If hide_if_needed is
   // true, instead of just disabling the entrypoint, we will also hide the
   // entrypoint from the user.
   void UpdateEntryPointsState(bool hide_if_needed);
 
+  // Updates the Lens Overlay page action state.
+  void UpdatePageActionState();
+
   // Returns the ActionItem corresponding to our pinnable toolbar entrypoint.
   actions::ActionItem* GetToolbarEntrypoint();
 
@@ -65,6 +86,10 @@
 
   // Owns this.
   raw_ptr<BrowserWindowInterface> browser_window_interface_;
+
+  PrefChangeRegistrar pref_change_registrar_;
+
+  raw_ptr<views::View> location_bar_;
 };
 
 }  // namespace lens
diff --git a/chrome/browser/ui/privacy_sandbox/DIR_METADATA b/chrome/browser/ui/privacy_sandbox/DIR_METADATA
index 46191cc..cb1e73c9 100644
--- a/chrome/browser/ui/privacy_sandbox/DIR_METADATA
+++ b/chrome/browser/ui/privacy_sandbox/DIR_METADATA
@@ -1,7 +1,7 @@
 monorail: {
-  component: "UI>Settings>Privacy"
+  component: "UI>Browser>Privacy Sandbox"
 }
-team_email: "chrome-privacy-controls@google.com"
+team_email: "koilos@google.com"
 buganizer_public: {
-  component_id: 1457044
+  component_id: 1697287
 }
diff --git a/chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_web_contents_listener.h b/chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_web_contents_listener.h
index d411569..62d652b 100644
--- a/chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_web_contents_listener.h
+++ b/chrome/browser/ui/tabs/saved_tab_groups/saved_tab_group_web_contents_listener.h
@@ -52,7 +52,7 @@
 
   content::WebContents* contents() const;
 
-  void OnTabDiscarded(tabs::TabInterface* interface,
+  void OnTabDiscarded(tabs::TabInterface* tab_interface,
                       content::WebContents* old_content,
                       content::WebContents* new_content);
 
diff --git a/chrome/browser/ui/toolbar/app_menu_model.cc b/chrome/browser/ui/toolbar/app_menu_model.cc
index 2e2efe7..a3d073a1 100644
--- a/chrome/browser/ui/toolbar/app_menu_model.cc
+++ b/chrome/browser/ui/toolbar/app_menu_model.cc
@@ -900,7 +900,10 @@
   if (base::FeatureList::IsEnabled(features::kTabstripDeclutter) &&
       !browser->profile()->IsIncognitoProfile()) {
     AddItemWithStringIdAndVectorIcon(this, IDC_DECLUTTER_TABS,
-                                     IDS_DECLUTTER_MENU, kTabCloseInactiveIcon);
+                                     features::IsTabstripDedupeEnabled()
+                                         ? IDS_DECLUTTER_MENU
+                                         : IDS_DECLUTTER_MENU_NO_DEDUPE,
+                                     kTabCloseInactiveIcon);
     SetIsNewFeatureAt(
         GetIndexOfCommandId(IDC_DECLUTTER_TABS).value(),
         browser->window()->MaybeShowNewBadgeFor(features::kTabstripDeclutter));
diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc
index 53565e5..f09f5a15 100644
--- a/chrome/browser/ui/ui_features.cc
+++ b/chrome/browser/ui/ui_features.cc
@@ -448,4 +448,8 @@
              "InlineFullscreenPerfExperiment",
              base::FEATURE_ENABLED_BY_DEFAULT);
 
+BASE_FEATURE(kPageActionsMigration,
+             "PageActionsMigration",
+             base::FEATURE_DISABLED_BY_DEFAULT);
+
 }  // namespace features
diff --git a/chrome/browser/ui/ui_features.h b/chrome/browser/ui/ui_features.h
index ce30e6d8..20ff83e1 100644
--- a/chrome/browser/ui/ui_features.h
+++ b/chrome/browser/ui/ui_features.h
@@ -272,6 +272,10 @@
 // checking is enabled.
 BASE_DECLARE_FEATURE(kInlineFullscreenPerfExperiment);
 
+// Controls whether the new page actions framework should be displaying page
+// actions.
+BASE_DECLARE_FEATURE(kPageActionsMigration);
+
 }  // namespace features
 
 #endif  // CHROME_BROWSER_UI_UI_FEATURES_H_
diff --git a/chrome/browser/ui/views/accelerator_table_unittest.cc b/chrome/browser/ui/views/accelerator_table_unittest.cc
index b661d504..960eb4e 100644
--- a/chrome/browser/ui/views/accelerator_table_unittest.cc
+++ b/chrome/browser/ui/views/accelerator_table_unittest.cc
@@ -89,8 +89,7 @@
 #if BUILDFLAG(IS_CHROMEOS_ASH)
 TEST(AcceleratorTableTest, CheckDuplicatedAcceleratorsAsh) {
   base::flat_set<AcceleratorMapping, Cmp> accelerators(GetAcceleratorList());
-  for (size_t i = 0; i < ash::kAcceleratorDataLength; ++i) {
-    const ash::AcceleratorData& ash_entry = ash::kAcceleratorData[i];
+  for (const ash::AcceleratorData& ash_entry : ash::kAcceleratorData) {
     if (!ash_entry.trigger_on_press)
       continue;  // kAcceleratorMap does not have any release accelerators.
     // A few shortcuts are defined in the browser as well as in ash so that web
diff --git a/chrome/browser/ui/views/accelerator_utils_aura.cc b/chrome/browser/ui/views/accelerator_utils_aura.cc
index 9cbb557..6584f30 100644
--- a/chrome/browser/ui/views/accelerator_utils_aura.cc
+++ b/chrome/browser/ui/views/accelerator_utils_aura.cc
@@ -22,8 +22,7 @@
 
 bool IsChromeAccelerator(const ui::Accelerator& accelerator) {
 #if BUILDFLAG(IS_CHROMEOS_ASH)
-  for (size_t i = 0; i < ash::kAcceleratorDataLength; ++i) {
-    const ash::AcceleratorData& accel_data = ash::kAcceleratorData[i];
+  for (const ash::AcceleratorData& accel_data : ash::kAcceleratorData) {
     if (accel_data.keycode == accelerator.key_code() &&
         accel_data.modifiers == accelerator.modifiers()) {
       return true;
diff --git a/chrome/browser/ui/views/glic/glic_view.cc b/chrome/browser/ui/views/glic/glic_view.cc
index 464d9eb..f98e545e 100644
--- a/chrome/browser/ui/views/glic/glic_view.cc
+++ b/chrome/browser/ui/views/glic/glic_view.cc
@@ -8,6 +8,7 @@
 #include "chrome/browser/profiles/keep_alive/profile_keep_alive_types.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/browser/ui/browser_finder.h"
 #include "chrome/browser/ui/browser_list.h"
 #include "chrome/browser/ui/layout_constants.h"
 #include "chrome/browser/ui/views/frame/browser_view.h"
@@ -107,16 +108,15 @@
         views::Widget::MoveLoopSource::kMouse;
     GetWidget()->RunMoveLoop(drag_offset, move_loop_source,
                              views::Widget::MoveLoopEscapeBehavior::kDontHide);
-    SnapToBrowserIfInBounds(
+    HandleBrowserPinning(
         GetWidget()->GetWindowBoundsInScreen().OffsetFromOrigin() +
         mouse_location);
     in_move_loop_ = false;
   }
 }
 
-void GlicView::SnapToBrowserIfInBounds(gfx::Vector2d mouse_location) {
+void GlicView::HandleBrowserPinning(gfx::Vector2d mouse_location) {
   views::Widget* widget = GetWidget();
-  gfx::Rect glic_rect = widget->GetWindowBoundsInScreen();
   // Loops through all browsers in activation order with the latest accessed
   // browser first.
   for (Browser* browser : BrowserList::GetInstance()->OrderedByActivation()) {
@@ -133,24 +133,106 @@
             web_view()->GetBrowserContext()) {
       continue;
     }
-    gfx::Rect glic_button_rect = browser->window()
-                                     ->AsBrowserView()
-                                     ->tab_strip_region_view()
-                                     ->glic_button()
-                                     ->GetBoundsInScreen();
+    auto* tab_strip_region_view =
+        browser->window()->AsBrowserView()->tab_strip_region_view();
+    if (!tab_strip_region_view || !tab_strip_region_view->glic_button()) {
+      continue;
+    }
+    gfx::Rect glic_button_rect =
+        tab_strip_region_view->glic_button()->GetBoundsInScreen();
 
     float glic_button_mouse_distance =
         (glic_button_rect.CenterPoint() -
          gfx::PointAtOffsetFromOrigin(mouse_location))
             .Length();
     if (glic_button_mouse_distance < kSnapDistanceThreshold) {
-      // TODO fix exact snap location
-      gfx::Point top_right = glic_button_rect.top_right();
-      int tab_strip_padding = GetLayoutConstant(TAB_STRIP_PADDING);
-      glic_rect.set_x(top_right.x() - glic_rect.width() - tab_strip_padding);
-      glic_rect.set_y(top_right.y() + tab_strip_padding);
-      widget->SetBounds(glic_rect);
+      MoveToBrowserPinTarget(browser);
+      // Close holder window if existing
+      if (holder_widget_) {
+        holder_widget_->CloseWithReason(
+            views::Widget::ClosedReason::kLostFocus);
+        holder_widget_.reset();
+      }
+      // add observer to new parent
+      pinned_target_widget_observer_.SetPinnedTargetWidget(window_widget);
+      views::Widget::ReparentNativeView(widget->GetNativeView(),
+                                        window_widget->GetNativeView());
+    } else if (widget->parent() == window_widget) {
+      // If farther than the snapping threshold from the current parent
+      // widget, open a blank holder window to reparent to
+      MaybeCreateHolderWindowAndReparent(widget);
     }
   }
 }
+
+void GlicView::MoveToBrowserPinTarget(Browser* browser) {
+  views::Widget* widget = GetWidget();
+  gfx::Rect glic_rect = widget->GetWindowBoundsInScreen();
+  // TODO fix exact snap location
+  gfx::Rect glic_button_rect = browser->window()
+                                   ->AsBrowserView()
+                                   ->tab_strip_region_view()
+                                   ->glic_button()
+                                   ->GetBoundsInScreen();
+  gfx::Point top_right = glic_button_rect.top_right();
+  int tab_strip_padding = GetLayoutConstant(TAB_STRIP_PADDING);
+  glic_rect.set_x(top_right.x() - glic_rect.width() - tab_strip_padding);
+  glic_rect.set_y(top_right.y() + tab_strip_padding);
+  widget->SetBounds(glic_rect);
+}
+
+void GlicView::MaybeCreateHolderWindowAndReparent(views::Widget* widget) {
+  pinned_target_widget_observer_.SetPinnedTargetWidget(nullptr);
+  if (!holder_widget_) {
+    holder_widget_ = std::make_unique<views::Widget>();
+    views::Widget::InitParams params(
+        views::Widget::InitParams::CLIENT_OWNS_WIDGET,
+        views::Widget::InitParams::TYPE_WINDOW_FRAMELESS);
+    params.activatable = views::Widget::InitParams::Activatable::kNo;
+    params.accept_events = false;
+    // Name specified for debug purposes
+    params.name = "HolderWindow";
+    params.bounds = gfx::Rect(0, 0, 0, 0);
+    params.opacity = views::Widget::InitParams::WindowOpacity::kTranslucent;
+    holder_widget_->Init(std::move(params));
+  }
+  views::Widget::ReparentNativeView(widget->GetNativeView(),
+                                    holder_widget_->GetNativeView());
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// PinnedTargetWidgetObserver implementations:
+GlicView::PinnedTargetWidgetObserver::PinnedTargetWidgetObserver(GlicView* glic)
+    : glic_view_(glic) {}
+
+GlicView::PinnedTargetWidgetObserver::~PinnedTargetWidgetObserver() {
+  SetPinnedTargetWidget(nullptr);
+}
+
+void GlicView::PinnedTargetWidgetObserver::SetPinnedTargetWidget(
+    views::Widget* widget) {
+  if (widget == pinned_target_widget_) {
+    return;
+  }
+  if (pinned_target_widget_ && pinned_target_widget_->HasObserver(this)) {
+    pinned_target_widget_->RemoveObserver(this);
+    pinned_target_widget_ = nullptr;
+  }
+  if (widget && !widget->HasObserver(this)) {
+    widget->AddObserver(this);
+    pinned_target_widget_ = widget;
+  }
+}
+
+void GlicView::PinnedTargetWidgetObserver::OnWidgetBoundsChanged(
+    views::Widget* widget,
+    const gfx::Rect& new_bounds) {
+  glic_view_->MoveToBrowserPinTarget(
+      chrome::FindBrowserWithWindow(widget->GetNativeWindow()));
+}
+
+void GlicView::PinnedTargetWidgetObserver::OnWidgetDestroying(
+    views::Widget* widget) {
+  SetPinnedTargetWidget(nullptr);
+}
 }  // namespace glic
diff --git a/chrome/browser/ui/views/glic/glic_view.h b/chrome/browser/ui/views/glic/glic_view.h
index f85c7356..12deb22 100644
--- a/chrome/browser/ui/views/glic/glic_view.h
+++ b/chrome/browser/ui/views/glic/glic_view.h
@@ -13,6 +13,7 @@
 #include "ui/views/view.h"
 #include "ui/views/widget/unique_widget_ptr.h"
 
+class Browser;
 namespace gfx {
 class Rect;
 }  // namespace gfx
@@ -50,6 +51,27 @@
   views::WebView* web_view() { return web_view_; }
 
  private:
+  // observes the pinned target
+  class PinnedTargetWidgetObserver : public views::WidgetObserver {
+   public:
+    explicit PinnedTargetWidgetObserver(GlicView* glic);
+    PinnedTargetWidgetObserver(const PinnedTargetWidgetObserver&) = delete;
+    PinnedTargetWidgetObserver& operator=(const PinnedTargetWidgetObserver&) =
+        delete;
+    ~PinnedTargetWidgetObserver() override;
+    void SetPinnedTargetWidget(views::Widget* widget);
+
+    void OnWidgetBoundsChanged(views::Widget* widget,
+                               const gfx::Rect& new_bounds) override;
+    void OnWidgetDestroying(views::Widget* widget) override;
+
+   private:
+    const raw_ptr<GlicView> glic_view_;
+    raw_ptr<views::Widget> pinned_target_widget_;
+  };
+
+  PinnedTargetWidgetObserver pinned_target_widget_observer_{this};
+
   // Used to monitor key and mouse events from native window.
   std::unique_ptr<WindowEventObserver> window_event_observer_;
   // True while RunMoveLoop() has been called on a widget.
@@ -63,7 +85,17 @@
 
   // If the mouse is in snapping distance of a browser's glic button, it snaps
   // glic to the top right of the browser's glic button.
-  void SnapToBrowserIfInBounds(gfx::Vector2d mouse_location);
+  void HandleBrowserPinning(gfx::Vector2d mouse_location);
+
+  // When glic is unpinned, reparent to empty holder widget. Initializes the
+  // empty holder widget if it hasn't been created yet.g
+  void MaybeCreateHolderWindowAndReparent(views::Widget* widget);
+
+  // Moves glic view to the pin target of the specified browser.
+  void MoveToBrowserPinTarget(Browser* browser);
+
+  // Empty holder widget to reparent to when unpinned.
+  std::unique_ptr<views::Widget> holder_widget_;
 };
 
 }  // namespace glic
diff --git a/chrome/browser/ui/views/location_bar/lens_overlay_page_action_icon_view.cc b/chrome/browser/ui/views/location_bar/lens_overlay_page_action_icon_view.cc
index 649aef05..a050d72c 100644
--- a/chrome/browser/ui/views/location_bar/lens_overlay_page_action_icon_view.cc
+++ b/chrome/browser/ui/views/location_bar/lens_overlay_page_action_icon_view.cc
@@ -33,9 +33,9 @@
 
 namespace {
 
-// TODO(tluk): Similar bespoke checks are used throughout the codebase, this
-// approach is taken from BookmarkTabHelper. This should be factored out as a
-// common util and other callsites converted to use this.
+// TODO(crbug.com/382494946): Similar bespoke checks are used throughout the
+// codebase, this approach is taken from BookmarkTabHelper. This should be
+// factored out as a common util and other callsites converted to use this.
 bool IsNewTabPage(content::WebContents* const web_contents) {
   // Use the committed entry (or the visible entry, if the committed entry is
   // the initial NavigationEntry) so the bookmarks bar disappears at the same
diff --git a/chrome/browser/ui/views/location_bar/lens_overlay_page_action_icon_view_interactive_uitest.cc b/chrome/browser/ui/views/location_bar/lens_overlay_page_action_icon_view_interactive_uitest.cc
index 17fe3af..01a7e3b 100644
--- a/chrome/browser/ui/views/location_bar/lens_overlay_page_action_icon_view_interactive_uitest.cc
+++ b/chrome/browser/ui/views/location_bar/lens_overlay_page_action_icon_view_interactive_uitest.cc
@@ -3,11 +3,19 @@
 // found in the LICENSE file.
 
 // #include "build/build_config.h"
+#include <memory>
+
+#include "base/functional/callback_forward.h"
 #include "base/test/run_until.h"
+#include "chrome/browser/ui/actions/chrome_action_id.h"
 #include "chrome/browser/ui/browser_element_identifiers.h"
+#include "chrome/browser/ui/tabs/public/tab_features.h"
+#include "chrome/browser/ui/ui_features.h"
 #include "chrome/browser/ui/views/frame/browser_view.h"
 #include "chrome/browser/ui/views/location_bar/lens_overlay_page_action_icon_view.h"
 #include "chrome/browser/ui/views/location_bar/location_bar_view.h"
+#include "chrome/browser/ui/views/page_action/page_action_controller.h"
+#include "chrome/browser/ui/views/page_action/page_action_view.h"
 #include "chrome/browser/ui/views/toolbar/toolbar_view.h"
 #include "chrome/common/webui_url_constants.h"
 #include "chrome/test/base/in_process_browser_test.h"
@@ -17,6 +25,7 @@
 #include "content/public/test/browser_test.h"
 #include "content/public/test/browser_test_utils.h"
 #include "ui/views/interaction/element_tracker_views.h"
+#include "ui/views/test/widget_test.h"
 #include "url/url_constants.h"
 
 using ::testing::MatchesRegex;
@@ -66,6 +75,24 @@
         browser_view->toolbar()->location_bar());
   }
 
+  page_actions::PageActionView* lens_overlay_page_action_view() {
+    return static_cast<page_actions::PageActionView*>(
+        views::test::AnyViewMatchingPredicate(
+            location_bar(), [=](const views::View* candidate) -> bool {
+              return IsViewClass<page_actions::PageActionView>(candidate) &&
+                     static_cast<const page_actions::PageActionView*>(candidate)
+                             ->GetActionId() ==
+                         kActionSidePanelShowLensOverlayResults;
+            }));
+  }
+
+  page_actions::PageActionController* page_action_controller() {
+    return browser()
+        ->GetActiveTabInterface()
+        ->GetTabFeatures()
+        ->page_action_controller();
+  }
+
  protected:
   base::test::ScopedFeatureList scoped_feature_list_;
 };
@@ -74,7 +101,12 @@
     : public LensOverlayPageActionIconViewTestBase {
  public:
   LensOverlayPageActionIconViewTest() {
-    scoped_feature_list_.InitWithFeatures({lens::features::kLensOverlay}, {});
+    scoped_feature_list_.InitWithFeatures(
+        {
+            lens::features::kLensOverlay,
+            ::features::kPageActionsMigration,
+        },
+        {});
   }
 };
 
@@ -94,18 +126,23 @@
       ui_test_utils::NavigateToURL(browser(), GURL(url::kAboutBlankURL)));
 
   LensOverlayPageActionIconView* icon_view = lens_overlay_icon_view();
+  page_actions::PageActionView* page_action_view =
+      lens_overlay_page_action_view();
   views::FocusManager* focus_manager = icon_view->GetFocusManager();
   focus_manager->ClearFocus();
   EXPECT_FALSE(focus_manager->GetFocusedView());
   EXPECT_FALSE(icon_view->GetVisible());
+  EXPECT_FALSE(page_action_view->GetVisible());
 
   // Focus in the location bar should show the icon.
   base::RunLoop run_loop;
   icon_view->set_update_callback_for_testing(run_loop.QuitClosure());
+
   location_bar()->FocusLocation(false);
   EXPECT_TRUE(focus_manager->GetFocusedView());
   run_loop.Run();
   EXPECT_TRUE(icon_view->GetVisible());
+  EXPECT_TRUE(page_action_view->GetVisible());
 }
 
 IN_PROC_BROWSER_TEST_F(LensOverlayPageActionIconViewTest,
@@ -124,9 +161,12 @@
 
   LensOverlayPageActionIconView* icon_view = lens_overlay_icon_view();
   views::FocusManager* focus_manager = icon_view->GetFocusManager();
+  page_actions::PageActionView* page_action_view =
+      lens_overlay_page_action_view();
   focus_manager->ClearFocus();
   EXPECT_FALSE(focus_manager->GetFocusedView());
   EXPECT_FALSE(icon_view->GetVisible());
+  EXPECT_FALSE(page_action_view->GetVisible());
 
   // Focus in the location bar should show the icon.
   base::RunLoop run_loop;
@@ -135,6 +175,7 @@
   EXPECT_TRUE(focus_manager->GetFocusedView());
   run_loop.Run();
   EXPECT_TRUE(icon_view->GetVisible());
+  EXPECT_TRUE(page_action_view->GetVisible());
 
   // Executing the lens overlay icon view with keyboard source should open a new
   // tab.
@@ -159,10 +200,13 @@
       ui_test_utils::NavigateToURL(browser(), GURL(url::kAboutBlankURL)));
 
   LensOverlayPageActionIconView* icon_view = lens_overlay_icon_view();
+  page_actions::PageActionView* page_action_view =
+      lens_overlay_page_action_view();
   views::FocusManager* focus_manager = icon_view->GetFocusManager();
   focus_manager->ClearFocus();
   EXPECT_FALSE(focus_manager->GetFocusedView());
   EXPECT_FALSE(icon_view->GetVisible());
+  EXPECT_FALSE(page_action_view->GetVisible());
 
   // The icon should remain hidden despite focus in the location bar.
   base::RunLoop run_loop;
@@ -171,6 +215,7 @@
   EXPECT_TRUE(focus_manager->GetFocusedView());
   run_loop.Run();
   EXPECT_FALSE(icon_view->GetVisible());
+  EXPECT_FALSE(page_action_view->GetVisible());
 }
 
 IN_PROC_BROWSER_TEST_F(LensOverlayPageActionIconViewTest, DoesNotShowOnNTP) {
@@ -179,10 +224,13 @@
       browser(), GURL(chrome::kChromeUINewTabPageURL)));
 
   LensOverlayPageActionIconView* icon_view = lens_overlay_icon_view();
+  page_actions::PageActionView* page_action_view =
+      lens_overlay_page_action_view();
   views::FocusManager* focus_manager = icon_view->GetFocusManager();
   focus_manager->ClearFocus();
   EXPECT_FALSE(focus_manager->GetFocusedView());
   EXPECT_FALSE(icon_view->GetVisible());
+  EXPECT_FALSE(page_action_view->GetVisible());
 
   // The icon should remain hidden despite focus in the location bar.
   base::RunLoop run_loop;
@@ -191,6 +239,7 @@
   EXPECT_TRUE(focus_manager->GetFocusedView());
   run_loop.Run();
   EXPECT_FALSE(icon_view->GetVisible());
+  EXPECT_FALSE(page_action_view->GetVisible());
 }
 
 IN_PROC_BROWSER_TEST_F(
@@ -215,10 +264,13 @@
       ui_test_utils::NavigateToURL(browser(), GURL(url::kAboutBlankURL)));
 
   LensOverlayPageActionIconView* icon_view = lens_overlay_icon_view();
+  page_actions::PageActionView* page_action_view =
+      lens_overlay_page_action_view();
   views::FocusManager* focus_manager = icon_view->GetFocusManager();
   focus_manager->ClearFocus();
   EXPECT_FALSE(focus_manager->GetFocusedView());
   EXPECT_FALSE(icon_view->GetVisible());
+  EXPECT_FALSE(page_action_view->GetVisible());
 
   // Focus in the location bar should show the icon.
   base::RunLoop run_loop;
@@ -227,16 +279,19 @@
   EXPECT_TRUE(focus_manager->GetFocusedView());
   run_loop.Run();
   EXPECT_TRUE(icon_view->GetVisible());
+  EXPECT_TRUE(page_action_view->GetVisible());
 
   // Disable the preference, the entrypoint should immediately disappear.
   browser()->profile()->GetPrefs()->SetBoolean(omnibox::kShowGoogleLensShortcut,
                                                false);
   EXPECT_FALSE(icon_view->GetVisible());
+  EXPECT_FALSE(page_action_view->GetVisible());
 
   // Re-enable the preference, the entrypoint should immediately become visible.
   browser()->profile()->GetPrefs()->SetBoolean(omnibox::kShowGoogleLensShortcut,
                                                true);
   EXPECT_TRUE(icon_view->GetVisible());
+  EXPECT_TRUE(page_action_view->GetVisible());
 }
 
 }  // namespace
diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.cc b/chrome/browser/ui/views/location_bar/location_bar_view.cc
index a08a536..753533e 100644
--- a/chrome/browser/ui/views/location_bar/location_bar_view.cc
+++ b/chrome/browser/ui/views/location_bar/location_bar_view.cc
@@ -592,6 +592,9 @@
 }
 
 void LocationBarView::OnDidChangeFocus(views::View* before, views::View* now) {
+  // TODO(crbug.com/376283383): Remove this once Lens Overlay is migrated to the
+  // new page actions design.
+
   // This is very blunt. There's a page action (LensOverlayPageActionView) whose
   // visibility state depends on whether focus is within the location bar or
   // not. Maybe that dependency should be better understood rather than "refresh
diff --git a/chrome/browser/ui/views/page_action/page_action_view.cc b/chrome/browser/ui/views/page_action/page_action_view.cc
index 5a4cb44..5a9dbab 100644
--- a/chrome/browser/ui/views/page_action/page_action_view.cc
+++ b/chrome/browser/ui/views/page_action/page_action_view.cc
@@ -52,6 +52,10 @@
                                                    observation_.GetSource());
 }
 
+actions::ActionId PageActionView::GetActionId() const {
+  return action_item_->GetActionId().value();
+}
+
 BEGIN_METADATA(PageActionView)
 END_METADATA
 
diff --git a/chrome/browser/ui/views/page_action/page_action_view.h b/chrome/browser/ui/views/page_action/page_action_view.h
index f686e76..1563b11 100644
--- a/chrome/browser/ui/views/page_action/page_action_view.h
+++ b/chrome/browser/ui/views/page_action/page_action_view.h
@@ -37,6 +37,8 @@
   void OnPageActionModelChanged(PageActionModel* model) override;
   void OnPageActionModelWillBeDeleted(PageActionModel* model) override;
 
+  actions::ActionId GetActionId() const;
+
  private:
   base::WeakPtr<actions::ActionItem> action_item_ = nullptr;
   base::ScopedObservation<PageActionModel, PageActionModelObserver>
diff --git a/chrome/browser/ui/views/page_info/merchant_trust_side_panel_coordinator_browsertest.cc b/chrome/browser/ui/views/page_info/merchant_trust_side_panel_coordinator_browsertest.cc
index e4f0e01..ae4084d1 100644
--- a/chrome/browser/ui/views/page_info/merchant_trust_side_panel_coordinator_browsertest.cc
+++ b/chrome/browser/ui/views/page_info/merchant_trust_side_panel_coordinator_browsertest.cc
@@ -34,8 +34,8 @@
 
 namespace {
 const char kMerchantReviewsUrl[] = "reviews.test";
-const char kUrlWithMerchantTrustData[] = "a.test";
-const char kUrlWithoutMerchantTrustData[] = "b.test";
+const char kUrlWithMerchantTrustData[] = "merchant.test";
+const char kUrlWithoutMerchantTrustData[] = "no-merchant.test";
 
 page_info::MerchantData CreateValidMerchantData() {
   page_info::MerchantData merchant_data;
@@ -49,7 +49,8 @@
 
 class MockMerchantTrustService : public page_info::MerchantTrustService {
  public:
-  MockMerchantTrustService() : MerchantTrustService(nullptr, false, nullptr) {}
+ MockMerchantTrustService()
+      : MerchantTrustService(nullptr, false, nullptr) {}
   MOCK_METHOD(void,
               GetMerchantTrustInfo,
               (const GURL&, page_info::MerchantDataCallback),
@@ -192,104 +193,8 @@
             kMerchantReviewsGURL);
 }
 
-IN_PROC_BROWSER_TEST_F(MerchantTrustSidePanelCoordinatorBrowserTest,
-                       ShowSameTabNavSameDocumentReplaceState) {
-  GURL kGURLWithMerchantTrustData = CreateUrl(kUrlWithMerchantTrustData);
-  ASSERT_TRUE(
-      ui_test_utils::NavigateToURL(browser(), kGURLWithMerchantTrustData));
-  ASSERT_EQ(side_panel_coordinator()->GetCurrentEntryId(), std::nullopt);
-
-  // Test showing a side panel.
-  GURL kMerchantReviewsGURL = CreateUrl(kMerchantReviewsUrl);
-  ShowMerchantTrustSidePanel(web_contents(), kMerchantReviewsGURL);
-  EXPECT_TRUE(side_panel_coordinator()->IsSidePanelShowing());
-  EXPECT_EQ(side_panel_coordinator()->GetCurrentEntryId(),
-            SidePanelEntry::Id::kMerchantTrust);
-
-  // Replace state with new path.
-  GURL kUrlMerchantTrustWithPath2 =
-      kGURLWithMerchantTrustData.Resolve("/title2.html");
-  ASSERT_TRUE(content::ExecJs(web_contents(),
-                              "history.replaceState({},'','title2.html')"));
-  EXPECT_TRUE(content::WaitForLoadStop(web_contents()));
-
-  // Check that side panel remains open on replace state.
-  EXPECT_TRUE(side_panel_coordinator()->IsSidePanelShowing());
-  EXPECT_EQ(side_panel_coordinator()->GetCurrentEntryId(),
-            SidePanelEntry::Id::kMerchantTrust);
-
-  // Check that the MerchantTrust url remains the same.
-  EXPECT_TRUE(side_panel_coordinator()->GetCurrentSidePanelEntryForTesting());
-  EXPECT_EQ(side_panel_coordinator()
-                ->GetCurrentSidePanelEntryForTesting()
-                ->GetOpenInNewTabURL(),
-            kMerchantReviewsGURL);
-}
-
-IN_PROC_BROWSER_TEST_F(MerchantTrustSidePanelCoordinatorBrowserTest,
-                       ShowSameTabNavSameDocumentReplaceStateRef) {
-  ASSERT_TRUE(ui_test_utils::NavigateToURL(
-      browser(), CreateUrl(kUrlWithMerchantTrustData)));
-  ASSERT_EQ(side_panel_coordinator()->GetCurrentEntryId(), std::nullopt);
-
-  // Test showing a side panel.
-  GURL kMerchantReviewsGURL = CreateUrl(kMerchantReviewsUrl);
-  ShowMerchantTrustSidePanel(web_contents(), kMerchantReviewsGURL);
-  EXPECT_TRUE(side_panel_coordinator()->IsSidePanelShowing());
-  EXPECT_EQ(side_panel_coordinator()->GetCurrentEntryId(),
-            SidePanelEntry::Id::kMerchantTrust);
-
-  // Replace state with anchor.
-  ASSERT_TRUE(
-      content::ExecJs(web_contents(), "history.replaceState({},'','#ref')"));
-  EXPECT_TRUE(content::WaitForLoadStop(web_contents()));
-
-  // Check that side panel remains open on replace state.
-  EXPECT_TRUE(side_panel_coordinator()->IsSidePanelShowing());
-  EXPECT_EQ(side_panel_coordinator()->GetCurrentEntryId(),
-            SidePanelEntry::Id::kMerchantTrust);
-
-  // Check that the AboutThisSite url remains the same.
-  EXPECT_TRUE(side_panel_coordinator()->GetCurrentSidePanelEntryForTesting());
-  EXPECT_EQ(side_panel_coordinator()
-                ->GetCurrentSidePanelEntryForTesting()
-                ->GetOpenInNewTabURL(),
-            kMerchantReviewsGURL);
-}
-
-IN_PROC_BROWSER_TEST_F(MerchantTrustSidePanelCoordinatorBrowserTest,
-                       ShowSameTabNavSameDocumentPushState) {
-  GURL kGURLWithMerchantTrustData = CreateUrl(kUrlWithMerchantTrustData);
-  ASSERT_TRUE(
-      ui_test_utils::NavigateToURL(browser(), kGURLWithMerchantTrustData));
-  ASSERT_EQ(side_panel_coordinator()->GetCurrentEntryId(), std::nullopt);
-
-  // Test showing a side panel.
-  ShowMerchantTrustSidePanel(web_contents(), kGURLWithMerchantTrustData);
-  EXPECT_TRUE(side_panel_coordinator()->IsSidePanelShowing());
-  EXPECT_EQ(side_panel_coordinator()->GetCurrentEntryId(),
-            SidePanelEntry::Id::kMerchantTrust);
-
-  // Push state with new path.
-  GURL kUrlMerchantTrustWithPath2 =
-      kGURLWithMerchantTrustData.Resolve("/title2.html");
-  ASSERT_TRUE(content::ExecJs(web_contents(),
-                              "history.pushState({},'','title2.html')"));
-  EXPECT_TRUE(content::WaitForLoadStop(web_contents()));
-
-  // Check that side panel remains open on push state.
-  EXPECT_TRUE(side_panel_coordinator()->IsSidePanelShowing());
-  EXPECT_EQ(side_panel_coordinator()->GetCurrentEntryId(),
-            SidePanelEntry::Id::kMerchantTrust);
-
-  // Check that the MerchantTrust url isn't changed.
-
-  EXPECT_TRUE(side_panel_coordinator()->GetCurrentSidePanelEntryForTesting());
-  EXPECT_EQ(side_panel_coordinator()
-                ->GetCurrentSidePanelEntryForTesting()
-                ->GetOpenInNewTabURL(),
-            kGURLWithMerchantTrustData);
-}
+// TODO(crbug.com/378671877): Add tests for same tab, replace history
+// navigations.
 
 IN_PROC_BROWSER_TEST_F(MerchantTrustSidePanelCoordinatorBrowserTest,
                        RemainsClosedOnNonMerchantSameTabNav) {
diff --git a/chrome/browser/ui/views/privacy_sandbox/DIR_METADATA b/chrome/browser/ui/views/privacy_sandbox/DIR_METADATA
index 46191cc..cb1e73c9 100644
--- a/chrome/browser/ui/views/privacy_sandbox/DIR_METADATA
+++ b/chrome/browser/ui/views/privacy_sandbox/DIR_METADATA
@@ -1,7 +1,7 @@
 monorail: {
-  component: "UI>Settings>Privacy"
+  component: "UI>Browser>Privacy Sandbox"
 }
-team_email: "chrome-privacy-controls@google.com"
+team_email: "koilos@google.com"
 buganizer_public: {
-  component_id: 1457044
+  component_id: 1697287
 }
diff --git a/chrome/browser/ui/views/tabs/tab_search_container.cc b/chrome/browser/ui/views/tabs/tab_search_container.cc
index 23312a1..bc2a0291 100644
--- a/chrome/browser/ui/views/tabs/tab_search_container.cc
+++ b/chrome/browser/ui/views/tabs/tab_search_container.cc
@@ -335,8 +335,8 @@
       base::BindRepeating(&TabSearchContainer::OnTabDeclutterButtonDismissed,
                           base::Unretained(this)),
       features::IsTabstripDedupeEnabled()
-          ? l10n_util::GetStringUTF16(IDS_TAB_DECLUTTER_WITH_DEDUPE)
-          : l10n_util::GetStringUTF16(IDS_TAB_DECLUTTER),
+          ? l10n_util::GetStringUTF16(IDS_TAB_DECLUTTER)
+          : l10n_util::GetStringUTF16(IDS_TAB_DECLUTTER_NO_DEDUPE),
       kTabDeclutterButtonElementId,
       features::IsTabstripComboButtonEnabled()
           ? Edge::kNone
@@ -344,12 +344,12 @@
 
   button->SetTooltipText(
       features::IsTabstripDedupeEnabled()
-          ? l10n_util::GetStringUTF16(IDS_TOOLTIP_TAB_DECLUTTER_WITH_DEDUPE)
-          : l10n_util::GetStringUTF16(IDS_TOOLTIP_TAB_DECLUTTER));
+          ? l10n_util::GetStringUTF16(IDS_TOOLTIP_TAB_DECLUTTER)
+          : l10n_util::GetStringUTF16(IDS_TOOLTIP_TAB_DECLUTTER_NO_DEDUPE));
   button->GetViewAccessibility().SetName(
       features::IsTabstripDedupeEnabled()
-          ? l10n_util::GetStringUTF16(IDS_ACCNAME_TAB_DECLUTTER_WITH_DEDUPE)
-          : l10n_util::GetStringUTF16(IDS_ACCNAME_TAB_DECLUTTER));
+          ? l10n_util::GetStringUTF16(IDS_ACCNAME_TAB_DECLUTTER)
+          : l10n_util::GetStringUTF16(IDS_ACCNAME_TAB_DECLUTTER_NO_DEDUPE));
 
   button->SetProperty(views::kCrossAxisAlignmentKey,
                       views::LayoutAlignment::kCenter);
diff --git a/chrome/browser/ui/views/webid/fedcm_account_selection_view_desktop.h b/chrome/browser/ui/views/webid/fedcm_account_selection_view_desktop.h
index e86dff7..5d6b708 100644
--- a/chrome/browser/ui/views/webid/fedcm_account_selection_view_desktop.h
+++ b/chrome/browser/ui/views/webid/fedcm_account_selection_view_desktop.h
@@ -370,14 +370,22 @@
   // This enum describes the outcome of the loading dialog and is used for
   // histograms. Do not remove or modify existing values, but you may add new
   // values at the end. This enum should be kept in sync with
+  // LoadingDialogResult in
+  // chrome/browser/ui/android/webid/AccountSelectionMediator.java as well as
   // FedCmLoadingDialogResult in tools/metrics/histograms/enums.xml.
   enum class LoadingDialogResult {
     kProceed,
     kCancel,
     kProceedThroughPopup,
     kDestroy,
+    // Android-specific
+    kSwipe,
+    // Android-specific
+    kBackPress,
+    // Android-specific
+    kTapScrim,
 
-    kMaxValue = kDestroy
+    kMaxValue = kTapScrim
   };
 
   // This enum describes the outcome of the disclosure dialog and is used for
diff --git a/chrome/browser/ui/webui/certificate_manager/certificate_manager_utils.cc b/chrome/browser/ui/webui/certificate_manager/certificate_manager_utils.cc
index 3ddb5696..a2ef0e6 100644
--- a/chrome/browser/ui/webui/certificate_manager/certificate_manager_utils.cc
+++ b/chrome/browser/ui/webui/certificate_manager/certificate_manager_utils.cc
@@ -29,15 +29,14 @@
     bssl::UniquePtr<CRYPTO_BUFFER> cert,
     chrome_browser_server_certificate_database::CertificateMetadata
         cert_metadata,
-    base::RepeatingCallback<
-        void(net::ServerCertificateDatabase::CertInformation,
-             base::OnceCallback<void(bool)>)>) {
+    CertMetadataModificationsCallback modifications_callback) {
   if (!web_contents) {
     return;
   }
 
   CertificateViewerDialog::ShowConstrainedWithMetadata(
-      std::move(cert), std::move(cert_metadata), web_contents.get(),
+      std::move(cert), std::move(cert_metadata),
+      std::move(modifications_callback), web_contents.get(),
       web_contents->GetTopLevelNativeWindow());
 }
 
diff --git a/chrome/browser/ui/webui/certificate_manager/certificate_manager_utils.h b/chrome/browser/ui/webui/certificate_manager/certificate_manager_utils.h
index 051280ee..631cf6b 100644
--- a/chrome/browser/ui/webui/certificate_manager/certificate_manager_utils.h
+++ b/chrome/browser/ui/webui/certificate_manager/certificate_manager_utils.h
@@ -11,6 +11,7 @@
 #include "base/memory/weak_ptr.h"
 #include "chrome/browser/net/server_certificate_database.h"
 #include "chrome/browser/net/server_certificate_database.pb.h"
+#include "chrome/browser/ui/webui/certificate_viewer/certificate_viewer_webui.h"
 #include "components/prefs/pref_service.h"
 #include "content/public/browser/web_contents.h"
 
@@ -48,9 +49,7 @@
     bssl::UniquePtr<CRYPTO_BUFFER> cert,
     chrome_browser_server_certificate_database::CertificateMetadata
         cert_metadata,
-    base::RepeatingCallback<
-        void(net::ServerCertificateDatabase::CertInformation,
-             base::OnceCallback<void(bool)>)> modifications_callback);
+    CertMetadataModificationsCallback modifications_callback);
 
 bool IsCACertificateManagementAllowed(const PrefService& prefs);
 
diff --git a/chrome/browser/ui/webui/certificate_manager/user_cert_sources.cc b/chrome/browser/ui/webui/certificate_manager/user_cert_sources.cc
index b04a291..77b12ecb 100644
--- a/chrome/browser/ui/webui/certificate_manager/user_cert_sources.cc
+++ b/chrome/browser/ui/webui/certificate_manager/user_cert_sources.cc
@@ -72,6 +72,10 @@
           profile.get());
   std::vector<net::ServerCertificateDatabase::CertInformation> cert_infos;
   cert_infos.push_back(std::move(cert_info));
+  // TODO(crbug.com/40928765): When the cert is modified we need to refresh the
+  // list of all of the user cert sources. This is complicated by the fact that
+  // this callback is specific to just one user cert source, whereas the refresh
+  // needs to accommodate all user cert sources.
   server_cert_service->AddOrUpdateUserCertificates(std::move(cert_infos),
                                                    std::move(update_callback));
 }
diff --git a/chrome/browser/ui/webui/certificate_viewer/certificate_viewer_webui.cc b/chrome/browser/ui/webui/certificate_viewer/certificate_viewer_webui.cc
index 872fee3..7a26093 100644
--- a/chrome/browser/ui/webui/certificate_viewer/certificate_viewer_webui.cc
+++ b/chrome/browser/ui/webui/certificate_viewer/certificate_viewer_webui.cc
@@ -9,6 +9,7 @@
 #include <utility>
 
 #include "base/containers/span.h"
+#include "base/containers/to_vector.h"
 #include "base/functional/bind.h"
 #include "base/functional/callback_helpers.h"
 #include "base/i18n/time_formatting.h"
@@ -45,12 +46,26 @@
 using content::WebContents;
 using content::WebUIMessageHandler;
 
+using chrome_browser_server_certificate_database::CertificateTrust;
+
 namespace {
 
-int ConvertTrustToInt(chrome_browser_server_certificate_database::
-                          CertificateTrust::CertificateTrustType trust) {
-  using chrome_browser_server_certificate_database::CertificateTrust;
-  // LINT.IfChange(CertificateTrustType)
+// LINT.IfChange(CertificateTrustType)
+std::optional<CertificateTrust::CertificateTrustType> ConvertIntToTrust(
+    int trust) {
+  switch (trust) {
+    case 0:
+      return CertificateTrust::CERTIFICATE_TRUST_TYPE_DISTRUSTED;
+    case 1:
+      return CertificateTrust::CERTIFICATE_TRUST_TYPE_UNSPECIFIED;
+    case 2:
+      return CertificateTrust::CERTIFICATE_TRUST_TYPE_TRUSTED;
+    default:
+      return std::nullopt;
+  }
+}
+
+int ConvertTrustToInt(CertificateTrust::CertificateTrustType trust) {
   switch (trust) {
     case CertificateTrust::CERTIFICATE_TRUST_TYPE_DISTRUSTED:
       return 0;
@@ -62,8 +77,8 @@
     default:
       NOTREACHED();
   }
-  // LINT.ThenChange(//chrome/browser/resources/certificate_viewer/certificate_viewer.ts:CertificateTrustType)
 }
+// LINT.ThenChange(//chrome/browser/resources/certificate_viewer/certificate_viewer.ts:CertificateTrustType)
 
 // Helper class for building a Value representation of a certificate. The class
 // gathers data for a single node of the representation tree and builds a
@@ -154,7 +169,8 @@
     const std::vector<x509_certificate_model::X509CertificateModel>& certs,
     const std::optional<
         chrome_browser_server_certificate_database::CertificateMetadata>&
-        cert_metadata) {
+        cert_metadata,
+    CertMetadataModificationsCallback modifications_callback) {
   std::string data;
 
   // Certificate information. The keys in this dictionary's general key
@@ -239,6 +255,7 @@
     dict.Set(
         "trust",
         base::Value(ConvertTrustToInt(cert_metadata->trust().trust_type())));
+    dict.Set("isEditable", base::Value(!modifications_callback.is_null()));
     if (cert_metadata->has_constraints()) {
       base::Value::List constraints;
       for (const auto& dns_constraint :
@@ -328,7 +345,8 @@
     content::WebContents* web_contents,
     gfx::NativeWindow parent) {
   return ShowConstrained(std::move(certs), std::move(cert_nicknames),
-                         std::nullopt, web_contents, parent);
+                         std::nullopt, base::NullCallback(), web_contents,
+                         parent);
 }
 
 // static
@@ -339,8 +357,8 @@
   std::vector<bssl::UniquePtr<CRYPTO_BUFFER>> certs;
   certs.push_back(std::move(cert));
   return ShowConstrained(std::move(certs),
-                         /*cert_nicknames=*/{}, std::nullopt, web_contents,
-                         parent);
+                         /*cert_nicknames=*/{}, std::nullopt,
+                         base::NullCallback(), web_contents, parent);
 }
 
 // static
@@ -348,6 +366,7 @@
     bssl::UniquePtr<CRYPTO_BUFFER> cert,
     chrome_browser_server_certificate_database::CertificateMetadata
         cert_metadata,
+    CertMetadataModificationsCallback modifications_callback,
     content::WebContents* web_contents,
     gfx::NativeWindow parent) {
   std::vector<bssl::UniquePtr<CRYPTO_BUFFER>> certs;
@@ -355,7 +374,7 @@
 
   return CertificateViewerDialog::ShowConstrained(
       std::move(certs), /*cert_nicknames=*/{}, std::move(cert_metadata),
-      web_contents, parent);
+      std::move(modifications_callback), web_contents, parent);
 }
 
 // static
@@ -365,10 +384,12 @@
     std::optional<
         chrome_browser_server_certificate_database::CertificateMetadata>
         cert_metadata,
+    CertMetadataModificationsCallback modifications_callback,
     content::WebContents* web_contents,
     gfx::NativeWindow parent) {
   CertificateViewerDialog* dialog_ptr = new CertificateViewerDialog(
-      std::move(certs), std::move(cert_nicknames), std::move(cert_metadata));
+      std::move(certs), std::move(cert_nicknames), std::move(cert_metadata),
+      std::move(modifications_callback));
 
   auto dialog = base::WrapUnique(dialog_ptr);
 
@@ -396,7 +417,8 @@
     std::vector<std::string> cert_nicknames,
     std::optional<
         chrome_browser_server_certificate_database::CertificateMetadata>
-        cert_metadata) {
+        cert_metadata,
+    CertMetadataModificationsCallback modifications_callback) {
   CHECK(!in_certs.empty());
   if (cert_metadata) {
     CHECK(in_certs.size() == 1);
@@ -414,7 +436,8 @@
   constexpr gfx::Size kDefaultSize{544, 628};
   set_can_close(true);
   set_delete_on_close(false);
-  set_dialog_args(DialogArgsForCertList(certs, cert_metadata));
+  set_dialog_args(
+      DialogArgsForCertList(certs, cert_metadata, modifications_callback));
   set_dialog_modal_type(ui::mojom::ModalType::kNone);
   set_dialog_content_url(GURL(chrome::kChromeUICertificateViewerURL));
   set_dialog_size(kDefaultSize);
@@ -423,7 +446,8 @@
   set_show_dialog_title(true);
 
   AddWebUIMessageHandler(std::make_unique<CertificateViewerDialogHandler>(
-      this, std::move(certs), std::move(cert_metadata)));
+      this, std::move(certs), std::move(cert_metadata),
+      std::move(modifications_callback)));
 }
 
 CertificateViewerDialog::~CertificateViewerDialog() = default;
@@ -436,10 +460,12 @@
     std::vector<x509_certificate_model::X509CertificateModel> certs,
     std::optional<
         chrome_browser_server_certificate_database::CertificateMetadata>
-        cert_metadata)
+        cert_metadata,
+    CertMetadataModificationsCallback modifications_callback)
     : dialog_(dialog),
       certs_(std::move(certs)),
-      cert_metadata_(std::move(cert_metadata)) {}
+      cert_metadata_(std::move(cert_metadata)),
+      modifications_callback_(std::move(modifications_callback)) {}
 
 CertificateViewerDialogHandler::~CertificateViewerDialogHandler() {}
 
@@ -454,6 +480,11 @@
       base::BindRepeating(
           &CertificateViewerDialogHandler::HandleRequestCertificateFields,
           base::Unretained(this)));
+  web_ui()->RegisterMessageCallback(
+      "updateTrustState",
+      base::BindRepeating(
+          &CertificateViewerDialogHandler::HandleUpdateTrustState,
+          base::Unretained(this)));
 }
 
 void CertificateViewerDialogHandler::HandleExportCertificate(
@@ -476,6 +507,64 @@
                        std::move(export_certs), certs_[cert_index].GetTitle());
 }
 
+void CertificateViewerDialogHandler::HandleUpdateTrustState(
+    const base::Value::List& args) {
+  AllowJavascript();
+  const base::Value& callback_id = args[0];
+  std::optional<CertificateTrust::CertificateTrustType> trust_opt =
+      ConvertIntToTrust(args[1].GetInt());
+  // Trust type is invalid for some reason. Should only happen if a user is
+  // messing with the HTML/JS.
+  if (!trust_opt) {
+    base::Value::Dict dict;
+    dict.Set("success", base::Value(false));
+    dict.Set("error", base::Value("An error occured updating the trust state"));
+    ResolveJavascriptCallback(callback_id, dict);
+    return;
+  }
+
+  // Run a bunch of sanity checks. We need:
+  //   - non-null modifications_callback_
+  //   - exactly one cert
+  //   - cert metadata
+  //
+  // This shouldn't trigger an error unless the user is messing with the
+  // HTML/JS.
+  if (!modifications_callback_ || certs_.size() != 1 || !cert_metadata_) {
+    base::Value::Dict dict;
+    dict.Set("success", base::Value(false));
+    dict.Set("error",
+             base::Value("Modification of this certificate is not allowed"));
+    ResolveJavascriptCallback(callback_id, dict);
+    return;
+  }
+
+  net::ServerCertificateDatabase::CertInformation cert_info;
+  cert_info.sha256hash_hex = certs_[0].HashCertSHA256();
+  // Copy current cert metadata, then update with new trust.
+  cert_info.cert_metadata.MergeFrom(*cert_metadata_);
+  cert_info.cert_metadata.mutable_trust()->set_trust_type(*trust_opt);
+  cert_info.der_cert = base::ToVector(
+      net::x509_util::CryptoBufferAsSpan(certs_[0].cert_buffer()));
+
+  modifications_callback_.Run(
+      std::move(cert_info),
+      base::BindOnce(&CertificateViewerDialogHandler::UpdateTrustStateDone,
+                     weak_ptr_factory_.GetWeakPtr(), callback_id.Clone(),
+                     *trust_opt));
+}
+
+void CertificateViewerDialogHandler::UpdateTrustStateDone(
+    const base::Value& callback_id,
+    CertificateTrust::CertificateTrustType new_trust,
+    bool success) {
+  base::Value::Dict dict;
+  dict.Set("success", base::Value(success));
+  cert_metadata_->mutable_trust()->set_trust_type(new_trust);
+  // No error message set, use the default message.
+  ResolveJavascriptCallback(callback_id, dict);
+}
+
 void CertificateViewerDialogHandler::HandleRequestCertificateFields(
     const base::Value::List& args) {
   AllowJavascript();
diff --git a/chrome/browser/ui/webui/certificate_viewer/certificate_viewer_webui.h b/chrome/browser/ui/webui/certificate_viewer/certificate_viewer_webui.h
index 9e94e889..faa5c18 100644
--- a/chrome/browser/ui/webui/certificate_viewer/certificate_viewer_webui.h
+++ b/chrome/browser/ui/webui/certificate_viewer/certificate_viewer_webui.h
@@ -9,8 +9,10 @@
 #include <string>
 #include <vector>
 
+#include "base/functional/callback_forward.h"
 #include "base/memory/raw_ptr.h"
 #include "base/values.h"
+#include "chrome/browser/net/server_certificate_database.h"
 #include "chrome/browser/net/server_certificate_database.pb.h"
 #include "chrome/common/net/x509_certificate_model.h"
 #include "content/public/browser/web_ui_message_handler.h"
@@ -27,6 +29,13 @@
 class WebContents;
 }
 
+using chrome_browser_server_certificate_database::CertificateTrust;
+
+typedef base::RepeatingCallback<void(
+    net::ServerCertificateDatabase::CertInformation,
+    base::OnceCallback<void(bool)>)>
+    CertMetadataModificationsCallback;
+
 class ConstrainedWebDialogDelegate;
 
 // Dialog for displaying detailed certificate information. This is used on
@@ -57,6 +66,7 @@
       bssl::UniquePtr<CRYPTO_BUFFER> cert,
       chrome_browser_server_certificate_database::CertificateMetadata
           cert_metadata,
+      CertMetadataModificationsCallback modifications_callback,
       content::WebContents* web_contents,
       gfx::NativeWindow parent);
 
@@ -71,12 +81,14 @@
   friend class CertificateViewerUITest;
 
   // If |cert_metadata| is present, exactly one cert should be in |certs|.
+  // If |modifications_callback| is not null, |cert_metadata| must be present.
   static CertificateViewerDialog* ShowConstrained(
       std::vector<bssl::UniquePtr<CRYPTO_BUFFER>> certs,
       std::vector<std::string> cert_nicknames,
       std::optional<
           chrome_browser_server_certificate_database::CertificateMetadata>
           cert_metadata,
+      CertMetadataModificationsCallback modifications_callback,
       content::WebContents* web_contents,
       gfx::NativeWindow parent);
 
@@ -88,7 +100,8 @@
       std::vector<std::string> cert_nicknames,
       std::optional<
           chrome_browser_server_certificate_database::CertificateMetadata>
-          cert_metadata);
+          cert_metadata,
+      CertMetadataModificationsCallback modifications_callback);
 
   raw_ptr<ConstrainedWebDialogDelegate, DanglingUntriaged> delegate_ = nullptr;
 };
@@ -102,7 +115,8 @@
       std::vector<x509_certificate_model::X509CertificateModel> certs,
       std::optional<
           chrome_browser_server_certificate_database::CertificateMetadata>
-          cert_metadata);
+          cert_metadata,
+      CertMetadataModificationsCallback modifications_callback);
 
   CertificateViewerDialogHandler(const CertificateViewerDialogHandler&) =
       delete;
@@ -128,6 +142,12 @@
   // The input is an integer index to the certificate in the chain to view.
   void HandleRequestCertificateFields(const base::Value::List& args);
 
+  // Update the trust state of the certificate.
+  void HandleUpdateTrustState(const base::Value::List& args);
+  void UpdateTrustStateDone(const base::Value& callback_id,
+                            CertificateTrust::CertificateTrustType new_trust,
+                            bool success);
+
   // Helper function to get the certificate index. Returns -1 if the index is
   // out of range.
   int GetCertificateIndex(int requested_index) const;
@@ -138,6 +158,10 @@
   std::vector<x509_certificate_model::X509CertificateModel> certs_;
   std::optional<chrome_browser_server_certificate_database::CertificateMetadata>
       cert_metadata_;
+  // Cert Metadata modifications callback. If null, then no modifications are
+  // allowed for this certificate.
+  CertMetadataModificationsCallback modifications_callback_;
+  base::WeakPtrFactory<CertificateViewerDialogHandler> weak_ptr_factory_{this};
 };
 
 #endif  // CHROME_BROWSER_UI_WEBUI_CERTIFICATE_VIEWER_CERTIFICATE_VIEWER_WEBUI_H_
diff --git a/chrome/browser/ui/webui/commerce/product_specifications_ui_handler_delegate.cc b/chrome/browser/ui/webui/commerce/product_specifications_ui_handler_delegate.cc
index beb6acc..c5e19073 100644
--- a/chrome/browser/ui/webui/commerce/product_specifications_ui_handler_delegate.cc
+++ b/chrome/browser/ui/webui/commerce/product_specifications_ui_handler_delegate.cc
@@ -42,19 +42,19 @@
     ShowProductSpecificationsSetForUuid(const base::Uuid& uuid,
                                         bool in_new_tab) {
   const GURL product_spec_url = commerce::GetProductSpecsTabUrlForID(uuid);
+  auto* browser =
+      chrome::FindLastActiveWithProfile(Profile::FromWebUI(web_ui_));
+  if (!browser) {
+    return;
+  }
   if (in_new_tab) {
-    auto* browser =
-        chrome::FindLastActiveWithProfile(Profile::FromWebUI(web_ui_));
-    if (!browser) {
-      return;
-    }
-
     content::OpenURLParams params(product_spec_url, content::Referrer(),
                                   WindowOpenDisposition::NEW_FOREGROUND_TAB,
                                   ui::PAGE_TRANSITION_LINK, false);
     browser->OpenURL(params, /*navigation_handle_callback=*/{});
   } else {
-    content::WebContents* web_contents = web_ui_->GetWebContents();
+    content::WebContents* web_contents =
+        browser->tab_strip_model()->GetActiveWebContents();
     if (!web_contents) {
       return;
     }
diff --git a/chrome/browser/ui/webui/glic/glic_page_handler.cc b/chrome/browser/ui/webui/glic/glic_page_handler.cc
index 9baa2820..af3dadfd 100644
--- a/chrome/browser/ui/webui/glic/glic_page_handler.cc
+++ b/chrome/browser/ui/webui/glic/glic_page_handler.cc
@@ -46,6 +46,7 @@
     std::optional<gfx::Size> actual_size = glic_service_->ResizePanel(size);
     if (!actual_size) {
       std::move(callback).Run(std::nullopt);
+      return;
     }
     std::move(callback).Run(actual_size);
   }
diff --git a/chrome/browser/ui/webui/on_device_internals/on_device_internals_page.mojom b/chrome/browser/ui/webui/on_device_internals/on_device_internals_page.mojom
index 0b8e661..ede28f8a 100644
--- a/chrome/browser/ui/webui/on_device_internals/on_device_internals_page.mojom
+++ b/chrome/browser/ui/webui/on_device_internals/on_device_internals_page.mojom
@@ -4,9 +4,11 @@
 
 module mojom;
 
+import "mojo/public/mojom/base/big_buffer.mojom";
 import "mojo/public/mojom/base/file_path.mojom";
-import "services/on_device_model/public/mojom/on_device_model.mojom";
 import "mojo/public/mojom/base/time.mojom";
+import "services/on_device_model/public/mojom/on_device_model.mojom";
+import "skia/public/mojom/bitmap.mojom";
 
 // Struct containing data to be displayed on on-device-internals page.
 struct OnDeviceInternalsData {
@@ -50,6 +52,10 @@
 
   // Returns the status of various on-device models.
   GetOnDeviceInternalsData() => (OnDeviceInternalsData page_data);
+
+  // Decodes a bitmap from an image buffer.
+  DecodeBitmap(mojo_base.mojom.BigBuffer image_buffer) =>
+      (skia.mojom.BitmapMappedFromTrustedProcess? bitmap);
 };
 
 
diff --git a/chrome/browser/ui/webui/on_device_internals/on_device_internals_page_handler.cc b/chrome/browser/ui/webui/on_device_internals/on_device_internals_page_handler.cc
index 00bde98c..412dcb4 100644
--- a/chrome/browser/ui/webui/on_device_internals/on_device_internals_page_handler.cc
+++ b/chrome/browser/ui/webui/on_device_internals/on_device_internals_page_handler.cc
@@ -12,6 +12,7 @@
 #include "components/optimization_guide/core/prediction_manager.h"
 #include "content/public/browser/service_process_host.h"
 #include "mojo/public/cpp/bindings/callback_helpers.h"
+#include "services/data_decoder/public/cpp/decode_image.h"
 #include "services/on_device_model/public/cpp/buildflags.h"
 #include "services/on_device_model/public/cpp/model_assets.h"
 
@@ -62,6 +63,7 @@
     const base::FilePath& model_path,
     mojo::PendingReceiver<on_device_model::mojom::OnDeviceModel> model,
     LoadModelCallback callback) {
+  base_model_.reset();
 #if BUILDFLAG(USE_CHROMEOS_MODEL_SERVICE)
   // We treat the file path as a UUID on ChromeOS.
   base::Uuid uuid = base::Uuid::ParseLowercase(model_path.value());
@@ -109,14 +111,32 @@
     mojo::PendingReceiver<on_device_model::mojom::OnDeviceModel> model,
     LoadModelCallback callback,
     on_device_model::ModelAssets assets) {
+  auto receiver = base_model_.BindNewPipeAndPassReceiver();
   auto params = on_device_model::mojom::LoadModelParams::New();
   params->assets = std::move(assets);
   params->max_tokens = 4096;
-  GetService().LoadModel(std::move(params), std::move(model),
-                         std::move(callback));
+  GetService().LoadModel(
+      std::move(params), std::move(receiver),
+      base::BindOnce(&OnDeviceInternalsPageHandler::LoadAdaptation,
+                     weak_ptr_factory_.GetWeakPtr(), std::move(model),
+                     std::move(callback)));
 }
 #endif
 
+void OnDeviceInternalsPageHandler::LoadAdaptation(
+    mojo::PendingReceiver<on_device_model::mojom::OnDeviceModel> model,
+    LoadModelCallback callback,
+    on_device_model::mojom::LoadModelResult result) {
+  if (result != on_device_model::mojom::LoadModelResult::kSuccess) {
+    std::move(callback).Run(result);
+    return;
+  }
+  auto params = on_device_model::mojom::LoadAdaptationParams::New();
+  params->enable_image_input = true;
+  base_model_->LoadAdaptation(std::move(params), std::move(model),
+                              std::move(callback));
+}
+
 void OnDeviceInternalsPageHandler::GetEstimatedPerformanceClass(
     GetEstimatedPerformanceClassCallback callback) {
   GetService().GetEstimatedPerformanceClass(
@@ -213,3 +233,12 @@
 
   std::move(callback).Run(std::move(data));
 }
+
+void OnDeviceInternalsPageHandler::DecodeBitmap(
+    mojo_base::BigBuffer image_buffer,
+    DecodeBitmapCallback callback) {
+  data_decoder::DecodeImageIsolated(
+      base::span(image_buffer), data_decoder::mojom::ImageCodec::kDefault,
+      /*shrink_to_fit=*/false, data_decoder::kDefaultMaxSizeInBytes,
+      /*desired_image_frame_size=*/gfx::Size(), std::move(callback));
+}
diff --git a/chrome/browser/ui/webui/on_device_internals/on_device_internals_page_handler.h b/chrome/browser/ui/webui/on_device_internals/on_device_internals_page_handler.h
index c1b1b114..f66287b 100644
--- a/chrome/browser/ui/webui/on_device_internals/on_device_internals_page_handler.h
+++ b/chrome/browser/ui/webui/on_device_internals/on_device_internals_page_handler.h
@@ -11,6 +11,7 @@
 #include "mojo/public/cpp/bindings/remote.h"
 #include "services/on_device_model/public/cpp/buildflags.h"
 #include "services/on_device_model/public/cpp/model_assets.h"
+#include "services/on_device_model/public/mojom/on_device_model.mojom.h"
 #include "services/on_device_model/public/mojom/on_device_model_service.mojom.h"
 
 class OptimizationGuideKeyedService;
@@ -54,6 +55,8 @@
       GetEstimatedPerformanceClassCallback callback) override;
   void GetOnDeviceInternalsData(
       GetOnDeviceInternalsDataCallback callback) override;
+  void DecodeBitmap(mojo_base::BigBuffer image_buffer,
+                    DecodeBitmapCallback callback) override;
 
   // optimization_guide::OptimizationGuideLogger::Observer:
   void OnLogMessageAdded(base::Time event_time,
@@ -62,10 +65,16 @@
                          int source_line,
                          const std::string& message) override;
 
+  void LoadAdaptation(
+      mojo::PendingReceiver<on_device_model::mojom::OnDeviceModel> model,
+      LoadModelCallback callback,
+      on_device_model::mojom::LoadModelResult result);
+
   mojo::Receiver<mojom::OnDeviceInternalsPageHandler> receiver_;
   mojo::Remote<mojom::OnDeviceInternalsPage> page_;
 
   mojo::Remote<Service> service_;
+  mojo::Remote<on_device_model::mojom::OnDeviceModel> base_model_;
 
   // Logger to receive the debug logs from the optimization guide service. Not
   // owned. Guaranteed to outlive |this|, since the logger is owned by the
diff --git a/chrome/browser/ui/webui/privacy_sandbox/DIR_METADATA b/chrome/browser/ui/webui/privacy_sandbox/DIR_METADATA
index 46191cc..cb1e73c9 100644
--- a/chrome/browser/ui/webui/privacy_sandbox/DIR_METADATA
+++ b/chrome/browser/ui/webui/privacy_sandbox/DIR_METADATA
@@ -1,7 +1,7 @@
 monorail: {
-  component: "UI>Settings>Privacy"
+  component: "UI>Browser>Privacy Sandbox"
 }
-team_email: "chrome-privacy-controls@google.com"
+team_email: "koilos@google.com"
 buganizer_public: {
-  component_id: 1457044
+  component_id: 1697287
 }
diff --git a/chrome/browser/ui/webui/side_panel/history_clusters/history_clusters_side_panel_ui.cc b/chrome/browser/ui/webui/side_panel/history_clusters/history_clusters_side_panel_ui.cc
index d6e9a35..1e5cc13 100644
--- a/chrome/browser/ui/webui/side_panel/history_clusters/history_clusters_side_panel_ui.cc
+++ b/chrome/browser/ui/webui/side_panel/history_clusters/history_clusters_side_panel_ui.cc
@@ -9,6 +9,7 @@
 
 #include "base/feature_list.h"
 #include "chrome/app/chrome_command_ids.h"
+#include "chrome/browser/history_clusters/history_clusters_service_factory.h"
 #include "chrome/browser/history_embeddings/history_embeddings_utils.h"
 #include "chrome/browser/page_image_service/image_service_factory.h"
 #include "chrome/browser/profiles/profile.h"
@@ -45,6 +46,17 @@
   return true;
 }
 
+bool HistoryClustersSidePanelUIConfig::IsWebUIEnabled(
+    content::BrowserContext* browser_context) {
+  auto* history_clusters_service =
+      HistoryClustersServiceFactory::GetForBrowserContext(browser_context);
+  // Keep in sync with history_clusters.mojom.PageHandler registration.
+  // If the WebUI is enabled without registering the PageHandler, the WebUI will
+  // crash on getting the PageHandler remote.
+  return history_clusters_service &&
+         history_clusters_service->is_journeys_feature_flag_enabled();
+}
+
 std::optional<int> HistoryClustersSidePanelUIConfig::GetCommandIdForTesting() {
   return IDC_SHOW_HISTORY_CLUSTERS_SIDE_PANEL;
 }
diff --git a/chrome/browser/ui/webui/side_panel/history_clusters/history_clusters_side_panel_ui.h b/chrome/browser/ui/webui/side_panel/history_clusters/history_clusters_side_panel_ui.h
index f78a440..cb9faf2 100644
--- a/chrome/browser/ui/webui/side_panel/history_clusters/history_clusters_side_panel_ui.h
+++ b/chrome/browser/ui/webui/side_panel/history_clusters/history_clusters_side_panel_ui.h
@@ -34,6 +34,10 @@
 class ImageServiceHandler;
 }
 
+namespace content {
+class BrowserContext;
+}
+
 class BrowserWindowInterface;
 class HistoryClustersSidePanelUI;
 
@@ -44,6 +48,7 @@
 
   // DefaultTopChromeWebUIConfig::
   bool IsPreloadable() override;
+  bool IsWebUIEnabled(content::BrowserContext* browser_context) override;
   std::optional<int> GetCommandIdForTesting() override;
 };
 
diff --git a/chrome/browser/ui/webui/tab_search/tab_search_ui.cc b/chrome/browser/ui/webui/tab_search/tab_search_ui.cc
index 0119353..6e362aa9 100644
--- a/chrome/browser/ui/webui/tab_search/tab_search_ui.cc
+++ b/chrome/browser/ui/webui/tab_search/tab_search_ui.cc
@@ -156,6 +156,7 @@
       {"declutterDuplicateBody", IDS_DECLUTTER_DUPLICATE_BODY},
       {"declutterDuplicateTitle", IDS_DECLUTTER_DUPLICATE_TITLE},
       {"declutterEmptyBody", IDS_DECLUTTER_EMPTY_BODY},
+      {"declutterEmptyBodyNoDedupe", IDS_DECLUTTER_EMPTY_BODY_NO_DEDUPE},
       {"declutterEmptyTitle", IDS_DECLUTTER_EMPTY_TITLE},
       {"declutterInactiveTitle", IDS_DECLUTTER_INACTIVE_TITLE},
       {"declutterInactiveTitleNoDedupe",
@@ -227,6 +228,9 @@
                    profile, chrome::FaviconUrlFormat::kFavicon2));
 
   auto plural_string_handler = std::make_unique<PluralStringHandler>();
+  plural_string_handler->AddLocalizedString(
+      "declutterSelectorHeadingNoDedupe",
+      IDS_DECLUTTER_SELECTOR_HEADING_NO_DEDUPE);
   plural_string_handler->AddLocalizedString("declutterSelectorHeading",
                                             IDS_DECLUTTER_SELECTOR_HEADING);
   web_ui->AddMessageHandler(std::move(plural_string_handler));
diff --git a/chrome/browser/ui/webui/top_chrome/webui_contents_preload_manager_browsertest.cc b/chrome/browser/ui/webui/top_chrome/webui_contents_preload_manager_browsertest.cc
index 379bf61..6d0656f1 100644
--- a/chrome/browser/ui/webui/top_chrome/webui_contents_preload_manager_browsertest.cc
+++ b/chrome/browser/ui/webui/top_chrome/webui_contents_preload_manager_browsertest.cc
@@ -63,8 +63,10 @@
 }
 
 // Returns the command ID that can be used to trigger the WebUI.
-int GetCommandIdForURL(GURL webui_url) {
-  TopChromeWebUIConfig* config = TopChromeWebUIConfig::From(nullptr, webui_url);
+int GetCommandIdForURL(content::BrowserContext* browser_context,
+                       GURL webui_url) {
+  TopChromeWebUIConfig* config =
+      TopChromeWebUIConfig::From(browser_context, webui_url);
   CHECK(config);
   CHECK(config->GetCommandIdForTesting().has_value())
       << "A preloadable WebUI must override "
@@ -203,7 +205,7 @@
 
     // Trigger the WebUI.
     new_browser->command_controller()->ExecuteCommand(
-        GetCommandIdForURL(webui_url));
+        GetCommandIdForURL(browser()->profile(), webui_url));
     navigation_waiter()->Wait();
 
     // Clean up.
diff --git a/chrome/browser/user_education/user_education_configuration_provider.cc b/chrome/browser/user_education/user_education_configuration_provider.cc
index d1388d6e..3cf1df89 100644
--- a/chrome/browser/user_education/user_education_configuration_provider.cc
+++ b/chrome/browser/user_education/user_education_configuration_provider.cc
@@ -204,7 +204,7 @@
             std::inserter(config.event_configs, config.event_configs.begin()));
 
   // Set up some reasonable availability values.
-  if (config.availability.value != 0) {
+  if (config.availability != feature_engagement::Comparator()) {
     // There is already configuration specified for availability other than the
     // default. Make sure the availability is a lower bound.
     if (config.availability.type != feature_engagement::GREATER_THAN) {
diff --git a/chrome/browser/user_education/user_education_configuration_provider_unittest.cc b/chrome/browser/user_education/user_education_configuration_provider_unittest.cc
index da3282a..0571a201 100644
--- a/chrome/browser/user_education/user_education_configuration_provider_unittest.cc
+++ b/chrome/browser/user_education/user_education_configuration_provider_unittest.cc
@@ -224,7 +224,7 @@
 
   EXPECT_TRUE(config.event_configs.empty());
 
-  EXPECT_EQ(kEqualsZero, config.session_rate);
+  EXPECT_EQ(kAny, config.session_rate);
 
   EXPECT_EQ(kSessionRateImpactAll, config.session_rate_impact);
 
diff --git a/chrome/browser/web_applications/manifest_update_manager_browsertest.cc b/chrome/browser/web_applications/manifest_update_manager_browsertest.cc
index 851dbb2..62b2e41 100644
--- a/chrome/browser/web_applications/manifest_update_manager_browsertest.cc
+++ b/chrome/browser/web_applications/manifest_update_manager_browsertest.cc
@@ -469,7 +469,7 @@
     return http_server_.GetURL("/banners/no_manifest_test_page.html");
   }
 
-  // Mimics the Create Shortcut flow from the three dot overflow menu.
+  // Mimics the `DIY` app install flow from the three dot overflow menu.
   webapps::AppId InstallWebAppWithoutManifest() {
     GURL app_url = GetAppURLWithoutManifest();
     EXPECT_TRUE(ui_test_utils::NavigateToURL(browser(), app_url));
@@ -478,11 +478,11 @@
     base::test::TestFuture<const webapps::AppId&, webapps::InstallResultCode>
         install_future;
     GetProvider().scheduler().FetchManifestAndInstall(
-        webapps::WebappInstallSource::MENU_CREATE_SHORTCUT,
+        webapps::WebappInstallSource::MENU_BROWSER_TAB,
         browser()->tab_strip_model()->GetActiveWebContents()->GetWeakPtr(),
         base::BindOnce(test::TestAcceptDialogCallback),
         install_future.GetCallback(),
-        FallbackBehavior::kAllowFallbackDataAlways);
+        FallbackBehavior::kUseFallbackInfoWhenNotInstallable);
     EXPECT_EQ(install_future.Get<webapps::InstallResultCode>(),
               webapps::InstallResultCode::kSuccessNewInstall);
     return install_future.Get<webapps::AppId>();
@@ -849,6 +849,7 @@
   EXPECT_TRUE(load_observer.AwaitCorrectPageLoaded());
   EXPECT_TRUE(GetManifestUpdateManager(browser()->profile())
                   .IsAppPendingPageAndManifestUrlLoadForTesting(app_id));
+  EXPECT_TRUE(GetProvider().registrar_unsafe().IsDiyApp(app_id));
 
   // Inject new manifest into the page once DidFinishLoad() is triggered. This
   // should start the manifest checking command without the need for a refresh.
@@ -861,6 +862,7 @@
             std::move(result_awaiter).AwaitNextResult());
   EXPECT_EQ(GetProvider().registrar_unsafe().GetAppManifestUrl(app_id),
             newly_loaded_manifest_url);
+  EXPECT_FALSE(GetProvider().registrar_unsafe().IsDiyApp(app_id));
 }
 
 IN_PROC_BROWSER_TEST_F(ManifestUpdateManagerBrowserTest,
diff --git a/chrome/browser/web_applications/proto/web_app.proto b/chrome/browser/web_applications/proto/web_app.proto
index c67d2b57..18c3dfb 100644
--- a/chrome/browser/web_applications/proto/web_app.proto
+++ b/chrome/browser/web_applications/proto/web_app.proto
@@ -439,4 +439,8 @@
   // user (3-dot menu, Install page as App...). DIY apps aren't promotable or
   // installable, and the user can customize its name.
   optional bool is_diy_app = 68;
+
+  // Set to true if the app was installed via the shortcut app install path by
+  // the user and was migrated to being a DIY app.
+  optional bool was_shortcut_app = 69;
 }
diff --git a/chrome/browser/web_applications/test/web_app_test_utils.cc b/chrome/browser/web_applications/test/web_app_test_utils.cc
index 09e3e5d5..7600ec0e8 100644
--- a/chrome/browser/web_applications/test/web_app_test_utils.cc
+++ b/chrome/browser/web_applications/test/web_app_test_utils.cc
@@ -1106,6 +1106,8 @@
   app->SetSupportedLinksOfferDismissCount(random.next_uint());
 
   app->SetIsDiyApp(random.next_bool());
+
+  app->SetWasShortcutApp(random.next_bool());
   return app;
 }
 
diff --git a/chrome/browser/web_applications/web_app.cc b/chrome/browser/web_applications/web_app.cc
index 1559b00..90f08b3 100644
--- a/chrome/browser/web_applications/web_app.cc
+++ b/chrome/browser/web_applications/web_app.cc
@@ -758,6 +758,10 @@
   is_diy_app_ = is_diy_app;
 }
 
+void WebApp::SetWasShortcutApp(bool was_shortcut_app) {
+  was_shortcut_app_ = was_shortcut_app;
+}
+
 void WebApp::AddPlaceholderInfoToManagementExternalConfigMap(
     WebAppManagement::Type type,
     bool is_placeholder) {
@@ -947,7 +951,8 @@
         app.generated_icon_fix_,
         app.supported_links_offer_ignore_count_,
         app.supported_links_offer_dismiss_count_,
-        app.is_diy_app_
+        app.is_diy_app_,
+        app.was_shortcut_app_
         // clang-format on
     );
   };
@@ -1160,6 +1165,8 @@
 
   root.Set("is_diy_app", is_diy_app_);
 
+  root.Set("was_shortcut_app", was_shortcut_app_);
+
   return base::Value(std::move(root));
 }
 
diff --git a/chrome/browser/web_applications/web_app.h b/chrome/browser/web_applications/web_app.h
index 229307c..5ddcc53 100644
--- a/chrome/browser/web_applications/web_app.h
+++ b/chrome/browser/web_applications/web_app.h
@@ -358,6 +358,8 @@
 
   bool is_diy_app() const { return is_diy_app_; }
 
+  bool was_shortcut_app() const { return was_shortcut_app_; }
+
   // A Web App can be installed from multiple sources simultaneously. Installs
   // add a source to the app. Uninstalls remove a source from the app.
   void AddSource(WebAppManagement::Type source);
@@ -456,6 +458,7 @@
   void SetSupportedLinksOfferIgnoreCount(int ignore_count);
   void SetSupportedLinksOfferDismissCount(int dismiss_count);
   void SetIsDiyApp(bool is_diy_app);
+  void SetWasShortcutApp(bool was_shortcut_app);
 
   void AddPlaceholderInfoToManagementExternalConfigMap(
       WebAppManagement::Type source_type,
@@ -595,6 +598,8 @@
 
   bool is_diy_app_ = false;
 
+  bool was_shortcut_app_ = false;
+
   // New fields must be added to:
   //  - |operator==|
   //  - AsDebugValue()
diff --git a/chrome/browser/web_applications/web_app_database.cc b/chrome/browser/web_applications/web_app_database.cc
index e83b176..0757eaf 100644
--- a/chrome/browser/web_applications/web_app_database.cc
+++ b/chrome/browser/web_applications/web_app_database.cc
@@ -929,6 +929,8 @@
 
   local_data->set_is_diy_app(web_app.is_diy_app());
 
+  local_data->set_was_shortcut_app(web_app.was_shortcut_app());
+
   return local_data;
 }
 
@@ -1766,6 +1768,8 @@
 
   web_app->SetIsDiyApp(local_data.is_diy_app());
 
+  web_app->SetWasShortcutApp(local_data.was_shortcut_app());
+
   return web_app;
 }
 
diff --git a/chrome/browser/webauthn/chrome_authenticator_request_delegate.cc b/chrome/browser/webauthn/chrome_authenticator_request_delegate.cc
index 51bdbed5..b533b61 100644
--- a/chrome/browser/webauthn/chrome_authenticator_request_delegate.cc
+++ b/chrome/browser/webauthn/chrome_authenticator_request_delegate.cc
@@ -488,12 +488,10 @@
   }
 #if BUILDFLAG(IS_MAC)
   if (authenticator_type == device::AuthenticatorType::kTouchID) {
-    Profile::FromBrowserContext(GetBrowserContext())
-        ->GetPrefs()
-        ->SetString(
-            kWebAuthnTouchIdLastUsed,
-            base::UnlocalizedTimeFormatWithPattern(
-                base::Time::Now(), "yyyy-MM-dd", icu::TimeZone::getGMT()));
+    profile()->GetPrefs()->SetString(
+        kWebAuthnTouchIdLastUsed,
+        base::UnlocalizedTimeFormatWithPattern(base::Time::Now(), "yyyy-MM-dd",
+                                               icu::TimeZone::getGMT()));
     webauthn::user_actions::RecordChromeProfileSuccess();
   }
   if (authenticator_type == device::AuthenticatorType::kICloudKeychain) {
@@ -553,7 +551,6 @@
          resident_key_requirement.has_value());
   request_type_ = request_type;
   user_verification_requirement_ = user_verification_requirement;
-  Profile* const profile = Profile::FromBrowserContext(GetBrowserContext());
 
   // Without the UI enabled, discoveries like caBLE, Android AOA, iCloud
   // keychain, and the enclave, don't make sense.
@@ -561,19 +558,33 @@
     return;
   }
 
+  // Configure the enclave authenticator.
   if (browser_provided_passkeys_available && !IsVirtualEnvironmentEnabled() &&
-      request_source == RequestSource::kWebAuthentication &&
-      dialog_controller_->ui_presentation() !=
-          UIPresentation::kPasskeyUpgrade) {
+      request_source == RequestSource::kWebAuthentication) {
     // Creating credentials in GPM can be disabled by policy, but get() is
     // always allowed.
-    if (request_type == device::FidoRequestType::kGetAssertion ||
-        (profile->GetPrefs()->GetBoolean(
-             password_manager::prefs::kCredentialsEnableService) &&
-         profile->GetPrefs()->GetBoolean(
-             password_manager::prefs::kCredentialsEnablePasskeys))) {
-      auto* const identity_manager =
-          IdentityManagerFactory::GetForProfile(profile->GetOriginalProfile());
+    const bool enclave_create_enabled =
+        profile()->GetPrefs()->GetBoolean(
+            password_manager::prefs::kCredentialsEnableService) &&
+        profile()->GetPrefs()->GetBoolean(
+            password_manager::prefs::kCredentialsEnablePasskeys);
+    if (dialog_controller_->ui_presentation() ==
+            UIPresentation::kPasskeyUpgrade &&
+        enclave_create_enabled) {
+      // Set up the upgrade request controller. This handles enclave
+      // transactions in place of the "regular" GPMEnclaveController.
+      CHECK(!enclave_controller_);
+      PasskeyUpgradeRequestController::GetOrCreateForCurrentDocument(
+          GetRenderFrameHost())
+          ->InitializeEnclaveRequestCallback(discovery_factory);
+      discovery_factory->set_network_context_factory(base::BindRepeating([]() {
+        return SystemNetworkContextManager::GetInstance()->GetContext();
+      }));
+    } else if (request_type == device::FidoRequestType::kGetAssertion ||
+               enclave_create_enabled) {
+      // Set up the "regular" enclave controller.
+      auto* const identity_manager = IdentityManagerFactory::GetForProfile(
+          profile()->GetOriginalProfile());
       const auto consent = signin::ConsentLevel::kSignin;
       if (identity_manager->HasPrimaryAccount(consent)) {
         CoreAccountInfo account_info =
@@ -636,7 +647,7 @@
       (!cable_extension_provided ||
        base::FeatureList::IsEnabled(device::kWebAuthCableExtensionAnywhere))) {
     std::unique_ptr<cablev2::KnownDevices> known_devices =
-        cablev2::KnownDevices::FromProfile(profile);
+        cablev2::KnownDevices::FromProfile(profile());
     if (g_observer) {
       known_devices->synced_devices =
           g_observer->GetCablePairingsFromSyncedDevices();
@@ -678,7 +689,8 @@
     crypto::RandBytes(*qr_generator_key);
     qr_string = device::cablev2::qr::Encode(*qr_generator_key, request_type);
 
-    auto linking_handler = std::make_unique<CableLinkingEventHandler>(profile);
+    auto linking_handler =
+        std::make_unique<CableLinkingEventHandler>(profile());
     discovery_factory->set_cable_pairing_callback(
         base::BindRepeating(&CableLinkingEventHandler::OnNewCablePairing,
                             std::move(linking_handler)));
@@ -691,15 +703,13 @@
                             weak_ptr_factory_.GetWeakPtr()));
   }
 
-  if (non_extension_cablev2_enabled || cablev2_extension_provided ||
-      enclave_controller_) {
-    if (SystemNetworkContextManager::GetInstance()) {
-      // TODO(nsatragno): this should probably use a storage partition network
-      // context instead. See the SystemNetworkContextManager class comments.
-      discovery_factory->set_network_context_factory(base::BindRepeating([]() {
-        return SystemNetworkContextManager::GetInstance()->GetContext();
-      }));
-    }
+  if (SystemNetworkContextManager::GetInstance()) {
+    // caBLE and the enclave depend on the network context factory.
+    // TODO(nsatragno): this should probably use a storage partition network
+    // context instead. See the SystemNetworkContextManager class comments.
+    discovery_factory->set_network_context_factory(base::BindRepeating([]() {
+      return SystemNetworkContextManager::GetInstance()->GetContext();
+    }));
   }
 
   if (cable_extension_accepted || non_extension_cablev2_enabled) {
@@ -722,19 +732,6 @@
     enclave_controller_->ConfigureDiscoveries(discovery_factory);
   }
 
-  if (dialog_controller_->ui_presentation() ==
-      UIPresentation::kPasskeyUpgrade) {
-    // PasskeyUpgradeController drives enclave interaction during upgrade
-    // requests (conditional create). GPMEnclaveController must not be
-    // instantiated.
-    // TODO(crbug.com/377758786): Ensure all non-GPM discoveries are disabled
-    // for passkey upgrade requests.
-    CHECK(!enclave_controller_);
-    PasskeyUpgradeRequestController::GetOrCreateForCurrentDocument(
-        GetRenderFrameHost())
-        ->InitializeEnclaveRequestCallback(discovery_factory);
-  }
-
   dialog_controller_->set_is_non_webauthn_request(
       request_source != RequestSource::kWebAuthentication);
 
@@ -797,14 +794,14 @@
 
 void ChromeAuthenticatorRequestDelegate::OnTransportAvailabilityEnumerated(
     device::FidoRequestHandlerBase::TransportAvailabilityInfo data) {
-  if (!webauthn_ui_enabled()) {
-    return;
-  }
-
   if (g_observer) {
     g_observer->OnPreTransportAvailabilityEnumerated(this);
   }
 
+  if (!webauthn_ui_enabled()) {
+    return;
+  }
+
   const bool delay_ui_for_gpm =
       enclave_controller_ && !enclave_controller_->ready_for_ui();
   if (delay_ui_for_gpm) {
@@ -958,6 +955,10 @@
   return GetRenderFrameHost()->GetBrowserContext();
 }
 
+Profile* ChromeAuthenticatorRequestDelegate::profile() const {
+  return Profile::FromBrowserContext(GetRenderFrameHost()->GetBrowserContext());
+}
+
 void ChromeAuthenticatorRequestDelegate::ShowUI(
     device::FidoRequestHandlerBase::TransportAvailabilityInfo tai) {
   if (can_use_synced_phone_passkeys_ ||
@@ -979,7 +980,7 @@
   // avoid defaulting to GPM for macOS users who likely have an iPhone. But on
   // all other platforms, GPM should be the default.
   dialog_controller_->set_enclave_can_be_default(
-      EnclaveCanBeDefault(Profile::FromBrowserContext(GetBrowserContext())));
+      EnclaveCanBeDefault(profile()));
 
   dialog_controller_->set_ambient_credential_types(ambient_credential_types_);
 
@@ -1023,12 +1024,9 @@
 
 void ChromeAuthenticatorRequestDelegate::OnInvalidatedCablePairing(
     std::unique_ptr<device::cablev2::Pairing> failed_pairing) {
-  PrefService* const prefs =
-      Profile::FromBrowserContext(GetBrowserContext())->GetPrefs();
-
   // A pairing was reported to be invalid. Delete it unless it came from Sync,
   // in which case there's nothing to be done.
-  cablev2::DeletePairingByPublicKey(prefs,
+  cablev2::DeletePairingByPublicKey(profile()->GetPrefs(),
                                     failed_pairing->peer_public_key_x962);
 
   // Contact the next phone with the same name, if any, given that no
@@ -1055,8 +1053,7 @@
     type = device::AuthenticatorType::kEnclave;
   } else {
     webauthn::PasskeyModel* passkey_model =
-        PasskeyModelFactory::GetInstance()->GetForProfile(
-            Profile::FromBrowserContext(GetBrowserContext()));
+        PasskeyModelFactory::GetInstance()->GetForProfile(profile());
     CHECK(passkey_model);
     credentials = passkey_model->GetPasskeysForRelyingPartyId(
         dialog_model_->relying_party_id);
@@ -1223,8 +1220,7 @@
 void ChromeAuthenticatorRequestDelegate::ConfigureICloudKeychain(
     RequestSource request_source,
     const std::string& rp_id) {
-  const PrefService* prefs =
-      Profile::FromBrowserContext(GetBrowserContext())->GetPrefs();
+  const PrefService* prefs = profile()->GetPrefs();
   const bool is_icloud_drive_enabled = IsICloudDriveEnabled();
   const bool is_active_profile_authenticator_user =
       IsActiveProfileAuthenticatorUser(prefs);
diff --git a/chrome/browser/webauthn/chrome_authenticator_request_delegate.h b/chrome/browser/webauthn/chrome_authenticator_request_delegate.h
index 1338107..df24e12a 100644
--- a/chrome/browser/webauthn/chrome_authenticator_request_delegate.h
+++ b/chrome/browser/webauthn/chrome_authenticator_request_delegate.h
@@ -84,6 +84,11 @@
     virtual void OnPreTransportAvailabilityEnumerated(
         ChromeAuthenticatorRequestDelegate* delegate) {}
 
+    // Called when ShowUI() is first invoked. The UI might not yet actually show
+    // at this point, depending on which step the model is at; see UIShown().
+    virtual void UIReady(ChromeAuthenticatorRequestDelegate* delegate) {}
+
+    // Called when the UI dialog is shown.
     virtual void UIShown(ChromeAuthenticatorRequestDelegate* delegate) {}
 
     virtual void CableV2ExtensionSeen(
@@ -220,6 +225,7 @@
   content::RenderFrameHost* GetRenderFrameHost() const;
 
   content::BrowserContext* GetBrowserContext() const;
+  Profile* profile() const;
 
   bool webauthn_ui_enabled() const;
 
diff --git a/chrome/browser/webauthn/enclave_authenticator_browsertest.cc b/chrome/browser/webauthn/enclave_authenticator_browsertest.cc
index f209e456..266ca82 100644
--- a/chrome/browser/webauthn/enclave_authenticator_browsertest.cc
+++ b/chrome/browser/webauthn/enclave_authenticator_browsertest.cc
@@ -555,22 +555,17 @@
       : public ChromeAuthenticatorRequestDelegate::TestObserver {
    public:
     explicit DelegateObserver(EnclaveAuthenticatorBrowserTest* test_instance)
-        : test_instance_(test_instance) {
-      run_loop_ = std::make_unique<base::RunLoop>();
-      tai_run_loop_ = std::make_unique<base::RunLoop>();
-      pre_tai_run_loop_ = std::make_unique<base::RunLoop>();
-      destruction_run_loop_ = std::make_unique<base::RunLoop>();
-    }
+        : test_instance_(test_instance) {}
     virtual ~DelegateObserver() = default;
 
     void WaitForUI() {
-      run_loop_->Run();
-      run_loop_ = std::make_unique<base::RunLoop>();
+      ui_shown_run_loop_->Run();
+      ui_shown_run_loop_ = std::make_unique<base::RunLoop>();
     }
 
-    void WaitForTransportAvailabilityEnumerated() {
-      tai_run_loop_->Run();
-      tai_run_loop_ = std::make_unique<base::RunLoop>();
+    void WaitForUIReady() {
+      ui_ready_run_loop_->Run();
+      ui_ready_run_loop_ = std::make_unique<base::RunLoop>();
     }
 
     void WaitForPreTransportAvailabilityEnumerated() {
@@ -602,6 +597,11 @@
       return on_transport_availability_enumerated_called_;
     }
 
+    const std::optional<base::flat_set<device::FidoTransportProtocol>>&
+    transports_observed() const {
+      return transports_observed_;
+    }
+
     // ChromeAuthenticatorRequestDelegate::TestObserver:
     void Created(ChromeAuthenticatorRequestDelegate* delegate) override {
       test_instance_->UpdateRequestDelegate(delegate);
@@ -612,6 +612,7 @@
       delegate->SetMockTimeForTesting(
           test_instance_->timer_task_runner_->GetMockTickClock(),
           test_instance_->timer_task_runner_);
+      transports_observed_ = std::nullopt;
     }
 
     void OnDestroy(ChromeAuthenticatorRequestDelegate* delegate) override {
@@ -630,25 +631,30 @@
       return ret;
     }
 
+    void OnTransportAvailabilityEnumerated(
+        ChromeAuthenticatorRequestDelegate* delegate,
+        device::FidoRequestHandlerBase::TransportAvailabilityInfo* tai)
+        override {
+      CHECK(!transports_observed_);
+      transports_observed_ = tai->available_transports;
+      if (additional_transport_.has_value()) {
+        tai->available_transports.insert(*additional_transport_);
+      }
+      on_transport_availability_enumerated_called_ = true;
+    }
+
     void OnPreTransportAvailabilityEnumerated(
         ChromeAuthenticatorRequestDelegate* delegate) override {
       pre_tai_run_loop_->QuitWhenIdle();
     }
 
-    void OnTransportAvailabilityEnumerated(
-        ChromeAuthenticatorRequestDelegate* delegate,
-        device::FidoRequestHandlerBase::TransportAvailabilityInfo* tai)
-        override {
-      if (additional_transport_.has_value()) {
-        tai->available_transports.insert(*additional_transport_);
-      }
-      on_transport_availability_enumerated_called_ = true;
-      tai_run_loop_->QuitWhenIdle();
+    void UIReady(ChromeAuthenticatorRequestDelegate* delegate) override {
+      ui_ready_run_loop_->QuitWhenIdle();
     }
 
     void UIShown(ChromeAuthenticatorRequestDelegate* delegate) override {
       ui_shown_ = true;
-      run_loop_->QuitWhenIdle();
+      ui_shown_run_loop_->QuitWhenIdle();
     }
 
     void CableV2ExtensionSeen(
@@ -660,15 +666,21 @@
 
    private:
     raw_ptr<EnclaveAuthenticatorBrowserTest> test_instance_;
+    std::optional<base::flat_set<device::FidoTransportProtocol>>
+        transports_observed_;
     std::optional<device::FidoTransportProtocol> additional_transport_;
     std::unique_ptr<trusted_vault::TrustedVaultConnection> pending_connection_;
     bool use_synced_device_cable_pairing_ = false;
     bool ui_shown_ = false;
     bool on_transport_availability_enumerated_called_ = false;
-    std::unique_ptr<base::RunLoop> run_loop_;
-    std::unique_ptr<base::RunLoop> tai_run_loop_;
-    std::unique_ptr<base::RunLoop> pre_tai_run_loop_;
-    std::unique_ptr<base::RunLoop> destruction_run_loop_;
+    std::unique_ptr<base::RunLoop> ui_shown_run_loop_ =
+        std::make_unique<base::RunLoop>();
+    std::unique_ptr<base::RunLoop> ui_ready_run_loop_ =
+        std::make_unique<base::RunLoop>();
+    std::unique_ptr<base::RunLoop> pre_tai_run_loop_ =
+        std::make_unique<base::RunLoop>();
+    std::unique_ptr<base::RunLoop> destruction_run_loop_ =
+        std::make_unique<base::RunLoop>();
   };
 
   class ModelObserver : public AuthenticatorRequestDialogModel::Observer {
@@ -4199,7 +4211,12 @@
   ASSERT_TRUE(message_queue.WaitForMessage(&script_result));
   std::optional<std::vector<uint8_t>> cred_id =
       ParseCredentialId(script_result);
-  ASSERT_TRUE(cred_id);
+  EXPECT_TRUE(cred_id);
+
+  // The request should not have instantiated non-enclave discoveries.
+  ASSERT_TRUE(
+      delegate_observer()->on_transport_availability_enumerated_called());
+  EXPECT_TRUE(delegate_observer()->transports_observed()->empty());
 }
 
 }  // namespace
diff --git a/chrome/build/android-arm64.pgo.txt b/chrome/build/android-arm64.pgo.txt
index c2bffcc..a8a9aac 100644
--- a/chrome/build/android-arm64.pgo.txt
+++ b/chrome/build/android-arm64.pgo.txt
@@ -1 +1 @@
-chrome-android64-main-1733758660-6bd047258bdfd29188813790761e3500274e6cc4-245e27183c48c7b124c3bc1193d0d5dc7e63130d.profdata
+chrome-android64-main-1733781667-37533ee21663a405a7aa7e79705522e2a79c7e4c-a9a4618437c029c65dc912e1353ded0f64b343bf.profdata
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt
index 8796b32..3a7f9ba 100644
--- a/chrome/build/mac-arm.pgo.txt
+++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@
-chrome-mac-arm-main-1733759988-73f341c23a89b1dd22214a1b9644b48947fbc6a2-aaefa3855137630b072cd2051f074efb0ebccd91.profdata
+chrome-mac-arm-main-1733774340-bcc1732025173044819df3950e5b70e88d7942a3-91cb2eade960b99f42ad2507e1e5be0845354b64.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt
index a1b3144..65b0f2b 100644
--- a/chrome/build/mac.pgo.txt
+++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@
-chrome-mac-main-1733745579-44062b63f629613412e19880dc974a30bc76d6d0-edc5771bf97c2fc8dafde8f6a50f1e45718ca406.profdata
+chrome-mac-main-1733767079-b3d6270d7f4b1d37f738ad00cfe96d0f842e89d6-106ceb1dbb65b494b52551528e96d9ece104b539.profdata
diff --git a/chrome/build/win-arm64.pgo.txt b/chrome/build/win-arm64.pgo.txt
index 70625867..9af14b3 100644
--- a/chrome/build/win-arm64.pgo.txt
+++ b/chrome/build/win-arm64.pgo.txt
@@ -1 +1 @@
-chrome-win-arm64-main-1733745579-33be28ee17cb0ac5389fefc9c581f1968ec63f23-edc5771bf97c2fc8dafde8f6a50f1e45718ca406.profdata
+chrome-win-arm64-main-1733767079-f8726634af4e02f6af95cdfb21766002aa8b165f-106ceb1dbb65b494b52551528e96d9ece104b539.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt
index f40a0b1b..5bf32ea 100644
--- a/chrome/build/win32.pgo.txt
+++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@
-chrome-win32-main-1733756395-e4c778782a9b1052b6d4449ac271d0c10391f18e-ab9e8b4788f6c05494f8c5b1ced0918acf62dda1.profdata
+chrome-win32-main-1733767079-79f2e89737866f9feb5de7fab78a48f83b91bab0-106ceb1dbb65b494b52551528e96d9ece104b539.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt
index 3572395..123be91f 100644
--- a/chrome/build/win64.pgo.txt
+++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@
-chrome-win64-main-1733745579-183d580d7d1d9c1a0995c9bfb4ea63eede5a8fb2-edc5771bf97c2fc8dafde8f6a50f1e45718ca406.profdata
+chrome-win64-main-1733756395-c0bc61fbd13cca77055ecfa7d99842ca75e4a3d4-ab9e8b4788f6c05494f8c5b1ced0918acf62dda1.profdata
diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni
index 53928b9..97ea12b 100644
--- a/chrome/chrome_paks.gni
+++ b/chrome/chrome_paks.gni
@@ -118,7 +118,7 @@
       "$root_gen_dir/components/chrome_urls_resources.pak",
       "$root_gen_dir/components/components_resources.pak",
       "$root_gen_dir/components/flags_ui_resources.pak",
-      "$root_gen_dir/components/metrics/metrics_url_constants.pak",
+      "$root_gen_dir/components/metrics/metrics_server_urls.pak",
       "$root_gen_dir/components/version_ui_resources.pak",
       "$root_gen_dir/content/attribution_internals_resources.pak",
       "$root_gen_dir/content/content_resources.pak",
@@ -140,7 +140,7 @@
       "//chrome/browser/resources:resources",
       "//chrome/common:resources",
       "//components/autofill/core/browser:autofill_address_rewriter_resources",
-      "//components/metrics:url_constants",
+      "//components/metrics:server_urls_grd",
       "//components/resources",
       "//content:content_resources",
       "//content/browser/resources:resources",
diff --git a/chrome/enterprise_companion/app/app_shutdown_unittest.cc b/chrome/enterprise_companion/app/app_shutdown_unittest.cc
index f4958b0..f359c7e 100644
--- a/chrome/enterprise_companion/app/app_shutdown_unittest.cc
+++ b/chrome/enterprise_companion/app/app_shutdown_unittest.cc
@@ -36,9 +36,6 @@
 
 class MockEnterpriseCompanionService final : public EnterpriseCompanionService {
  public:
-  MockEnterpriseCompanionService() = default;
-  ~MockEnterpriseCompanionService() override = default;
-
   MOCK_METHOD(void, Shutdown, (base::OnceClosure callback), (override));
   MOCK_METHOD(void, FetchPolicies, (StatusCallback callback), (override));
 };
diff --git a/chrome/enterprise_companion/device_management_storage/dm_storage_linux.cc b/chrome/enterprise_companion/device_management_storage/dm_storage_linux.cc
index 0c474dc..f1d9cc7c 100644
--- a/chrome/enterprise_companion/device_management_storage/dm_storage_linux.cc
+++ b/chrome/enterprise_companion/device_management_storage/dm_storage_linux.cc
@@ -73,7 +73,6 @@
                                              : dm_token_path),
         enrollment_token_(LoadTokenFromFile(enrollment_token_path_)),
         dm_token_(LoadTokenFromFile(dm_token_path_)) {}
-  ~TokenService() override = default;
 
   // Overrides for TokenServiceInterface.
   std::string GetDeviceID() const override { return device_id_; }
diff --git a/chrome/enterprise_companion/device_management_storage/dm_storage_mac.mm b/chrome/enterprise_companion/device_management_storage/dm_storage_mac.mm
index 2fa9dbdc..6746cdb0 100644
--- a/chrome/enterprise_companion/device_management_storage/dm_storage_mac.mm
+++ b/chrome/enterprise_companion/device_management_storage/dm_storage_mac.mm
@@ -108,7 +108,6 @@
  public:
   TokenService(const base::FilePath& enrollment_token_path,
                const base::FilePath& dm_token_path);
-  ~TokenService() override = default;
 
   // Overrides for TokenServiceInterface.
   std::string GetDeviceID() const override { return device_id_; }
diff --git a/chrome/enterprise_companion/device_management_storage/dm_storage_unittest.cc b/chrome/enterprise_companion/device_management_storage/dm_storage_unittest.cc
index 6604549c..25673f99 100644
--- a/chrome/enterprise_companion/device_management_storage/dm_storage_unittest.cc
+++ b/chrome/enterprise_companion/device_management_storage/dm_storage_unittest.cc
@@ -30,10 +30,6 @@
 
 class TestTokenService : public TokenServiceInterface {
  public:
-  TestTokenService()
-      : enrollment_token_("TestEnrollmentToken"), dm_token_(kTestDmToken) {}
-  ~TestTokenService() override = default;
-
   // Overrides for TokenServiceInterface.
   std::string GetDeviceID() const override { return "TestDeviceID"; }
 
@@ -61,8 +57,8 @@
   std::string GetDmToken() const override { return dm_token_; }
 
  private:
-  std::string enrollment_token_;
-  std::string dm_token_;
+  std::string enrollment_token_ = "TestEnrollmentToken";
+  std::string dm_token_ = kTestDmToken;
 };
 
 }  // namespace
diff --git a/chrome/enterprise_companion/device_management_storage/dm_storage_win.cc b/chrome/enterprise_companion/device_management_storage/dm_storage_win.cc
index 7d4a5a8..adaa2b2 100644
--- a/chrome/enterprise_companion/device_management_storage/dm_storage_win.cc
+++ b/chrome/enterprise_companion/device_management_storage/dm_storage_win.cc
@@ -145,9 +145,6 @@
 
 class TokenService : public TokenServiceInterface {
  public:
-  TokenService() = default;
-  ~TokenService() override = default;
-
   // Overrides for TokenServiceInterface.
   std::string GetDeviceID() const override;
   bool IsEnrollmentMandatory() const override;
diff --git a/chrome/enterprise_companion/dm_client.cc b/chrome/enterprise_companion/dm_client.cc
index 67c9e1e..c31f5eb 100644
--- a/chrome/enterprise_companion/dm_client.cc
+++ b/chrome/enterprise_companion/dm_client.cc
@@ -60,9 +60,6 @@
 
 class DMConfiguration : public policy::DeviceManagementService::Configuration {
  public:
-  DMConfiguration() = default;
-  ~DMConfiguration() override = default;
-
   std::string GetDMServerUrl() const override {
     return GetGlobalConstants()->DeviceManagementServerURL().spec();
   }
@@ -90,9 +87,6 @@
 
 class ClientDataDelegate : public policy::ClientDataDelegate {
  public:
-  ClientDataDelegate() = default;
-  ~ClientDataDelegate() override = default;
-
   void FillRegisterBrowserRequest(
       enterprise_management::RegisterBrowserRequest* request,
       base::OnceClosure callback) const override {
diff --git a/chrome/enterprise_companion/dm_client_unittest.cc b/chrome/enterprise_companion/dm_client_unittest.cc
index fc6608c..972bee5 100644
--- a/chrome/enterprise_companion/dm_client_unittest.cc
+++ b/chrome/enterprise_companion/dm_client_unittest.cc
@@ -134,11 +134,11 @@
   }
 
  private:
+  ~TestDMStorage() override = default;
+
   scoped_refptr<device_management_storage::DMStorage> storage_;
   bool can_persist_policies_ = true;
   bool will_persist_policies_ = true;
-
-  ~TestDMStorage() override = default;
 };
 
 class MockCloudPolicyClient : public policy::MockCloudPolicyClient {
@@ -157,8 +157,6 @@
 class TestTokenService
     : public device_management_storage::TokenServiceInterface {
  public:
-  ~TestTokenService() override = default;
-
   // Overrides for TokenServiceInterface.
   std::string GetDeviceID() const override { return kFakeDeviceId; }
 
@@ -192,8 +190,6 @@
 
 class TestEventLogger : public EnterpriseCompanionEventLogger {
  public:
-  TestEventLogger() = default;
-
   const std::vector<EnterpriseCompanionStatus>& registration_events() {
     return registration_events_;
   }
@@ -219,16 +215,16 @@
   void Flush(base::OnceClosure callback) override { std::move(callback).Run(); }
 
  private:
+  ~TestEventLogger() override = default;
+
   std::vector<EnterpriseCompanionStatus> registration_events_;
   std::vector<EnterpriseCompanionStatus> policy_fetch_events_;
-
-  ~TestEventLogger() override = default;
 };
 
 }  // namespace
 
 class DMClientTest : public ::testing::Test {
- public:
+ protected:
   void SetUp() override {
     ASSERT_TRUE(storage_dir_.CreateUniqueTempDir());
 
@@ -247,7 +243,6 @@
         dm_storage_, mock_policy_fetch_response_validator_.Get());
   }
 
- protected:
   base::test::TaskEnvironment environment_;
   base::ScopedTempDir storage_dir_;
   policy::MockJobCreationHandler mock_job_creation_handler_;
diff --git a/chrome/enterprise_companion/enterprise_companion_service.cc b/chrome/enterprise_companion/enterprise_companion_service.cc
index 2ae24e3b..965e055 100644
--- a/chrome/enterprise_companion/enterprise_companion_service.cc
+++ b/chrome/enterprise_companion/enterprise_companion_service.cc
@@ -31,7 +31,6 @@
       : dm_client_(std::move(dm_client)),
         shutdown_callback_(std::move(shutdown_callback)),
         event_logger_(event_logger) {}
-  ~EnterpriseCompanionServiceImpl() override = default;
 
   // Overrides for EnterpriseCompanionService.
   void Shutdown(base::OnceClosure callback) override {
diff --git a/chrome/enterprise_companion/enterprise_companion_service_stub.cc b/chrome/enterprise_companion/enterprise_companion_service_stub.cc
index 33ca74017..7d0a2a6 100644
--- a/chrome/enterprise_companion/enterprise_companion_service_stub.cc
+++ b/chrome/enterprise_companion/enterprise_companion_service_stub.cc
@@ -72,7 +72,6 @@
     }
     server_.StartServer();
   }
-  ~Stub() override = default;
 
   // Overrides for mjom::EnterpriseCompanion.
   void Shutdown(ShutdownCallback callback) override {
diff --git a/chrome/enterprise_companion/enterprise_companion_service_unittest.cc b/chrome/enterprise_companion/enterprise_companion_service_unittest.cc
index 72fc204..5a968ae 100644
--- a/chrome/enterprise_companion/enterprise_companion_service_unittest.cc
+++ b/chrome/enterprise_companion/enterprise_companion_service_unittest.cc
@@ -26,9 +26,6 @@
 
 class MockDMClient final : public DMClient {
  public:
-  MockDMClient() = default;
-  ~MockDMClient() override = default;
-
   MOCK_METHOD(void,
               RegisterPolicyAgent,
               (scoped_refptr<EnterpriseCompanionEventLogger> event_logger,
diff --git a/chrome/enterprise_companion/event_logger.cc b/chrome/enterprise_companion/event_logger.cc
index e79a7a9..c23db5b3 100644
--- a/chrome/enterprise_companion/event_logger.cc
+++ b/chrome/enterprise_companion/event_logger.cc
@@ -184,7 +184,6 @@
       : uploader_(base::SequenceBound<EventUploader>(
             base::SequencedTaskRunner::GetCurrentDefault(),
             url_loader_factory)) {}
-  ~EventLoggerDelegate() override = default;
 
   // Overrides of EventLogger:Delegate.
   // This is a long-live app and doesn't actually store the next allowed time
diff --git a/chrome/enterprise_companion/global_constants.cc b/chrome/enterprise_companion/global_constants.cc
index 034204ea..317a00fa 100644
--- a/chrome/enterprise_companion/global_constants.cc
+++ b/chrome/enterprise_companion/global_constants.cc
@@ -52,8 +52,6 @@
 #endif
   }
 
-  ~GlobalConstantsImpl() override = default;
-
   GURL CrashUploadURL() const override { return crash_upload_url_; }
 
   GURL DeviceManagementEncryptedReportingURL() const override {
diff --git a/chrome/enterprise_companion/proxy_config_service_unittest.cc b/chrome/enterprise_companion/proxy_config_service_unittest.cc
index 67fd5b2..7b0d15e 100644
--- a/chrome/enterprise_companion/proxy_config_service_unittest.cc
+++ b/chrome/enterprise_companion/proxy_config_service_unittest.cc
@@ -96,16 +96,13 @@
   }
 
  private:
-  std::optional<enterprise_management::PolicyData> policy_data_;
-
   ~FakeDMStorage() override = default;
+
+  std::optional<enterprise_management::PolicyData> policy_data_;
 };
 
 class MockProxyConfigService final : public net::ProxyConfigService {
  public:
-  MockProxyConfigService() = default;
-  ~MockProxyConfigService() override = default;
-
   void AddObserver(Observer*) override {}
   void RemoveObserver(Observer*) override {}
 
diff --git a/chrome/enterprise_companion/telemetry_logger/telemetry_logger_unittest.cc b/chrome/enterprise_companion/telemetry_logger/telemetry_logger_unittest.cc
index 85c49bc..4a8fceb7 100644
--- a/chrome/enterprise_companion/telemetry_logger/telemetry_logger_unittest.cc
+++ b/chrome/enterprise_companion/telemetry_logger/telemetry_logger_unittest.cc
@@ -113,7 +113,6 @@
 class TestDelegate : public TelemetryLogger<TestEvent>::Delegate {
  public:
   explicit TestDelegate(scoped_refptr<MockServer> server) : server_(server) {}
-  ~TestDelegate() override = default;
 
   // Overrides for TelemetryLogger<TestEvent>::Delegate.
   bool StoreNextAllowedAttemptTime(base::Time time) override {
@@ -152,9 +151,6 @@
 
 class TelemetryLoggerTest : public testing::Test {
  protected:
-  TelemetryLoggerTest() = default;
-  ~TelemetryLoggerTest() override = default;
-
   void WaitForExpectedRequests(
       scoped_refptr<MockServer> server,
       base::TimeDelta fast_forward_interval = base::Seconds(1)) {
diff --git a/chrome/enterprise_companion/test/test_utils_linux.cc b/chrome/enterprise_companion/test/test_utils_linux.cc
index 4940dc8..e9d03f3 100644
--- a/chrome/enterprise_companion/test/test_utils_linux.cc
+++ b/chrome/enterprise_companion/test/test_utils_linux.cc
@@ -21,9 +21,6 @@
 
 class TestMethodsLinux : public TestMethods {
  public:
-  TestMethodsLinux() = default;
-  ~TestMethodsLinux() override = default;
-
   base::FilePath GetTestExePath() override {
     return base::PathService::CheckedGet(base::DIR_EXE).AppendASCII(kTestExe);
   }
diff --git a/chrome/enterprise_companion/test/test_utils_mac.cc b/chrome/enterprise_companion/test/test_utils_mac.cc
index 099bfef..8e78825 100644
--- a/chrome/enterprise_companion/test/test_utils_mac.cc
+++ b/chrome/enterprise_companion/test/test_utils_mac.cc
@@ -21,9 +21,6 @@
 
 class TestMethodsMac : public TestMethods {
  public:
-  TestMethodsMac() = default;
-  ~TestMethodsMac() override = default;
-
   base::FilePath GetTestExePath() override {
     return base::PathService::CheckedGet(base::DIR_EXE)
         .AppendASCII("EnterpriseCompanionTestApp")
diff --git a/chrome/enterprise_companion/test/test_utils_win.cc b/chrome/enterprise_companion/test/test_utils_win.cc
index 5ee18e7..2ed3bf8 100644
--- a/chrome/enterprise_companion/test/test_utils_win.cc
+++ b/chrome/enterprise_companion/test/test_utils_win.cc
@@ -39,9 +39,6 @@
 
 class TestMethodsWin : public TestMethods {
  public:
-  TestMethodsWin() = default;
-  ~TestMethodsWin() override = default;
-
   base::FilePath GetTestExePath() override {
     return base::PathService::CheckedGet(base::DIR_EXE).AppendASCII(kTestExe);
   }
diff --git a/chrome/enterprise_companion/url_loader_factory_provider.cc b/chrome/enterprise_companion/url_loader_factory_provider.cc
index 1d507b5..ee46ddbc 100644
--- a/chrome/enterprise_companion/url_loader_factory_provider.cc
+++ b/chrome/enterprise_companion/url_loader_factory_provider.cc
@@ -125,8 +125,6 @@
       mojo::PendingRemote<network::mojom::URLLoaderFactory> pending_remote)
       : remote_(std::move(pending_remote)) {}
 
-  ~URLLoaderFactoryProxy() override = default;
-
   // Overrides for network::mojom::URLLoaderFactory.
   void CreateLoaderAndStart(
       mojo::PendingReceiver<network::mojom::URLLoader> loader,
diff --git a/chrome/services/sharing/nearby/nearby_connections_unittest.cc b/chrome/services/sharing/nearby/nearby_connections_unittest.cc
index fc4f634..bacee80 100644
--- a/chrome/services/sharing/nearby/nearby_connections_unittest.cc
+++ b/chrome/services/sharing/nearby/nearby_connections_unittest.cc
@@ -424,7 +424,8 @@
           }
           client->StartedDiscovery(std::string{service_id}, options.strategy,
                                    std::move(listener),
-                                   /* mediums= */ {});
+                                   /* mediums= */ {},
+                                   /* operation_result_with_medium= */ {});
           EXPECT_TRUE(callback);
           callback({Status::kAlreadyDiscovering});
         });
@@ -471,9 +472,10 @@
           EXPECT_TRUE(options.enforce_topology_constraints);
           EXPECT_EQ(endpoint_info, ByteArrayToMojom(info.endpoint_info));
 
-          client_proxy->StartedAdvertising(std::string{service_id},
-                                           options.strategy, info.listener,
-                                           /* mediums= */ {});
+          client_proxy->StartedAdvertising(
+              std::string{service_id}, options.strategy, info.listener,
+              /* mediums= */ {},
+              /* operation_result_with_medium= */ {});
           ConnectionOptions connection_options{
               .auto_upgrade_bandwidth = options.auto_upgrade_bandwidth,
               .enforce_topology_constraints =
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index 648b675..46b3100 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -1298,8 +1298,8 @@
     "../browser/fingerprinting_protection/fingerprinting_protection_filter_ruleset_browsertest.cc",
     "../browser/metrics/metrics_log_browsertest.cc",
     "../browser/metrics/sampled_out_client_id_saved_browsertest.cc",
+    "../browser/metrics/server_urls_browsertest.cc",
     "../browser/metrics/startup_metrics_browsertest.cc",
-    "../browser/metrics/url_constants_browsertest.cc",
     "../browser/net/cert_verifier_service_browsertest.cc",
     "../browser/net/cert_verify_proc_browsertest.cc",
     "../browser/policy/policy_prefs_browsertest.cc",
@@ -6154,22 +6154,6 @@
         [ "../browser/media_effects/media_effects_manager_binder_unittest.cc" ]
   }
 
-  if (chrome_root_store_cert_management_ui) {
-    sources += [
-      "../browser/net/server_certificate_database_service_unittest.cc",
-      "../browser/net/server_certificate_database_test_util.cc",
-      "../browser/net/server_certificate_database_test_util.h",
-      "../browser/net/server_certificate_database_unittest.cc",
-      "../browser/ui/webui/certificate_manager/client_cert_sources_unittest.cc",
-      "../browser/ui/webui/certificate_manager/user_cert_sources_unittest.cc",
-    ]
-    if (is_chromeos) {
-      sources += [
-        "../browser/net/server_certificate_database_nss_migrator_unittest.cc",
-      ]
-    }
-  }
-
   if (toolkit_views) {
     sources +=
         [ "../browser/bookmarks/bookmark_expanded_state_tracker_unittest.cc" ]
@@ -6758,6 +6742,23 @@
     "//base:path_service_unittest",
   ]
 
+  if (chrome_root_store_cert_management_ui) {
+    sources += [
+      "../browser/net/server_certificate_database_service_unittest.cc",
+      "../browser/net/server_certificate_database_unittest.cc",
+      "../browser/ui/webui/certificate_manager/client_cert_sources_unittest.cc",
+      "../browser/ui/webui/certificate_manager/user_cert_sources_unittest.cc",
+    ]
+
+    deps += [ "//chrome/browser/net:server_certificate_database_test_support" ]
+
+    if (is_chromeos) {
+      sources += [
+        "../browser/net/server_certificate_database_nss_migrator_unittest.cc",
+      ]
+    }
+  }
+
   if (is_chromeos) {
     sources += [ "../browser/device_reauth/chromeos/device_authenticator_chromeos_unittest.cc" ]
 
@@ -10664,6 +10665,7 @@
       "//chrome/browser/ui/toasts",
       "//chrome/browser/ui/toasts:interactive_ui_tests",
       "//chrome/browser/ui/views/bubble",
+      "//chrome/browser/ui/views/page_action",
       "//chrome/browser/ui/views/side_panel",
       "//chrome/browser/ui/views/toolbar",
       "//chrome/browser/user_annotations:user_annotations",
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/transit/ntp/RegularNewTabPageAppMenuFacility.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/transit/ntp/RegularNewTabPageAppMenuFacility.java
index 8facf8a..52754347 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/transit/ntp/RegularNewTabPageAppMenuFacility.java
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/transit/ntp/RegularNewTabPageAppMenuFacility.java
@@ -9,6 +9,8 @@
 /** The app menu shown when pressing ("...") in a regular NTP. */
 public class RegularNewTabPageAppMenuFacility
         extends PageAppMenuFacility<RegularNewTabPageStation> {
+    public Item<Void> mQuickDelete;
+
     @Override
     protected void declareItems(ItemsBuilder items) {
         mNewTab = declareMenuItemToStation(items, NEW_TAB_ID, this::createNewTabPageStation);
@@ -17,7 +19,7 @@
                         items, NEW_INCOGNITO_TAB_ID, this::createIncognitoNewTabPageStation);
 
         declareStubMenuItem(items, HISTORY_ID);
-        declareStubMenuItem(items, DELETE_BROWSING_DATA_ID);
+        mQuickDelete = declareStubMenuItem(items, DELETE_BROWSING_DATA_ID);
 
         declareStubMenuItem(items, DOWNLOADS_ID);
         declareStubMenuItem(items, BOOKMARKS_ID);
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/transit/page/RegularWebPageAppMenuFacility.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/transit/page/RegularWebPageAppMenuFacility.java
index 3d87bb09..7bd0562c 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/transit/page/RegularWebPageAppMenuFacility.java
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/transit/page/RegularWebPageAppMenuFacility.java
@@ -4,8 +4,11 @@
 
 package org.chromium.chrome.test.transit.page;
 
+
 /** The app menu shown when pressing ("...") in a regular Tab showing a web page. */
 public class RegularWebPageAppMenuFacility extends PageAppMenuFacility<WebPageStation> {
+    public Item<Void> mQuickDelete;
+
     @Override
     protected void declareItems(ItemsBuilder items) {
         mNewTab = declareMenuItemToStation(items, NEW_TAB_ID, this::createNewTabPageStation);
@@ -14,7 +17,7 @@
                         items, NEW_INCOGNITO_TAB_ID, this::createIncognitoNewTabPageStation);
 
         declareStubMenuItem(items, HISTORY_ID);
-        declareStubMenuItem(items, DELETE_BROWSING_DATA_ID);
+        mQuickDelete = declareStubMenuItem(items, DELETE_BROWSING_DATA_ID);
         declareStubMenuItem(items, DOWNLOADS_ID);
         declareStubMenuItem(items, BOOKMARKS_ID);
         declareStubMenuItem(items, RECENT_TABS_ID);
diff --git a/chrome/test/data/web_apps/empty_web_app.json b/chrome/test/data/web_apps/empty_web_app.json
index 44e4a62..2628d3b 100644
--- a/chrome/test/data/web_apps/empty_web_app.json
+++ b/chrome/test/data/web_apps/empty_web_app.json
@@ -28,6 +28,7 @@
    "generated_icon_fix": null,
    "install_state": "2",
    "is_diy_app": false,
+   "was_shortcut_app": false,
    "is_from_sync_and_pending_installation": false,
    "is_generated_icon": false,
    "is_uninstalling": false,
diff --git a/chrome/test/data/web_apps/sample_web_app.json b/chrome/test/data/web_apps/sample_web_app.json
index a557e215..8833f4b 100644
--- a/chrome/test/data/web_apps/sample_web_app.json
+++ b/chrome/test/data/web_apps/sample_web_app.json
@@ -170,6 +170,7 @@
    },
    "install_state": "1",
    "is_diy_app": true,
+   "was_shortcut_app": true,
    "is_from_sync_and_pending_installation": true,
    "is_generated_icon": true,
    "is_uninstalling": false,
diff --git a/chrome/test/data/webui/BUILD.gn b/chrome/test/data/webui/BUILD.gn
index b47b6739..12bb012b 100644
--- a/chrome/test/data/webui/BUILD.gn
+++ b/chrome/test/data/webui/BUILD.gn
@@ -97,11 +97,6 @@
     sources += [ "print_preview/print_preview_browsertest.cc" ]
   }
 
-  if (enable_webui_certificate_viewer) {
-    sources +=
-        [ "certificate_viewer_dialog/certificate_viewer_dialog_browsertest.cc" ]
-  }
-
   if (chrome_root_store_cert_management_ui) {
     sources += [ "certificate_manager/certificate_manager_browsertest.cc" ]
   }
@@ -250,6 +245,12 @@
     sources += [ "compose/compose_browsertest.cc" ]
     deps += [ "//components/compose/core/browser:features" ]
   }
+
+  if (enable_webui_certificate_viewer) {
+    sources +=
+        [ "certificate_viewer_dialog/certificate_viewer_dialog_browsertest.cc" ]
+    deps += [ "//chrome/browser/net:server_certificate_database_test_support" ]
+  }
 }
 
 source_set("interactive_ui_tests") {
diff --git a/chrome/test/data/webui/certificate_viewer_dialog/certificate_viewer_dialog_browsertest.cc b/chrome/test/data/webui/certificate_viewer_dialog/certificate_viewer_dialog_browsertest.cc
index 19a7afc..0e1e632 100644
--- a/chrome/test/data/webui/certificate_viewer_dialog/certificate_viewer_dialog_browsertest.cc
+++ b/chrome/test/data/webui/certificate_viewer_dialog/certificate_viewer_dialog_browsertest.cc
@@ -4,10 +4,17 @@
 
 #include <optional>
 
+#include "base/containers/span.h"
+#include "base/containers/to_vector.h"
+#include "base/functional/bind.h"
+#include "base/functional/callback_helpers.h"
+#include "base/strings/string_number_conversions.h"
+#include "base/strings/string_util.h"
 #include "base/strings/stringprintf.h"
 #include "build/build_config.h"
 #include "chrome/browser/certificate_viewer.h"
-#include "chrome/browser/net/server_certificate_database.pb.h"
+#include "chrome/browser/net/server_certificate_database.h"
+#include "chrome/browser/net/server_certificate_database_test_util.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_window.h"
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
@@ -25,6 +32,7 @@
 #include "net/base/ip_address.h"
 #include "net/cert/x509_util.h"
 #include "net/test/test_certificate_data.h"
+#include "testing/gtest/include/gtest/gtest.h"
 
 // Test framework for
 // chrome/test/data/webui/certificate_viewer_dialog_browsertest.js.
@@ -47,6 +55,10 @@
     return std::nullopt;
   }
 
+  virtual CertMetadataModificationsCallback GetModificationsCallback() {
+    return base::NullCallback();
+  }
+
   void RunTestCase(const std::string& testCase) {
     bssl::UniquePtr<CRYPTO_BUFFER> cert = GetCerts();
     ASSERT_TRUE(cert);
@@ -79,6 +91,7 @@
     if (cert_metadata) {
       dialog = CertificateViewerDialog::ShowConstrainedWithMetadata(
           std::move(cert), std::move(*cert_metadata),
+          GetModificationsCallback(),
           browser()->tab_strip_model()->GetActiveWebContents(),
           browser()->window()->GetNativeWindow());
     } else {
@@ -143,3 +156,71 @@
 IN_PROC_BROWSER_TEST_F(CertificateViewerUIWithMetadataCertTest, CheckMetadata) {
   RunTestCase("CheckMetadata");
 }
+
+class CertificateViewerUIWithMetadataCertEditTest
+    : public CertificateViewerUIWithMetadataCertTest {
+ public:
+  void ModifyCallback(net::ServerCertificateDatabase::CertInformation cert_info,
+                      base::OnceCallback<void(bool)> callback) {
+    written_cert_info_ = std::move(cert_info);
+    std::move(callback).Run(true);
+  }
+
+ protected:
+  CertMetadataModificationsCallback GetModificationsCallback() override {
+    return base::BindRepeating(
+        &CertificateViewerUIWithMetadataCertEditTest::ModifyCallback,
+        base::Unretained(this));
+  }
+
+  net::ServerCertificateDatabase::CertInformation written_cert_info_;
+};
+
+IN_PROC_BROWSER_TEST_F(CertificateViewerUIWithMetadataCertEditTest,
+                       EditTrustState) {
+  RunTestCase("EditTrustState");
+
+  // Set up expected CertInformation
+  bssl::UniquePtr<CRYPTO_BUFFER> cert = GetCerts();
+  ASSERT_TRUE(cert);
+  net::ServerCertificateDatabase::CertInformation cert_info;
+  cert_info.der_cert =
+      base::ToVector(net::x509_util::CryptoBufferAsSpan(cert.get()));
+  cert_info.sha256hash_hex = base::ToLowerASCII(base::HexEncode(
+      net::X509Certificate::CalculateFingerprint256(cert.get()).data));
+
+  cert_info.cert_metadata.mutable_trust()->set_trust_type(
+      chrome_browser_server_certificate_database::CertificateTrust::
+          CERTIFICATE_TRUST_TYPE_TRUSTED);
+  cert_info.cert_metadata.mutable_constraints()->add_dns_names("*.example.com");
+  cert_info.cert_metadata.mutable_constraints()->add_dns_names(
+      "*.domainname.com");
+  chrome_browser_server_certificate_database::CIDR* cidr =
+      cert_info.cert_metadata.mutable_constraints()->add_cidrs();
+  cidr->set_ip(std::string(
+      base::as_string_view(net::IPAddress::IPv4Localhost().bytes())));
+  cidr->set_prefix_length(24);
+
+  EXPECT_THAT(written_cert_info_, CertInfoEquals(std::ref(cert_info)));
+}
+
+class CertificateViewerUIWithMetadataCertEditErrorTest
+    : public CertificateViewerUIWithMetadataCertTest {
+ public:
+  void ModifyCallback(net::ServerCertificateDatabase::CertInformation cert_info,
+                      base::OnceCallback<void(bool)> callback) {
+    std::move(callback).Run(false);
+  }
+
+ protected:
+  CertMetadataModificationsCallback GetModificationsCallback() override {
+    return base::BindRepeating(
+        &CertificateViewerUIWithMetadataCertEditErrorTest::ModifyCallback,
+        base::Unretained(this));
+  }
+};
+
+IN_PROC_BROWSER_TEST_F(CertificateViewerUIWithMetadataCertEditErrorTest,
+                       EditTrustStateError) {
+  RunTestCase("EditTrustStateError");
+}
diff --git a/chrome/test/data/webui/certificate_viewer_dialog/certificate_viewer_dialog_test.ts b/chrome/test/data/webui/certificate_viewer_dialog/certificate_viewer_dialog_test.ts
index 86a8db8..c950c45 100644
--- a/chrome/test/data/webui/certificate_viewer_dialog/certificate_viewer_dialog_test.ts
+++ b/chrome/test/data/webui/certificate_viewer_dialog/certificate_viewer_dialog_test.ts
@@ -3,11 +3,15 @@
 // found in the LICENSE file.
 
 import type {CrTreeBaseElement} from 'chrome://resources/cr_elements/cr_tree/cr_tree_base.js';
+import {sendWithPromise} from 'chrome://resources/js/cr.js';
 import {getRequiredElement} from 'chrome://resources/js/util.js';
+import {CertViewerBrowserProxyImpl} from 'chrome://view-cert/browser_proxy.js';
+import type {CertMetadataChangeResult, CertViewerBrowserProxy} from 'chrome://view-cert/browser_proxy.js';
 import type {TreeItemDetail} from 'chrome://view-cert/certificate_viewer.js';
 import {CertificateTrust} from 'chrome://view-cert/certificate_viewer.js';
 import type {ConstraintListElement} from 'chrome://view-cert/constraint_list.js';
 import {assertEquals, assertFalse, assertLT, assertTrue} from 'chrome://webui-test/chai_assert.js';
+import {TestBrowserProxy} from 'chrome://webui-test/test_browser_proxy.js';
 import {eventToPromise} from 'chrome://webui-test/test_util.js';
 
 /**
@@ -30,6 +34,22 @@
   return null;
 }
 
+
+export class TestCertViewerBrowserProxy extends TestBrowserProxy implements
+    CertViewerBrowserProxy {
+  constructor() {
+    super([
+      'updateTrustState',
+    ]);
+  }
+
+  updateTrustState(newTrust: number): Promise<CertMetadataChangeResult> {
+    this.methodCalled('updateTrustState', newTrust);
+    return sendWithPromise('updateTrustState', newTrust);
+  }
+}
+
+
 suite('CertificateViewer', function() {
   // Tests that the dialog opened to the correct URL.
   test('DialogURL', function() {
@@ -105,6 +125,7 @@
     assertEquals(
         CertificateTrust.CERTIFICATE_TRUST_UNSPECIFIED,
         Number(trustStateSelector.value) as CertificateTrust);
+    assertTrue(trustStateSelector.disabled);
 
     const constraintList =
         (getRequiredElement('constraints') as ConstraintListElement);
@@ -113,4 +134,74 @@
     assertTrue(constraintList.constraints.includes('*.domainname.com'));
     assertTrue(constraintList.constraints.includes('127.0.0.1/24'));
   });
+
+  test('EditTrustState', async function() {
+    const testBrowserProxy = new TestCertViewerBrowserProxy();
+    CertViewerBrowserProxyImpl.setInstance(testBrowserProxy);
+
+    const modificationsTab = getRequiredElement('modifications-tab');
+    assertFalse(modificationsTab.hidden);
+
+    const trustStateSelector =
+        (getRequiredElement('trust-state-select') as HTMLSelectElement);
+    assertEquals(
+        CertificateTrust.CERTIFICATE_TRUST_UNSPECIFIED,
+        Number(trustStateSelector.value) as CertificateTrust);
+    assertFalse(trustStateSelector.disabled);
+    const trustStateErrorMessage =
+        (getRequiredElement('trust-state-select-error') as HTMLElement);
+    assertTrue(trustStateErrorMessage.classList.contains('hide-error'));
+
+    trustStateSelector.value =
+        (CertificateTrust.CERTIFICATE_TRUST_TRUSTED as number).toString();
+    // Changing the value with javascript doesn't trigger the change event;
+    // trigger the event manually.
+    trustStateSelector.dispatchEvent(new Event('change'));
+    await testBrowserProxy.whenCalled('updateTrustState');
+
+    const changeFinished = trustStateSelector.disabled ?
+        eventToPromise(
+            'trust-state-change-finished-for-testing', document.body) :
+        Promise.resolve();
+    await changeFinished;
+
+    assertTrue(trustStateErrorMessage.classList.contains('hide-error'));
+  });
+
+
+  test('EditTrustStateError', async function() {
+    const testBrowserProxy = new TestCertViewerBrowserProxy();
+    CertViewerBrowserProxyImpl.setInstance(testBrowserProxy);
+
+    const modificationsTab = getRequiredElement('modifications-tab');
+    assertFalse(modificationsTab.hidden);
+
+    const trustStateSelector =
+        (getRequiredElement('trust-state-select') as HTMLSelectElement);
+    assertEquals(
+        CertificateTrust.CERTIFICATE_TRUST_UNSPECIFIED,
+        Number(trustStateSelector.value) as CertificateTrust);
+    assertFalse(trustStateSelector.disabled);
+    const trustStateErrorMessage =
+        (getRequiredElement('trust-state-select-error') as HTMLElement);
+    assertTrue(trustStateErrorMessage.classList.contains('hide-error'));
+
+    trustStateSelector.value =
+        (CertificateTrust.CERTIFICATE_TRUST_TRUSTED as number).toString();
+    // Changing the value with javascript doesn't trigger the change event;
+    // trigger the event manually.
+    trustStateSelector.dispatchEvent(new Event('change'));
+    await testBrowserProxy.whenCalled('updateTrustState');
+
+    const changeFinished = trustStateSelector.disabled ?
+        eventToPromise(
+            'trust-state-change-finished-for-testing', document.body) :
+        Promise.resolve();
+    await changeFinished;
+
+    assertFalse(trustStateErrorMessage.classList.contains('hide-error'));
+    assertEquals(
+        trustStateErrorMessage.innerText,
+        'There was an error saving the trust state change');
+  });
 });
diff --git a/chrome/updater/mac/setup/keystone_unittest.mm b/chrome/updater/mac/setup/keystone_unittest.mm
index 628c374..f5cad5d 100644
--- a/chrome/updater/mac/setup/keystone_unittest.mm
+++ b/chrome/updater/mac/setup/keystone_unittest.mm
@@ -24,9 +24,7 @@
 namespace updater {
 
 class KeystoneTest : public testing::Test {
- public:
-  ~KeystoneTest() override = default;
-
+ protected:
   void SetUp() override {
     ASSERT_TRUE(temp_keystone_dir_.CreateUniqueTempDir());
 
@@ -46,7 +44,6 @@
         temp_keystone_dir_.GetPath().AppendASCII("CountingMetrics.plist")));
   }
 
- protected:
   base::ScopedTempDir temp_keystone_dir_;
 };
 
diff --git a/chrome/updater/mac/setup/setup_unittest.mm b/chrome/updater/mac/setup/setup_unittest.mm
index 89fe4877..121e387 100644
--- a/chrome/updater/mac/setup/setup_unittest.mm
+++ b/chrome/updater/mac/setup/setup_unittest.mm
@@ -113,9 +113,7 @@
 }  // namespace
 
 class ChromeUpdaterMacSetupTest : public testing::Test {
- public:
-  ~ChromeUpdaterMacSetupTest() override = default;
-
+ protected:
   static void SetUpTestSuite() {
     // SetUpTestSuite will run a script (install_test_helper.sh), which will set
     // up all the necessary things for running the mac installer test. This will
diff --git a/chrome/updater/net/network_fetcher_mac.mm b/chrome/updater/net/network_fetcher_mac.mm
index 5710409..f5b801b81 100644
--- a/chrome/updater/net/network_fetcher_mac.mm
+++ b/chrome/updater/net/network_fetcher_mac.mm
@@ -516,7 +516,6 @@
   OutOfProcessNetworkFetcher& operator=(const OutOfProcessNetworkFetcher&) =
       delete;
   OutOfProcessNetworkFetcher(const NetworkFetcher&) = delete;
-  ~OutOfProcessNetworkFetcher() override = default;
 
   // NetworkFetcher overrides.
   void PostRequest(
diff --git a/chrome/updater/policy/service_unittest.cc b/chrome/updater/policy/service_unittest.cc
index 7db211b..6fa7f487 100644
--- a/chrome/updater/policy/service_unittest.cc
+++ b/chrome/updater/policy/service_unittest.cc
@@ -204,6 +204,7 @@
 
  private:
   ~FakePolicyManager() override = default;
+
   bool has_active_device_policies_;
   std::optional<bool> cloud_policy_overrides_platform_policy_;
   std::string source_;
diff --git a/chromecast/BUILD.gn b/chromecast/BUILD.gn
index 3b85dc6..af8b10d 100644
--- a/chromecast/BUILD.gn
+++ b/chromecast/BUILD.gn
@@ -543,7 +543,7 @@
     sources = [
       "$root_gen_dir/chromecast/app/shell_resources.pak",
       "$root_gen_dir/components/cast/named_message_port_connector/named_message_port_connector_resources.pak",
-      "$root_gen_dir/components/metrics/metrics_url_constants.pak",
+      "$root_gen_dir/components/metrics/metrics_server_urls.pak",
       "$root_gen_dir/content/content_resources.pak",
       "$root_gen_dir/content/gpu_resources.pak",
       "$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak",
@@ -563,7 +563,7 @@
     deps = [
       "//chromecast/app:resources",
       "//components/cast/named_message_port_connector:resources",
-      "//components/metrics:url_constants",
+      "//components/metrics:server_urls_grd",
       "//content:content_resources",
       "//content/browser/resources/gpu:resources",
       "//mojo/public/js:resources",
diff --git a/chromeos/CHROMEOS_LKGM b/chromeos/CHROMEOS_LKGM
index 213fe885..095e6e0 100644
--- a/chromeos/CHROMEOS_LKGM
+++ b/chromeos/CHROMEOS_LKGM
@@ -1 +1 @@
-16123.0.0-1065321
\ No newline at end of file
+16123.0.0-1065326
\ No newline at end of file
diff --git a/chromeos/ash/components/boca/babelorca/transcript_builder.cc b/chromeos/ash/components/boca/babelorca/transcript_builder.cc
index cf940c8..cc14b695 100644
--- a/chromeos/ash/components/boca/babelorca/transcript_builder.cc
+++ b/chromeos/ash/components/boca/babelorca/transcript_builder.cc
@@ -60,6 +60,15 @@
     return results;
   }
 
+  // If transcript length decreased and it is final, it is possible that the
+  // removed part belongs to the next transcript, so discard the message and
+  // rely on the upcoming message's `previous_transcript` for update.
+  if (message->current_transcript->is_final &&
+      message->current_transcript->transcript_id == transcript_id_ &&
+      message->current_transcript->text.length() < text_.length()) {
+    return {};
+  }
+
   if (!message->previous_transcript.is_null() && !is_final_ &&
       message->previous_transcript->transcript_id == transcript_id_) {
     results = MaybeMergeTranscript(std::move(message->previous_transcript),
diff --git a/chromeos/ash/components/boca/babelorca/transcript_builder_unittest.cc b/chromeos/ash/components/boca/babelorca/transcript_builder_unittest.cc
index 0051a1b6..cc1c2d0 100644
--- a/chromeos/ash/components/boca/babelorca/transcript_builder_unittest.cc
+++ b/chromeos/ash/components/boca/babelorca/transcript_builder_unittest.cc
@@ -451,5 +451,52 @@
                   kResultText3, /*is_final_param=*/false, kLanguageEn)));
 }
 
+TEST(TranscriptBuilderTest, TranscriptSplit) {
+  const std::string kInputText1 = "Hello, this is";
+  const std::string kInputText2 = "Hello.";
+  const std::string kInputText3 = "This is a test.";
+  TranscriptBuilder builder(kSessionId, kSenderEmail);
+  mojom::BabelOrcaMessagePtr message1 = CreateMessage(
+      {.order = 5},
+      /*previous_transcript=*/nullptr,
+      /*current_transcript=*/
+      CreateTranscriptPart(
+          {.id = 1, .index = 0, .text = kInputText1, .is_final = false}));
+  mojom::BabelOrcaMessagePtr message2 = CreateMessage(
+      {.order = 6},
+      /*previous_transcript=*/nullptr,
+      /*current_transcript=*/
+      CreateTranscriptPart(
+          {.id = 1, .index = 0, .text = kInputText2, .is_final = true}));
+  mojom::BabelOrcaMessagePtr message3 = CreateMessage(
+      {.order = 7},
+      /*previous_transcript=*/
+      CreateTranscriptPart(
+          {.id = 1, .index = 0, .text = kInputText2, .is_final = true}),
+      /*current_transcript=*/
+      CreateTranscriptPart(
+          {.id = 2, .index = 0, .text = kInputText3, .is_final = false}));
+
+  std::vector<TranscriptBuilder::Result> results1 =
+      builder.GetTranscripts(std::move(message1));
+  std::vector<TranscriptBuilder::Result> results2 =
+      builder.GetTranscripts(std::move(message2));
+  std::vector<TranscriptBuilder::Result> results3 =
+      builder.GetTranscripts(std::move(message3));
+
+  ASSERT_THAT(results1, testing::SizeIs(1));
+  EXPECT_THAT(results1[0],
+              BuilderResultEq(TranscriptBuilder::Result(
+                  kInputText1, /*is_final_param=*/false, kLanguageEn)));
+  EXPECT_THAT(results2, testing::IsEmpty());
+  ASSERT_THAT(results3, testing::SizeIs(2));
+  EXPECT_THAT(results3[0],
+              BuilderResultEq(TranscriptBuilder::Result(
+                  kInputText2, /*is_final_param=*/true, kLanguageEn)));
+  EXPECT_THAT(results3[1],
+              BuilderResultEq(TranscriptBuilder::Result(
+                  kInputText3, /*is_final_param=*/false, kLanguageEn)));
+}
+
 }  // namespace
 }  // namespace ash::babelorca
diff --git a/chromeos/tast_control.gni b/chromeos/tast_control.gni
index ab18a68..0f34a235 100644
--- a/chromeos/tast_control.gni
+++ b/chromeos/tast_control.gni
@@ -92,9 +92,6 @@
   "crostini.AppFirefoxWindowOperations.minimize_bookworm_clamshell_stable@volteer",
   "crostini.AppFirefoxWindowOperations.switch_tablet_bookworm_clamshell_stable@volteer",
 
-  # b/382395695: pita.* misenabled on betty after disk resize.
-  "pita.*@betty",
-
   # READ COMMENT AT TOP BEFORE ADDING NEW TESTS HERE.
 ]
 
diff --git a/clank b/clank
index 2194079..6c91b3d 160000
--- a/clank
+++ b/clank
@@ -1 +1 @@
-Subproject commit 21940795d0716914166441b2043aae2ec64086f1
+Subproject commit 6c91b3d63c04c2c5907dd772e25f5bdfc70c771f
diff --git a/components/BUILD.gn b/components/BUILD.gn
index 50f7930..fe5964c2 100644
--- a/components/BUILD.gn
+++ b/components/BUILD.gn
@@ -891,7 +891,7 @@
     "$root_gen_dir/components/arc/input_overlay_resources.pak",
     "$root_gen_dir/components/autofill/core/browser/autofill_address_rewriter_resources.pak",
     "$root_gen_dir/components/components_resources.pak",
-    "$root_gen_dir/components/metrics/metrics_url_constants.pak",
+    "$root_gen_dir/components/metrics/metrics_server_urls.pak",
     "$root_gen_dir/components/omnibox/resources/omnibox_pedal_synonyms_en-US.pak",
     "$root_gen_dir/components/plus_addresses/resources/strings/plus_addresses_strings_en-US.pak",
     "$root_gen_dir/components/strings/components_locale_settings_en-US.pak",
@@ -904,7 +904,7 @@
     # thus not going to move this resource pak to under ash.
     "//ash/components/arc/input_overlay/resources:resources_grit",
     "//components/autofill/core/browser:autofill_address_rewriter_resources",
-    "//components/metrics:url_constants",
+    "//components/metrics:server_urls_grd",
     "//components/omnibox/resources:omnibox_pedal_synonyms",
     "//components/plus_addresses/resources/strings",
     "//components/resources",
diff --git a/components/browser_ui/notifications/android/BUILD.gn b/components/browser_ui/notifications/android/BUILD.gn
index afefa5b..a2f3a17 100644
--- a/components/browser_ui/notifications/android/BUILD.gn
+++ b/components/browser_ui/notifications/android/BUILD.gn
@@ -19,7 +19,6 @@
 
 android_library("java") {
   sources = [
-    "java/src/org/chromium/components/browser_ui/notifications/AsyncNotificationManagerProxy.java",
     "java/src/org/chromium/components/browser_ui/notifications/AsyncNotificationManagerProxyImpl.java",
     "java/src/org/chromium/components/browser_ui/notifications/BaseNotificationManagerProxy.java",
     "java/src/org/chromium/components/browser_ui/notifications/BaseNotificationManagerProxyFactory.java",
diff --git a/components/browser_ui/notifications/android/java/src/org/chromium/components/browser_ui/notifications/AsyncNotificationManagerProxy.java b/components/browser_ui/notifications/android/java/src/org/chromium/components/browser_ui/notifications/AsyncNotificationManagerProxy.java
deleted file mode 100644
index bb7521f..0000000
--- a/components/browser_ui/notifications/android/java/src/org/chromium/components/browser_ui/notifications/AsyncNotificationManagerProxy.java
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright 2024 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.components.browser_ui.notifications;
-
-import android.app.NotificationChannel;
-import android.os.Build;
-
-import androidx.annotation.RequiresApi;
-
-import org.chromium.base.Callback;
-
-/**
- * A proxy for making asynchronous calls to Android Notification Manager. This avoids an issue that
- * main thread is blocked due to the Binder introduced by NotificationManager. This class will
- * replace NotificationManagerProxy once all the calling places are converted.
- */
-public interface AsyncNotificationManagerProxy extends BaseNotificationManagerProxy {
-    /**
-     * @see <a
-     *     href="https://developer.android.com/reference/android/app/NotificationManager#getNotificationChannel(java.lang.String)">
-     *     https://developer.android.com/reference/android/app/NotificationManager#getNotificationChannel(java.lang.String)</a>
-     */
-    @RequiresApi(Build.VERSION_CODES.O)
-    void getNotificationChannel(String channelId, Callback<NotificationChannel> callback);
-}
diff --git a/components/browser_ui/notifications/android/java/src/org/chromium/components/browser_ui/notifications/AsyncNotificationManagerProxyImpl.java b/components/browser_ui/notifications/android/java/src/org/chromium/components/browser_ui/notifications/AsyncNotificationManagerProxyImpl.java
index 0aed9e37..5dd69dc 100644
--- a/components/browser_ui/notifications/android/java/src/org/chromium/components/browser_ui/notifications/AsyncNotificationManagerProxyImpl.java
+++ b/components/browser_ui/notifications/android/java/src/org/chromium/components/browser_ui/notifications/AsyncNotificationManagerProxyImpl.java
@@ -25,7 +25,7 @@
  * Default implementation of the AsyncNotificationManagerProxy, which passes through all calls to
  * the normal Android Notification Manager.
  */
-/* package */ class AsyncNotificationManagerProxyImpl implements AsyncNotificationManagerProxy {
+/* package */ class AsyncNotificationManagerProxyImpl implements BaseNotificationManagerProxy {
     private static final String TAG = "AsyncNotifManager";
     private final NotificationManagerCompat mNotificationManager;
 
diff --git a/components/browser_ui/notifications/android/java/src/org/chromium/components/browser_ui/notifications/BaseNotificationManagerProxy.java b/components/browser_ui/notifications/android/java/src/org/chromium/components/browser_ui/notifications/BaseNotificationManagerProxy.java
index 791ea015..c398ba5 100644
--- a/components/browser_ui/notifications/android/java/src/org/chromium/components/browser_ui/notifications/BaseNotificationManagerProxy.java
+++ b/components/browser_ui/notifications/android/java/src/org/chromium/components/browser_ui/notifications/BaseNotificationManagerProxy.java
@@ -99,6 +99,13 @@
     void getNotificationChannels(Callback<List<NotificationChannel>> callback);
 
     /**
+     * @see <a
+     *     href="https://developer.android.com/reference/android/app/NotificationManager#getNotificationChannel()">
+     *     https://developer.android.com/reference/android/app/NotificationManager#getNotificationChannel()</a>
+     */
+    void getNotificationChannel(String channelId, Callback<NotificationChannel> callback);
+
+    /**
      * A proxy for Android's StatusBarNotification.
      *
      * <p>Instead of returning real StatusBarNotification instances through getActiveNotifications()
diff --git a/components/browser_ui/notifications/android/java/src/org/chromium/components/browser_ui/notifications/BaseNotificationManagerProxyFactory.java b/components/browser_ui/notifications/android/java/src/org/chromium/components/browser_ui/notifications/BaseNotificationManagerProxyFactory.java
index 2e2e32c..05676d8 100644
--- a/components/browser_ui/notifications/android/java/src/org/chromium/components/browser_ui/notifications/BaseNotificationManagerProxyFactory.java
+++ b/components/browser_ui/notifications/android/java/src/org/chromium/components/browser_ui/notifications/BaseNotificationManagerProxyFactory.java
@@ -27,22 +27,15 @@
     }
 
     /** Overrides the proxy instance for tests. */
-    public static void setInstanceForTesting(NotificationManagerProxy proxy) {
+    public static void setInstanceForTesting(BaseNotificationManagerProxy proxy) {
         ThreadUtils.runOnUiThreadBlocking(
                 (Runnable)
                         () -> {
                             sProxyForTest = proxy;
-                            NotificationManagerProxyImpl.setInstanceForTesting(proxy);
-                        });
-        ResettersForTesting.register(() -> sProxyForTest = null);
-    }
-
-    /** Overrides the proxy instance for tests. */
-    public static void setInstanceForTesting(AsyncNotificationManagerProxy proxy) {
-        ThreadUtils.runOnUiThreadBlocking(
-                (Runnable)
-                        () -> {
-                            sProxyForTest = proxy;
+                            if (proxy instanceof NotificationManagerProxy) {
+                                NotificationManagerProxyImpl.setInstanceForTesting(
+                                        (NotificationManagerProxy) proxy);
+                            }
                         });
         ResettersForTesting.register(() -> sProxyForTest = null);
     }
diff --git a/components/browser_ui/notifications/android/java/src/org/chromium/components/browser_ui/notifications/MockNotificationManagerProxy.java b/components/browser_ui/notifications/android/java/src/org/chromium/components/browser_ui/notifications/MockNotificationManagerProxy.java
index 59adfa79..0399506 100644
--- a/components/browser_ui/notifications/android/java/src/org/chromium/components/browser_ui/notifications/MockNotificationManagerProxy.java
+++ b/components/browser_ui/notifications/android/java/src/org/chromium/components/browser_ui/notifications/MockNotificationManagerProxy.java
@@ -179,6 +179,11 @@
     }
 
     @Override
+    public void getNotificationChannel(String channelId, Callback<NotificationChannel> callback) {
+        callback.onResult(mChannels.get(channelId));
+    }
+
+    @Override
     public void deleteNotificationChannelGroup(String groupId) {}
 
     @Override
diff --git a/components/browser_ui/notifications/android/java/src/org/chromium/components/browser_ui/notifications/NotificationManagerProxyImpl.java b/components/browser_ui/notifications/android/java/src/org/chromium/components/browser_ui/notifications/NotificationManagerProxyImpl.java
index 9e95fef..887a4a5d 100644
--- a/components/browser_ui/notifications/android/java/src/org/chromium/components/browser_ui/notifications/NotificationManagerProxyImpl.java
+++ b/components/browser_ui/notifications/android/java/src/org/chromium/components/browser_ui/notifications/NotificationManagerProxyImpl.java
@@ -107,6 +107,14 @@
     }
 
     @Override
+    public void getNotificationChannel(String channelId, Callback<NotificationChannel> callback) {
+        runCallableAndReply(
+                TraceEvent.scoped("NotificationManagerProxyImpl.getNotificationChannel"),
+                () -> mNotificationManager.getNotificationChannel(channelId),
+                callback);
+    }
+
+    @Override
     public void getNotificationChannelGroups(Callback<List<NotificationChannelGroup>> callback) {
         runCallableAndReply(
                 TraceEvent.scoped("NotificationManagerProxyImpl.getNotificationChannelGroups"),
diff --git a/components/component_updater/android/component_loader_policy_unittests.cc b/components/component_updater/android/component_loader_policy_unittests.cc
index 4ceb8915..3f4548f9 100644
--- a/components/component_updater/android/component_loader_policy_unittests.cc
+++ b/components/component_updater/android/component_loader_policy_unittests.cc
@@ -83,8 +83,6 @@
   MockLoaderPolicy()
       : on_loaded_(base::DoNothing()), on_failed_(base::DoNothing()) {}
 
-  ~MockLoaderPolicy() override = default;
-
   MockLoaderPolicy(const MockLoaderPolicy&) = delete;
   MockLoaderPolicy& operator=(const MockLoaderPolicy&) = delete;
 
diff --git a/components/component_updater/component_updater_service_unittest.cc b/components/component_updater/component_updater_service_unittest.cc
index 5fbbc4a..212398e 100644
--- a/components/component_updater/component_updater_service_unittest.cc
+++ b/components/component_updater/component_updater_service_unittest.cc
@@ -107,9 +107,6 @@
 
 class MockServiceObserver : public ServiceObserver {
  public:
-  MockServiceObserver() = default;
-  ~MockServiceObserver() override = default;
-
   MOCK_METHOD1(OnEvent, void(const update_client::CrxUpdateItem&));
 };
 
diff --git a/components/component_updater/configurator_impl_unittest.cc b/components/component_updater/configurator_impl_unittest.cc
index 012af2f..24bb20ac 100644
--- a/components/component_updater/configurator_impl_unittest.cc
+++ b/components/component_updater/configurator_impl_unittest.cc
@@ -20,16 +20,6 @@
 namespace component_updater {
 
 class ComponentUpdaterConfiguratorImplTest : public testing::Test {
- public:
-  ComponentUpdaterConfiguratorImplTest() = default;
-
-  ComponentUpdaterConfiguratorImplTest(
-      const ComponentUpdaterConfiguratorImplTest&) = delete;
-  ComponentUpdaterConfiguratorImplTest& operator=(
-      const ComponentUpdaterConfiguratorImplTest&) = delete;
-
-  ~ComponentUpdaterConfiguratorImplTest() override = default;
-
  private:
   base::test::TaskEnvironment environment_;
 };
diff --git a/components/component_updater/installer_policies/cookie_readiness_list_component_installer_policy.h b/components/component_updater/installer_policies/cookie_readiness_list_component_installer_policy.h
index 168cf90..8acd553 100644
--- a/components/component_updater/installer_policies/cookie_readiness_list_component_installer_policy.h
+++ b/components/component_updater/installer_policies/cookie_readiness_list_component_installer_policy.h
@@ -27,12 +27,10 @@
       const CookieReadinessListComponentInstallerPolicy&) = delete;
   CookieReadinessListComponentInstallerPolicy& operator=(
       const CookieReadinessListComponentInstallerPolicy&) = delete;
-  ~CookieReadinessListComponentInstallerPolicy() override = default;
 
   // ComponentInstallerPolicy:
   bool VerifyInstallation(const base::Value::Dict& manifest,
                           const base::FilePath& install_dir) const override;
-
  private:
   // ComponentInstallerPolicy:
   bool SupportsGroupPolicyEnabledComponentUpdates() const override;
diff --git a/components/component_updater/installer_policies/history_search_strings_component_installer_unittest.cc b/components/component_updater/installer_policies/history_search_strings_component_installer_unittest.cc
index 491d392..a896ada 100644
--- a/components/component_updater/installer_policies/history_search_strings_component_installer_unittest.cc
+++ b/components/component_updater/installer_policies/history_search_strings_component_installer_unittest.cc
@@ -34,20 +34,12 @@
 class HistorySearchStringsComponentInstallerPolicyPublic
     : public HistorySearchStringsComponentInstallerPolicy {
  public:
-  HistorySearchStringsComponentInstallerPolicyPublic() = default;
   using HistorySearchStringsComponentInstallerPolicy::ComponentReady;
   using HistorySearchStringsComponentInstallerPolicy::VerifyInstallation;
 };
 
 class HistorySearchStringsComponentInstallerPolicyTest : public PlatformTest {
- public:
-  HistorySearchStringsComponentInstallerPolicyTest() = default;
-  ~HistorySearchStringsComponentInstallerPolicyTest() override = default;
-  HistorySearchStringsComponentInstallerPolicyTest(
-      const HistorySearchStringsComponentInstallerPolicyTest&) = delete;
-  HistorySearchStringsComponentInstallerPolicyTest& operator=(
-      const HistorySearchStringsComponentInstallerPolicyTest&) = delete;
-
+ protected:
   void SetUp() override {
     PlatformTest::SetUp();
 
@@ -63,7 +55,6 @@
     listener()->ResetForTesting();
   }
 
- protected:
   void RunUntilIdle() { task_environment_.RunUntilIdle(); }
   component_updater::MockComponentUpdateService* cus() { return cus_.get(); }
   HistorySearchStringsComponentInstallerPolicyPublic* installer() {
diff --git a/components/component_updater/installer_policies/open_cookie_database_component_installer_policy.h b/components/component_updater/installer_policies/open_cookie_database_component_installer_policy.h
index 1c802a4..ac38678 100644
--- a/components/component_updater/installer_policies/open_cookie_database_component_installer_policy.h
+++ b/components/component_updater/installer_policies/open_cookie_database_component_installer_policy.h
@@ -27,12 +27,10 @@
       const OpenCookieDatabaseComponentInstallerPolicy&) = delete;
   OpenCookieDatabaseComponentInstallerPolicy& operator=(
       const OpenCookieDatabaseComponentInstallerPolicy&) = delete;
-  ~OpenCookieDatabaseComponentInstallerPolicy() override = default;
 
   // ComponentInstallerPolicy:
   bool VerifyInstallation(const base::Value::Dict& manifest,
                           const base::FilePath& install_dir) const override;
-
  private:
   // ComponentInstallerPolicy:
   bool SupportsGroupPolicyEnabledComponentUpdates() const override;
diff --git a/components/component_updater/installer_policies/optimization_hints_component_installer_unittest.cc b/components/component_updater/installer_policies/optimization_hints_component_installer_unittest.cc
index b58e5818..d02b49d 100644
--- a/components/component_updater/installer_policies/optimization_hints_component_installer_unittest.cc
+++ b/components/component_updater/installer_policies/optimization_hints_component_installer_unittest.cc
@@ -33,8 +33,6 @@
       const OptimizationHintsMockComponentUpdateService&) = delete;
   OptimizationHintsMockComponentUpdateService& operator=(
       const OptimizationHintsMockComponentUpdateService&) = delete;
-
-  ~OptimizationHintsMockComponentUpdateService() override = default;
 };
 
 }  // namespace
@@ -42,16 +40,7 @@
 namespace component_updater {
 
 class OptimizationHintsComponentInstallerTest : public PlatformTest {
- public:
-  OptimizationHintsComponentInstallerTest() = default;
-
-  OptimizationHintsComponentInstallerTest(
-      const OptimizationHintsComponentInstallerTest&) = delete;
-  OptimizationHintsComponentInstallerTest& operator=(
-      const OptimizationHintsComponentInstallerTest&) = delete;
-
-  ~OptimizationHintsComponentInstallerTest() override = default;
-
+ protected:
   void SetUp() override {
     PlatformTest::SetUp();
 
@@ -79,7 +68,6 @@
     base::RunLoop().RunUntilIdle();
   }
 
- protected:
   void RunUntilIdle() {
     task_environment_.RunUntilIdle();
     base::RunLoop().RunUntilIdle();
diff --git a/components/component_updater/installer_policies/origin_trials_component_installer.h b/components/component_updater/installer_policies/origin_trials_component_installer.h
index 75e52bf3..2a6a84cb 100644
--- a/components/component_updater/installer_policies/origin_trials_component_installer.h
+++ b/components/component_updater/installer_policies/origin_trials_component_installer.h
@@ -22,7 +22,6 @@
  public:
   static void GetComponentHash(std::vector<uint8_t>* hash);
   OriginTrialsComponentInstallerPolicy() = default;
-  ~OriginTrialsComponentInstallerPolicy() override = default;
   OriginTrialsComponentInstallerPolicy(
       const OriginTrialsComponentInstallerPolicy&) = delete;
   OriginTrialsComponentInstallerPolicy& operator=(
diff --git a/components/component_updater/installer_policies/plus_address_blocklist_component_installer_unittest.cc b/components/component_updater/installer_policies/plus_address_blocklist_component_installer_unittest.cc
index 5e4d7e1..2727379 100644
--- a/components/component_updater/installer_policies/plus_address_blocklist_component_installer_unittest.cc
+++ b/components/component_updater/installer_policies/plus_address_blocklist_component_installer_unittest.cc
@@ -26,14 +26,7 @@
 }  // namespace
 
 class PlusAddressBlocklistInstallerPolicyTest : public PlatformTest {
- public:
-  PlusAddressBlocklistInstallerPolicyTest() = default;
-  PlusAddressBlocklistInstallerPolicyTest(
-      const PlusAddressBlocklistInstallerPolicyTest&) = delete;
-  PlusAddressBlocklistInstallerPolicyTest& operator=(
-      const PlusAddressBlocklistInstallerPolicyTest&) = delete;
-  ~PlusAddressBlocklistInstallerPolicyTest() override = default;
-
+ protected:
   void SetUp() override {
     PlatformTest::SetUp();
     ASSERT_TRUE(component_install_dir_.CreateUniqueTempDir());
@@ -60,7 +53,6 @@
 
   void RunUntilIdle() { task_environment_.RunUntilIdle(); }
 
- protected:
   base::test::TaskEnvironment task_environment_;
   base::ScopedTempDir component_install_dir_;
   MockComponentUpdateService cus_;
diff --git a/components/component_updater/installer_policies/tpcd_metadata_component_installer_policy_unittest.cc b/components/component_updater/installer_policies/tpcd_metadata_component_installer_policy_unittest.cc
index f3a2da33..9050a5d 100644
--- a/components/component_updater/installer_policies/tpcd_metadata_component_installer_policy_unittest.cc
+++ b/components/component_updater/installer_policies/tpcd_metadata_component_installer_policy_unittest.cc
@@ -48,8 +48,6 @@
     CHECK(!path_.empty());
   }
 
-  ~TpcdMetadataComponentInstallerPolicyTest() override = default;
-
   bool IsTpcdMetadataGrantsEnabled() { return std::get<0>(GetParam()); }
   bool IsTpcdMetadataStagingEnabled() { return std::get<1>(GetParam()); }
 
diff --git a/components/component_updater/timer_unittest.cc b/components/component_updater/timer_unittest.cc
index bf33a35..af83ff8f0 100644
--- a/components/component_updater/timer_unittest.cc
+++ b/components/component_updater/timer_unittest.cc
@@ -16,14 +16,9 @@
 namespace component_updater {
 
 class ComponentUpdaterTimerTest : public testing::Test {
- public:
-  ComponentUpdaterTimerTest()
-      : task_environment_(
-            base::test::SingleThreadTaskEnvironment::MainThreadType::UI) {}
-  ~ComponentUpdaterTimerTest() override = default;
-
  private:
-  base::test::SingleThreadTaskEnvironment task_environment_;
+  base::test::SingleThreadTaskEnvironment task_environment_{
+      base::test::SingleThreadTaskEnvironment::MainThreadType::UI};
 };
 
 TEST_F(ComponentUpdaterTimerTest, Start) {
diff --git a/components/feature_engagement/public/feature_configurations.cc b/components/feature_engagement/public/feature_configurations.cc
index 10f4280..fa9a985 100644
--- a/components/feature_engagement/public/feature_configurations.cc
+++ b/components/feature_engagement/public/feature_configurations.cc
@@ -503,7 +503,10 @@
   if (kIPHDownloadEsbPromoFeature.name == feature->name) {
     std::optional<FeatureConfig> config = FeatureConfig();
     config->valid = true;
-    config->availability = Comparator(ANY, 0);
+    // Because this is a custom configuration being used in desktop user ed, use
+    // a non-default availability so the configurator doesn't try to write its
+    // own.
+    config->availability = Comparator(GREATER_THAN_OR_EQUAL, 0);
     config->session_rate = Comparator(ANY, 0);
     // Don't show if user has already seen an IPH this session.
     // Show the promo max once a year if the user hasn't interacted with
@@ -529,7 +532,10 @@
     // c/b/ui/webui/downloads/downloads_dom_handler.cc
     std::optional<FeatureConfig> config = FeatureConfig();
     config->valid = true;
-    config->availability = Comparator(ANY, 0);
+    // Because this is a custom configuration being used in desktop user ed, use
+    // a non-default availability so the configurator doesn't try to write its
+    // own.
+    config->availability = Comparator(GREATER_THAN_OR_EQUAL, 0);
     config->session_rate = Comparator(ANY, 0);
 
     // This isn't an IPH so we don't suppress other engagement features.
diff --git a/components/feed/core/v2/api_test/feed_api_stream_unittest.cc b/components/feed/core/v2/api_test/feed_api_stream_unittest.cc
index 1ac5e76..8aa529a 100644
--- a/components/feed/core/v2/api_test/feed_api_stream_unittest.cc
+++ b/components/feed/core/v2/api_test/feed_api_stream_unittest.cc
@@ -2233,7 +2233,7 @@
     feedstore::Metadata initial_metadata;
     feedstore::SetSessionId(initial_metadata, "session-id", kExpiry);
     initial_metadata.set_consistency_token("token");
-    initial_metadata.set_gaia(GetAccountInfo().gaia);
+    initial_metadata.set_gaia(GetAccountInfo().gaia.ToString());
     store_->WriteMetadata(initial_metadata, base::DoNothing());
   }
 
diff --git a/components/feed/core/v2/api_test/feed_api_subscriptions_unittest.cc b/components/feed/core/v2/api_test/feed_api_subscriptions_unittest.cc
index 9365e3d..de27a364 100644
--- a/components/feed/core/v2/api_test/feed_api_subscriptions_unittest.cc
+++ b/components/feed/core/v2/api_test/feed_api_subscriptions_unittest.cc
@@ -20,6 +20,7 @@
 #include "components/feed/core/v2/test/stream_builder.h"
 #include "components/feed/core/v2/web_feed_subscription_coordinator.h"
 #include "components/feed/feed_feature_list.h"
+#include "google_apis/gaia/gaia_id.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -30,7 +31,7 @@
 using testing::PrintToString;
 
 AccountInfo TestAccountInfo() {
-  return {"examplegaia", "example@foo.com"};
+  return {GaiaId("examplegaia"), "example@foo.com"};
 }
 
 FeedNetwork::RawResponse MakeFailedResponse() {
diff --git a/components/feed/core/v2/api_test/feed_api_test.cc b/components/feed/core/v2/api_test/feed_api_test.cc
index 4cc815f..bdc506f 100644
--- a/components/feed/core/v2/api_test/feed_api_test.cc
+++ b/components/feed/core/v2/api_test/feed_api_test.cc
@@ -839,7 +839,8 @@
         result.model_update_request->stream_data.clear_email();
       } else {
         result.model_update_request->stream_data.set_signed_in(true);
-        result.model_update_request->stream_data.set_gaia(account_info.gaia);
+        result.model_update_request->stream_data.set_gaia(
+            account_info.gaia.ToString());
         result.model_update_request->stream_data.set_email(account_info.email);
       }
     }
diff --git a/components/feed/core/v2/feed_network_impl_unittest.cc b/components/feed/core/v2/feed_network_impl_unittest.cc
index 9ef1069..875ef39ac 100644
--- a/components/feed/core/v2/feed_network_impl_unittest.cc
+++ b/components/feed/core/v2/feed_network_impl_unittest.cc
@@ -33,6 +33,7 @@
 #include "components/signin/public/base/consent_level.h"
 #include "components/signin/public/identity_manager/identity_test_environment.h"
 #include "components/variations/scoped_variations_ids_provider.h"
+#include "google_apis/gaia/gaia_id.h"
 #include "net/http/http_response_headers.h"
 #include "net/http/http_status_code.h"
 #include "net/http/http_util.h"
@@ -441,7 +442,7 @@
   CallbackReceiver<QueryRequestResult> receiver;
   feed_network()->SendQueryRequest(
       NetworkRequestType::kFeedQuery, GetTestFeedRequest(),
-      {"other-gaia", "other@foo.com"}, receiver.Bind());
+      {GaiaId("other-gaia"), "other@foo.com"}, receiver.Bind());
   task_environment_.RunUntilIdle();
   network::TestURLLoaderFactory::PendingRequest* pending_request =
       test_factory()->GetPendingRequest(0);
@@ -776,7 +777,7 @@
   CallbackReceiver<FeedNetwork::ApiResult<feedwire::UploadActionsResponse>>
       receiver;
   AccountInfo other_account;
-  other_account.gaia = "some_other_gaia";
+  other_account.gaia = GaiaId("some_other_gaia");
   other_account.email = "some@other.com";
   feed_network()->SendApiRequest<UploadActionsDiscoverApi>(
       GetTestActionRequest(), other_account, request_metadata(),
diff --git a/components/feed/core/v2/feed_stream.cc b/components/feed/core/v2/feed_stream.cc
index 368d4d5b..d256e97 100644
--- a/components/feed/core/v2/feed_stream.cc
+++ b/components/feed/core/v2/feed_stream.cc
@@ -67,6 +67,7 @@
 #include "components/offline_pages/task/closure_task.h"
 #include "components/prefs/pref_service.h"
 #include "components/signin/public/base/signin_pref_names.h"
+#include "google_apis/gaia/gaia_id.h"
 
 namespace feed {
 namespace {
@@ -1054,7 +1055,7 @@
   // be called again from within the LoadStreamTask, and then the metadata
   // will be initialized.
   if (metadata_populated_ &&
-      delegate_->GetAccountInfo().gaia != metadata_.gaia()) {
+      delegate_->GetAccountInfo().gaia != GaiaId(metadata_.gaia())) {
     return {LoadStreamStatus::kDataInStoreIsForAnotherUser,
             feedwire::DiscoverLaunchResult::DATA_IN_STORE_IS_FOR_ANOTHER_USER};
   }
@@ -1328,7 +1329,7 @@
 // Performs work that is necessary for both background and foreground load
 // tasks.
 void FeedStream::LoadTaskComplete(const LoadStreamTask::Result& result) {
-  if (delegate_->GetAccountInfo().gaia != metadata_.gaia()) {
+  if (delegate_->GetAccountInfo().gaia != GaiaId(metadata_.gaia())) {
     ClearAll();
     return;
   }
@@ -1384,7 +1385,8 @@
   has_stored_data_.SetValue(false);
   feed::prefs::SetExperiments({}, *profile_prefs_);
   feed::prefs::ClearClientInstanceId(*profile_prefs_);
-  SetMetadata(feedstore::MakeMetadata(delegate_->GetAccountInfo().gaia));
+  SetMetadata(
+      feedstore::MakeMetadata(delegate_->GetAccountInfo().gaia.ToString()));
 
   delegate_->ClearAll();
 
diff --git a/components/feed/core/v2/protocol_translator.cc b/components/feed/core/v2/protocol_translator.cc
index 7b7fe31..e454e2c 100644
--- a/components/feed/core/v2/protocol_translator.cc
+++ b/components/feed/core/v2/protocol_translator.cc
@@ -333,7 +333,7 @@
         response_metadata.event_id().SerializeAsString());
   }
   result->stream_data.set_signed_in(!account_info.IsEmpty());
-  result->stream_data.set_gaia(account_info.gaia);
+  result->stream_data.set_gaia(account_info.gaia.ToString());
   result->stream_data.set_email(account_info.email);
   result->stream_data.set_logging_enabled(
       chrome_response_metadata.logging_enabled());
diff --git a/components/feed/core/v2/protocol_translator_unittest.cc b/components/feed/core/v2/protocol_translator_unittest.cc
index 55638ca..7490d3c 100644
--- a/components/feed/core/v2/protocol_translator_unittest.cc
+++ b/components/feed/core/v2/protocol_translator_unittest.cc
@@ -23,6 +23,7 @@
 #include "components/feed/core/v2/proto_util.h"
 #include "components/feed/core/v2/test/proto_printer.h"
 #include "components/feed/feed_feature_list.h"
+#include "google_apis/gaia/gaia_id.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace feed {
@@ -32,7 +33,7 @@
 const base::Time kCurrentTime = base::Time::UnixEpoch() + base::Days(123);
 AccountInfo TestAccountInfo() {
   AccountInfo account_info;
-  account_info.gaia = "gaia";
+  account_info.gaia = GaiaId("gaia");
   account_info.email = "user@foo.com";
   return account_info;
 }
@@ -170,8 +171,8 @@
 TEST_F(ProtocolTranslatorTest, WasSignedInRequest) {
   feedwire::Response response = EmptyWireResponse();
 
-  for (AccountInfo account_info :
-       std::initializer_list<AccountInfo>{{"gaia", "user@foo.com"}, {}}) {
+  for (AccountInfo account_info : std::initializer_list<AccountInfo>{
+           {GaiaId("gaia"), "user@foo.com"}, {}}) {
     RefreshResponseData refresh = TranslateWireResponse(response, account_info);
     ASSERT_TRUE(refresh.model_update_request);
     EXPECT_EQ(refresh.model_update_request->stream_data.signed_in(),
diff --git a/components/feed/core/v2/public/ios/notice_card_tracker.cc b/components/feed/core/v2/public/ios/notice_card_tracker.cc
index d1c703d..2cdcfba3 100644
--- a/components/feed/core/v2/public/ios/notice_card_tracker.cc
+++ b/components/feed/core/v2/public/ios/notice_card_tracker.cc
@@ -10,30 +10,23 @@
 
 namespace ios_feed {
 
-constexpr char kNoticeCardViewsCountThresholdParamName[] =
-    "notice-card-views-count-threshold";
-constexpr char kNoticeCardClicksCountThresholdParamName[] =
-    "notice-card-clicks-count-threshold";
+namespace {
+
+// The number of views of the notice card to consider it acknowledged by the
+// user.
+const int kViewsCountThreshold = 3;
+
+// The number of clicks/taps of the notice card to consider it acknowledged by
+// the user.
+const int kClicksCountThreshold = 1;
+
+}  // namespace
 
 NoticeCardTracker::NoticeCardTracker(PrefService* profile_prefs)
     : profile_prefs_(profile_prefs) {
   DCHECK(profile_prefs_);
   views_count_ = feed::prefs::GetNoticeCardViewsCount(*profile_prefs_);
   clicks_count_ = feed::prefs::GetNoticeCardClicksCount(*profile_prefs_);
-
-  views_count_threshold_ = base::GetFieldTrialParamByFeatureAsInt(
-      feed::kInterestFeedNoticeCardAutoDismiss,
-      kNoticeCardViewsCountThresholdParamName, 3);
-  DCHECK(views_count_threshold_ >= 0);
-
-  clicks_count_threshold_ = base::GetFieldTrialParamByFeatureAsInt(
-      feed::kInterestFeedNoticeCardAutoDismiss,
-      kNoticeCardClicksCountThresholdParamName, 1);
-  DCHECK(clicks_count_threshold_ >= 0);
-
-  DCHECK(views_count_threshold_ > 0 || clicks_count_threshold_ > 0)
-      << "all notice card auto-dismiss thresholds are set to 0 when there "
-         "should be at least one threshold above 0";
 }
 
 void NoticeCardTracker::OnSliceViewed(int index) {
@@ -45,16 +38,13 @@
 }
 
 bool NoticeCardTracker::HasAcknowledgedNoticeCard() const {
-  if (!base::FeatureList::IsEnabled(feed::kInterestFeedNoticeCardAutoDismiss))
-    return false;
-
   base::AutoLock auto_lock_views(views_count_lock_);
-  if (views_count_threshold_ > 0 && views_count_ >= views_count_threshold_) {
+  if (views_count_ >= kViewsCountThreshold) {
     return true;
   }
 
   base::AutoLock auto_lock_clicks(clicks_count_lock_);
-  if (clicks_count_threshold_ > 0 && clicks_count_ >= clicks_count_threshold_) {
+  if (clicks_count_ >= kClicksCountThreshold) {
     return true;
   }
 
@@ -62,10 +52,6 @@
 }
 
 bool NoticeCardTracker::HasNoticeCardActionsCountPrerequisites(int index) {
-  if (!base::FeatureList::IsEnabled(feed::kInterestFeedNoticeCardAutoDismiss)) {
-    return false;
-  }
-
   if (!feed::prefs::GetLastFetchHadNoticeCard(*profile_prefs_)) {
     return false;
   }
diff --git a/components/feed/core/v2/public/ios/notice_card_tracker.h b/components/feed/core/v2/public/ios/notice_card_tracker.h
index ab39b97..64d2a37 100644
--- a/components/feed/core/v2/public/ios/notice_card_tracker.h
+++ b/components/feed/core/v2/public/ios/notice_card_tracker.h
@@ -50,14 +50,6 @@
   // The number of clicks/taps of the notice card.
   mutable base::Lock clicks_count_lock_;
   int clicks_count_ GUARDED_BY(clicks_count_lock_);
-
-  // The number of views of the notice card to consider it acknowledged by the
-  // user.
-  int views_count_threshold_;
-
-  // The number of clicks/taps of the notice card to consider it acknowledged by
-  // the user.
-  int clicks_count_threshold_;
 };
 
 }  // namespace ios_feed
diff --git a/components/feed/core/v2/public/ios/notice_card_tracker_unittest.cc b/components/feed/core/v2/public/ios/notice_card_tracker_unittest.cc
index f2654fa..af1434c9 100644
--- a/components/feed/core/v2/public/ios/notice_card_tracker_unittest.cc
+++ b/components/feed/core/v2/public/ios/notice_card_tracker_unittest.cc
@@ -27,11 +27,7 @@
 
 TEST_F(IOSNoticeCardTrackerTest,
        TrackingNoticeCardActionsDoesntUpdateCountsWhenNoNoticeCard) {
-  base::test::ScopedFeatureList scoped_feature_list;
-  scoped_feature_list.InitAndEnableFeature(
-      feed::kInterestFeedNoticeCardAutoDismiss);
   NoticeCardTracker tracker(&profile_prefs_);
-
   feed::prefs::SetLastFetchHadNoticeCard(profile_prefs_, false);
 
   // Generate enough views to reach the acknowlegement threshold, but there was
@@ -46,9 +42,6 @@
 
 TEST_F(IOSNoticeCardTrackerTest,
        TrackingNoticeCardActionsDoesntUpdateCountsForNonNoticeCard) {
-  base::test::ScopedFeatureList scoped_feature_list;
-  scoped_feature_list.InitAndEnableFeature(
-      feed::kInterestFeedNoticeCardAutoDismiss);
   NoticeCardTracker tracker(&profile_prefs_);
 
   // Generate enough views to reach the acknowlegement threshold, but the views
@@ -63,9 +56,6 @@
 
 TEST_F(IOSNoticeCardTrackerTest,
        AcknowledgedNoticeCardWhenEnoughViewsAndNoticeCardAt1stPos) {
-  base::test::ScopedFeatureList scoped_feature_list;
-  scoped_feature_list.InitAndEnableFeature(
-      feed::kInterestFeedNoticeCardAutoDismiss);
   NoticeCardTracker tracker(&profile_prefs_);
 
   const int notice_card_index = 0;
@@ -78,9 +68,6 @@
 
 TEST_F(IOSNoticeCardTrackerTest,
        DontAcknowledgedNoticeCardWhenNotEnoughViewsNorClicks) {
-  base::test::ScopedFeatureList scoped_feature_list;
-  scoped_feature_list.InitAndEnableFeature(
-      feed::kInterestFeedNoticeCardAutoDismiss);
   NoticeCardTracker tracker(&profile_prefs_);
 
   // Generate views but not enough to reach the threshold.
@@ -92,42 +79,13 @@
 }
 
 TEST_F(IOSNoticeCardTrackerTest,
-       DontAcknowledgedNoticeCardWhenFeatureDisabled) {
-  base::test::ScopedFeatureList scoped_feature_list;
-  scoped_feature_list.InitAndDisableFeature(
-      feed::kInterestFeedNoticeCardAutoDismiss);
-
-  // Generate enough views and clicks on the notice card to reach the threshold,
-  // but the feature is disabled.
-  feed::prefs::IncrementNoticeCardClicksCount(profile_prefs_);
-  feed::prefs::IncrementNoticeCardViewsCount(profile_prefs_);
-  feed::prefs::IncrementNoticeCardViewsCount(profile_prefs_);
-  feed::prefs::IncrementNoticeCardViewsCount(profile_prefs_);
-
-  NoticeCardTracker tracker(&profile_prefs_);
-  EXPECT_FALSE(tracker.HasAcknowledgedNoticeCard());
-}
-
-TEST_F(IOSNoticeCardTrackerTest,
        DontAcknowledgedNoticeCardFromViewsCountWhenThresholdIsZero) {
-  base::FieldTrialParams params;
-  params["notice-card-views-count-threshold"] = "0";
-  base::test::ScopedFeatureList scoped_feature_list;
-  scoped_feature_list.InitAndEnableFeatureWithParameters(
-      feed::kInterestFeedNoticeCardAutoDismiss, params);
-
   NoticeCardTracker tracker(&profile_prefs_);
   EXPECT_FALSE(tracker.HasAcknowledgedNoticeCard());
 }
 
 TEST_F(IOSNoticeCardTrackerTest,
        DontAcknowledgedNoticeCardFromClicksCountWhenThresholdIsZero) {
-  base::FieldTrialParams params;
-  params["notice-card-clicks-count-threshold"] = "0";
-  base::test::ScopedFeatureList scoped_feature_list;
-  scoped_feature_list.InitAndEnableFeatureWithParameters(
-      feed::kInterestFeedNoticeCardAutoDismiss, params);
-
   NoticeCardTracker tracker(&profile_prefs_);
   EXPECT_FALSE(tracker.HasAcknowledgedNoticeCard());
 }
diff --git a/components/feed/core/v2/public/public_types.cc b/components/feed/core/v2/public/public_types.cc
index 323f31a9..07c59b3 100644
--- a/components/feed/core/v2/public/public_types.cc
+++ b/components/feed/core/v2/public/public_types.cc
@@ -11,7 +11,7 @@
 namespace feed {
 
 AccountInfo::AccountInfo() = default;
-AccountInfo::AccountInfo(const std::string& gaia, const std::string& email)
+AccountInfo::AccountInfo(const GaiaId& gaia, const std::string& email)
     : gaia(gaia), email(email) {}
 AccountInfo::AccountInfo(CoreAccountInfo account_info)
     : gaia(std::move(account_info.gaia)),
diff --git a/components/feed/core/v2/public/types.h b/components/feed/core/v2/public/types.h
index 851d9ac..63ce2b47 100644
--- a/components/feed/core/v2/public/types.h
+++ b/components/feed/core/v2/public/types.h
@@ -16,6 +16,7 @@
 #include "base/version.h"
 #include "components/signin/public/identity_manager/account_info.h"
 #include "components/version_info/channel.h"
+#include "google_apis/gaia/gaia_id.h"
 #include "url/gurl.h"
 
 namespace feed {
@@ -25,13 +26,13 @@
 // Sync is disabled, AccountInfo should be empty.
 struct AccountInfo {
   AccountInfo();
-  AccountInfo(const std::string& gaia, const std::string& email);
+  AccountInfo(const GaiaId& gaia, const std::string& email);
   explicit AccountInfo(CoreAccountInfo account_info);
   bool operator==(const AccountInfo& rhs) const;
   bool operator!=(const AccountInfo& rhs) const { return !(*this == rhs); }
   bool IsEmpty() const;
 
-  std::string gaia;
+  GaiaId gaia;
   std::string email;
 };
 std::ostream& operator<<(std::ostream& os, const AccountInfo& o);
diff --git a/components/feed/core/v2/tasks/load_stream_from_store_task.cc b/components/feed/core/v2/tasks/load_stream_from_store_task.cc
index 2fd4d52..25a9ca2 100644
--- a/components/feed/core/v2/tasks/load_stream_from_store_task.cc
+++ b/components/feed/core/v2/tasks/load_stream_from_store_task.cc
@@ -71,7 +71,7 @@
   if (!ignore_account_) {
     if (result.stream_data.signed_in()) {
       const AccountInfo& account_info = feed_stream_->GetAccountInfo();
-      if (result.stream_data.gaia() != account_info.gaia ||
+      if (result.stream_data.gaia() != account_info.gaia.ToString() ||
           result.stream_data.email() != account_info.email) {
         Complete(LoadStreamStatus::kDataInStoreIsForAnotherUser,
                  feedwire::DiscoverCardReadCacheResult::FAILED);
diff --git a/components/feed/core/v2/tasks/upload_actions_task.cc b/components/feed/core/v2/tasks/upload_actions_task.cc
index 4e4ff8d..f741008 100644
--- a/components/feed/core/v2/tasks/upload_actions_task.cc
+++ b/components/feed/core/v2/tasks/upload_actions_task.cc
@@ -6,6 +6,7 @@
 
 #include <memory>
 #include <vector>
+
 #include "base/metrics/histogram_functions.h"
 #include "base/time/time.h"
 #include "components/feed/core/proto/v2/store.pb.h"
@@ -24,6 +25,7 @@
 #include "components/feed/core/v2/proto_util.h"
 #include "components/feed/core/v2/request_throttler.h"
 #include "components/feed/core/v2/types.h"
+#include "google_apis/gaia/gaia_id.h"
 
 namespace feed {
 using feedstore::StoredAction;
@@ -190,7 +192,7 @@
   // Are logging parameters associated with a different account?
   if (wire_action_->logging_parameters.email != account_info_.email
       // Is the datastore associated with a different account?
-      || stream_->GetMetadata().gaia() != account_info_.gaia) {
+      || GaiaId(stream_->GetMetadata().gaia()) != account_info_.gaia) {
     Done(UploadActionsStatus::kAbortUploadForWrongUser);
     return;
   }
@@ -258,7 +260,7 @@
   // Can't upload actions for another user, so abort.
   if (stream_->GetAccountInfo() != account_info_ ||
       // Is the datastore associated with a different account?
-      stream_->GetMetadata().gaia() != account_info_.gaia) {
+      GaiaId(stream_->GetMetadata().gaia()) != account_info_.gaia) {
     Done(UploadActionsStatus::kAbortUploadForWrongUser);
     return;
   }
diff --git a/components/feed/core/v2/tasks/wait_for_store_initialize_task.cc b/components/feed/core/v2/tasks/wait_for_store_initialize_task.cc
index 6645756..e43c0c6 100644
--- a/components/feed/core/v2/tasks/wait_for_store_initialize_task.cc
+++ b/components/feed/core/v2/tasks/wait_for_store_initialize_task.cc
@@ -11,6 +11,7 @@
 #include "components/feed/core/v2/feed_stream.h"
 #include "components/feed/core/v2/feedstore_util.h"
 #include "components/feed/core/v2/test/proto_printer.h"
+#include "google_apis/gaia/gaia_id.h"
 
 namespace feed {
 
@@ -39,7 +40,7 @@
 void WaitForStoreInitializeTask::ReadStartupDataDone(
     FeedStore::StartupData startup_data) {
   if (startup_data.metadata &&
-      startup_data.metadata->gaia() != stream_->GetAccountInfo().gaia) {
+      GaiaId(startup_data.metadata->gaia()) != stream_->GetAccountInfo().gaia) {
     store_->ClearAll(base::BindOnce(&WaitForStoreInitializeTask::ClearAllDone,
                                     weak_ptr_factory_.GetWeakPtr()));
     return;
@@ -78,7 +79,7 @@
   if (metadata.stream_schema_version() != 1) {
     result_.startup_data.stream_data.clear();
     if (metadata.gaia().empty()) {
-      metadata.set_gaia(stream_->GetAccountInfo().gaia);
+      metadata.set_gaia(stream_->GetAccountInfo().gaia.ToString());
     }
     store_->UpgradeFromStreamSchemaV0(
         std::move(metadata),
diff --git a/components/feed/core/v2/test/stream_builder.cc b/components/feed/core/v2/test/stream_builder.cc
index ce2e7f33..19972a9 100644
--- a/components/feed/core/v2/test/stream_builder.cc
+++ b/components/feed/core/v2/test/stream_builder.cc
@@ -14,6 +14,7 @@
 #include "components/feed/core/v2/feedstore_util.h"
 #include "components/feed/core/v2/proto_util.h"
 #include "components/feed/core/v2/protocol_translator.h"
+#include "google_apis/gaia/gaia_id.h"
 
 namespace feed {
 namespace {
@@ -28,7 +29,7 @@
 
 base::Time kTestTimeEpoch = base::Time::UnixEpoch();
 AccountInfo TestAccountInfo() {
-  return {"gaia", "user@foo"};
+  return {GaiaId("gaia"), "user@foo"};
 }
 
 ContentId MakeContentId(ContentId::Type type,
@@ -264,7 +265,7 @@
   initial_update->stream_data.set_signed_in(signed_in);
   if (signed_in) {
     initial_update->stream_data.set_email(account_info.email);
-    initial_update->stream_data.set_gaia(account_info.gaia);
+    initial_update->stream_data.set_gaia(account_info.gaia.ToString());
   }
   initial_update->stream_data.set_logging_enabled(logging_enabled);
   initial_update->stream_data.set_privacy_notice_fulfilled(
@@ -307,7 +308,7 @@
   initial_update->stream_data.set_signed_in(signed_in);
   if (signed_in) {
     initial_update->stream_data.set_email(account_info.email);
-    initial_update->stream_data.set_gaia(account_info.gaia);
+    initial_update->stream_data.set_gaia(account_info.gaia.ToString());
   }
   initial_update->stream_data.set_logging_enabled(logging_enabled);
   initial_update->stream_data.set_privacy_notice_fulfilled(
diff --git a/components/feed/feed_feature_list.cc b/components/feed/feed_feature_list.cc
index 6934cfd..a6e73c4 100644
--- a/components/feed/feed_feature_list.cc
+++ b/components/feed/feed_feature_list.cc
@@ -32,12 +32,6 @@
              "InterestFeedV2Scrolling",
              base::FEATURE_ENABLED_BY_DEFAULT);
 
-#if BUILDFLAG(IS_IOS)
-BASE_FEATURE(kInterestFeedNoticeCardAutoDismiss,
-             "InterestFeedNoticeCardAutoDismiss",
-             base::FEATURE_ENABLED_BY_DEFAULT);
-#endif
-
 BASE_FEATURE(kDiscoFeedEndpoint,
              "DiscoFeedEndpoint",
              base::FEATURE_ENABLED_BY_DEFAULT);
diff --git a/components/feed/feed_feature_list.h b/components/feed/feed_feature_list.h
index 7cf6db28..435335b 100644
--- a/components/feed/feed_feature_list.h
+++ b/components/feed/feed_feature_list.h
@@ -32,13 +32,6 @@
 COMPONENT_EXPORT(COMPONENTS_FEED_FEATURE_LIST)
 BASE_DECLARE_FEATURE(kInterestFeedV2Scrolling);
 
-// Feature that allows the client to automatically dismiss the notice card based
-// on the clicks and views on the notice card.
-#if BUILDFLAG(IS_IOS)
-COMPONENT_EXPORT(COMPONENTS_FEED_FEATURE_LIST)
-BASE_DECLARE_FEATURE(kInterestFeedNoticeCardAutoDismiss);
-#endif
-
 // Use the new DiscoFeed endpoint.
 COMPONENT_EXPORT(COMPONENTS_FEED_FEATURE_LIST)
 BASE_DECLARE_FEATURE(kDiscoFeedEndpoint);
diff --git a/components/fingerprinting_protection_filter/browser/BUILD.gn b/components/fingerprinting_protection_filter/browser/BUILD.gn
index 9a038a4..12994a7fb 100644
--- a/components/fingerprinting_protection_filter/browser/BUILD.gn
+++ b/components/fingerprinting_protection_filter/browser/BUILD.gn
@@ -25,6 +25,7 @@
       "//components/content_settings/core/browser:cookie_settings",
       "//components/content_settings/core/common:common",
       "//components/fingerprinting_protection_filter/common:common",
+      "//components/fingerprinting_protection_filter/common:exceptions",
       "//components/fingerprinting_protection_filter/common:features",
       "//components/fingerprinting_protection_filter/mojom",
       "//components/privacy_sandbox:tracking_protection_settings",
@@ -40,6 +41,7 @@
     deps = [
       "//components/content_settings/browser",
       "//components/fingerprinting_protection_filter/common:exceptions",
+      "//components/fingerprinting_protection_filter/common:prefs",
       "//components/subresource_filter/core/common",
       "//net",
       "//services/metrics/public/cpp:metrics_cpp",
@@ -60,6 +62,7 @@
     ]
     deps = [
       "//components/content_settings/core/browser",
+      "//components/fingerprinting_protection_filter/common:prefs",
       "//components/privacy_sandbox:tracking_protection_settings",
     ]
   }
@@ -76,6 +79,8 @@
       ":test_support",
       "//base",
       "//components/content_settings/core/browser:browser",
+      "//components/fingerprinting_protection_filter/common:exceptions",
+      "//components/fingerprinting_protection_filter/common:prefs",
       "//components/privacy_sandbox:features",
       "//components/subresource_filter/content/shared/browser:test_support",
       "//components/subresource_filter/core/browser",
diff --git a/components/fingerprinting_protection_filter/browser/fingerprinting_protection_web_contents_helper.cc b/components/fingerprinting_protection_filter/browser/fingerprinting_protection_web_contents_helper.cc
index 5f3e8bfd..df208a84 100644
--- a/components/fingerprinting_protection_filter/browser/fingerprinting_protection_web_contents_helper.cc
+++ b/components/fingerprinting_protection_filter/browser/fingerprinting_protection_web_contents_helper.cc
@@ -13,12 +13,14 @@
 #include "components/fingerprinting_protection_filter/common/fingerprinting_protection_breakage_exception.h"
 #include "components/fingerprinting_protection_filter/common/fingerprinting_protection_filter_constants.h"
 #include "components/fingerprinting_protection_filter/common/fingerprinting_protection_filter_features.h"
+#include "components/fingerprinting_protection_filter/common/pref_names.h"
 #include "components/prefs/pref_service.h"
 #include "components/privacy_sandbox/tracking_protection_settings.h"
 #include "components/site_engagement/content/site_engagement_service.h"
 #include "components/subresource_filter/content/shared/browser/utils.h"
 #include "components/subresource_filter/core/browser/verified_ruleset_dealer.h"
 #include "components/subresource_filter/core/common/load_policy.h"
+#include "components/subresource_filter/core/mojom/subresource_filter.mojom-shared.h"
 #include "content/public/browser/navigation_handle.h"
 #include "content/public/browser/navigation_handle_user_data.h"
 #include "content/public/browser/web_contents.h"
@@ -44,6 +46,7 @@
 using ::subresource_filter::GetSubresourceFilterRootPage;
 using ::subresource_filter::IsInSubresourceFilterRoot;
 using ::subresource_filter::VerifiedRulesetDealer;
+using ::subresource_filter::mojom::ActivationLevel;
 
 bool IsRootNavigationToNewDocument(content::NavigationHandle& handle) {
   return IsInSubresourceFilterRoot(&handle) && !handle.IsSameDocument() &&
@@ -96,15 +99,17 @@
   return web_contents.GetPrimaryMainFrame()->GetPageUkmSourceId();
 }
 
-void RefreshMetricsManager::IncrementRefreshCount(
+int RefreshMetricsManager::IncrementAndGetRefreshCount(
     const GURL& url,
     content::WebContents& web_contents) {
   std::string etld_plus_one = GetEtldPlusOne(url);
   if (!etld_plus_one.empty()) {
-    refresh_count_by_etld_plus_one_[etld_plus_one].refresh_count++;
     refresh_count_by_etld_plus_one_[etld_plus_one].last_visited_source_id =
         GetUkmSourceId(web_contents);
+    return ++refresh_count_by_etld_plus_one_[etld_plus_one].refresh_count;
   }
+  // Invalid URL.
+  return -1;
 }
 
 void RefreshMetricsManager::LogMetrics() const {
@@ -261,6 +266,29 @@
   if (IsRootNavigationToNewDocument(*navigation_handle)) {
     CreateThrottleManagerForNavigation(navigation_handle);
   }
+
+  // Record refresh count, and possibly add exception, if there was a
+  // subresource blocked in this page.
+  // We do this in DidStartNavigation so that we can react to an attempted
+  // refresh even if the navigation is cancelled (e.g. due to tab closing).
+  if (subresource_blocked_in_current_primary_page() &&
+      navigation_handle->GetReloadType() != content::ReloadType::NONE) {
+    // Collect metrics regardless of whether the heuristic exception is enabled.
+    int refresh_count = GetRefreshMetricsManager().IncrementAndGetRefreshCount(
+        navigation_handle->GetURL(), *web_contents());
+
+    if (features::IsFingerprintingProtectionRefreshHeuristicExceptionEnabled(
+            is_incognito_) &&
+        refresh_count >=
+            features::GetFingerprintingProtectionRefreshHeuristicThreshold(
+                is_incognito_)) {
+      // Heuristic: If we blocked a subresource and the user refreshes enough
+      // times on the same site within this WebContents, we suspect there's been
+      // breakage on this site and add an exception.
+      CHECK(pref_service_ != nullptr);
+      AddBreakageException(navigation_handle->GetURL(), *pref_service_);
+    }
+  }
 }
 
 void FingerprintingProtectionWebContentsHelper::
@@ -298,10 +326,6 @@
     subresource_blocked_in_current_primary_page_ = false;
   }
 
-  if (navigation_handle->GetReloadType() != content::ReloadType::NONE) {
-    GetRefreshMetricsManager().IncrementRefreshCount(
-        navigation_handle->GetURL(), *web_contents());
-  }
   if (navigation_handle->IsPrerenderedPageActivation() ||
       navigation_handle->IsServedFromBackForwardCache()) {
     if (!navigation_handle->HasCommitted()) {
@@ -400,10 +424,16 @@
   }
 }
 
-void FingerprintingProtectionWebContentsHelper::NotifyOnBlockedSubresource() {
+void FingerprintingProtectionWebContentsHelper::NotifyOnBlockedSubresource(
+    ActivationLevel activation_level) {
+  // Set this bit in both Enabled and DryRun so we can collect metrics.
   subresource_blocked_in_current_primary_page_ = true;
-  for (auto& observer : observer_list_) {
-    observer.OnSubresourceBlocked();
+
+  // Only notify observers in Enabled, not DryRun.
+  if (activation_level == ActivationLevel::kEnabled) {
+    for (auto& observer : observer_list_) {
+      observer.OnSubresourceBlocked();
+    }
   }
 }
 
diff --git a/components/fingerprinting_protection_filter/browser/fingerprinting_protection_web_contents_helper.h b/components/fingerprinting_protection_filter/browser/fingerprinting_protection_web_contents_helper.h
index b584f4a..bf7f6472 100644
--- a/components/fingerprinting_protection_filter/browser/fingerprinting_protection_web_contents_helper.h
+++ b/components/fingerprinting_protection_filter/browser/fingerprinting_protection_web_contents_helper.h
@@ -7,11 +7,13 @@
 
 #include <string>
 
+#include "base/containers/flat_set.h"
 #include "base/memory/raw_ptr.h"
 #include "base/observer_list.h"
 #include "base/scoped_observation.h"
 #include "components/privacy_sandbox/tracking_protection_settings.h"
 #include "components/subresource_filter/core/browser/verified_ruleset_dealer.h"
+#include "components/subresource_filter/core/mojom/subresource_filter.mojom-shared.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/web_contents_observer.h"
 #include "content/public/browser/web_contents_user_data.h"
@@ -51,11 +53,13 @@
   RefreshMetricsManager();
   ~RefreshMetricsManager();
 
-  // Increments the refresh count for the eTLD+1 of the given URL.
-  // If the URL is invalid, this is a no-op. That doesn't matter because we only
-  // care about measuring breakage on valid URLs.
-  void IncrementRefreshCount(const GURL& url,
-                             content::WebContents& web_contents);
+  // Increments the refresh count for the eTLD+1 of the given URL, and returns
+  // the new count.
+  // If the URL is invalid (eTLD+1 cannot be computed), this is a no-op,
+  // and -1 is returned. That case doesn't matter because we only care about
+  // measuring breakage on valid URLs.
+  int IncrementAndGetRefreshCount(const GURL& url,
+                                  content::WebContents& web_contents);
   // Logs UMA and UKM metrics for each eTLD+1 that had at least one refresh in
   // the attached WebContents.
   void LogMetrics() const;
@@ -127,7 +131,12 @@
       content::NavigationHandle* navigation_handle,
       subresource_filter::LoadPolicy load_policy);
 
-  void NotifyOnBlockedSubresource();
+  // When a subresource is blocked, ThrottleManager calls this function on the
+  // FingerprintingProtectionWebContentsHelper for the primary page.
+  // If `activation_level` is `kEnabled`, calls OnSubresourceBlocked on all
+  // observers in `observer_list_`.
+  void NotifyOnBlockedSubresource(
+      subresource_filter::mojom::ActivationLevel activation_level);
 
   void AddObserver(FingerprintingProtectionObserver* observer);
   void RemoveObserver(FingerprintingProtectionObserver* observer);
diff --git a/components/fingerprinting_protection_filter/browser/fingerprinting_protection_web_contents_helper_unittest.cc b/components/fingerprinting_protection_filter/browser/fingerprinting_protection_web_contents_helper_unittest.cc
index 7afbd7c4..c2e32d5f 100644
--- a/components/fingerprinting_protection_filter/browser/fingerprinting_protection_web_contents_helper_unittest.cc
+++ b/components/fingerprinting_protection_filter/browser/fingerprinting_protection_web_contents_helper_unittest.cc
@@ -14,8 +14,12 @@
 #include "base/test/scoped_feature_list.h"
 #include "components/fingerprinting_protection_filter/browser/fingerprinting_protection_observer.h"
 #include "components/fingerprinting_protection_filter/browser/test_support.h"
+#include "components/fingerprinting_protection_filter/common/fingerprinting_protection_breakage_exception.h"
 #include "components/fingerprinting_protection_filter/common/fingerprinting_protection_filter_constants.h"
 #include "components/fingerprinting_protection_filter/common/fingerprinting_protection_filter_features.h"
+#include "components/fingerprinting_protection_filter/common/pref_names.h"
+#include "components/prefs/pref_service.h"
+#include "components/subresource_filter/core/mojom/subresource_filter.mojom-shared.h"
 #include "components/ukm/test_ukm_recorder.h"
 #include "content/public/browser/navigation_controller.h"
 #include "content/public/browser/web_contents_user_data.h"
@@ -45,6 +49,7 @@
 using ::content::WebContents;
 using ::privacy_sandbox::TrackingProtectionSettings;
 using ::subresource_filter::VerifiedRulesetDealer;
+using ::subresource_filter::mojom::ActivationLevel;
 using ::testing::_;
 using ::testing::Return;
 
@@ -242,7 +247,8 @@
   test_web_contents_helper->AddObserver(&observer);
 
   EXPECT_CALL(observer, OnSubresourceBlocked());
-  test_web_contents_helper->NotifyOnBlockedSubresource();
+  test_web_contents_helper->NotifyOnBlockedSubresource(
+      ActivationLevel::kEnabled);
 }
 
 TEST_F(FingerprintingProtectionNotifyOnBlockedSubresourceTest,
@@ -267,8 +273,9 @@
   EXPECT_CALL(observer, OnSubresourceBlocked()).Times(0);
 }
 
-TEST_F(FingerprintingProtectionNotifyOnBlockedSubresourceTest,
-       SubresourceBlockedDirtyBit_SetOnBlockAndResetOnNavigation) {
+TEST_F(
+    FingerprintingProtectionNotifyOnBlockedSubresourceTest,
+    SubresourceBlockedDirtyBit_SetOnBlockAndResetOnNavigation_ActivationEnabled) {
   scoped_feature_list_.InitAndEnableFeature(
       features::kEnableFingerprintingProtectionFilter);
   FingerprintingProtectionWebContentsHelper::CreateForWebContents(
@@ -284,8 +291,42 @@
   // Initially, dirty bit is false.
   EXPECT_FALSE(
       test_web_contents_helper->subresource_blocked_in_current_primary_page());
-  // Simulate blocked subresource.
-  test_web_contents_helper->NotifyOnBlockedSubresource();
+  // Simulate blocked subresource with activation enabled.
+  test_web_contents_helper->NotifyOnBlockedSubresource(
+      ActivationLevel::kEnabled);
+  // Dirty bit should be true.
+  EXPECT_TRUE(
+      test_web_contents_helper->subresource_blocked_in_current_primary_page());
+  // Navigate somewhere else.
+  WebContents* web_contents = RenderViewHostTestHarness::web_contents();
+  content::NavigationSimulator::NavigateAndCommitFromBrowser(
+      web_contents, GURL("http://google.test"));
+  // Now dirty bit should be false again.
+  EXPECT_FALSE(
+      test_web_contents_helper->subresource_blocked_in_current_primary_page());
+}
+
+TEST_F(
+    FingerprintingProtectionNotifyOnBlockedSubresourceTest,
+    SubresourceBlockedDirtyBit_SetOnBlockAndResetOnNavigation_ActivationDryRun) {
+  scoped_feature_list_.InitAndEnableFeature(
+      features::kEnableFingerprintingProtectionFilter);
+  FingerprintingProtectionWebContentsHelper::CreateForWebContents(
+      RenderViewHostTestHarness::web_contents(), test_support_.prefs(),
+      test_support_.tracking_protection_settings(),
+      /*dealer=*/nullptr,
+      /*is_incognito=*/false);
+
+  auto* test_web_contents_helper =
+      FingerprintingProtectionWebContentsHelper::FromWebContents(
+          RenderViewHostTestHarness::web_contents());
+
+  // Initially, dirty bit is false.
+  EXPECT_FALSE(
+      test_web_contents_helper->subresource_blocked_in_current_primary_page());
+  // Simulate blocked subresource in dry run.
+  test_web_contents_helper->NotifyOnBlockedSubresource(
+      ActivationLevel::kDryRun);
   // Dirty bit should be true.
   EXPECT_TRUE(
       test_web_contents_helper->subresource_blocked_in_current_primary_page());
@@ -316,7 +357,8 @@
   EXPECT_FALSE(
       test_web_contents_helper->subresource_blocked_in_current_primary_page());
   // Simulate blocked subresource.
-  test_web_contents_helper->NotifyOnBlockedSubresource();
+  test_web_contents_helper->NotifyOnBlockedSubresource(
+      ActivationLevel::kEnabled);
   // Dirty bit should be true.
   EXPECT_TRUE(
       test_web_contents_helper->subresource_blocked_in_current_primary_page());
@@ -359,7 +401,7 @@
 // Inherits everything from FingerprintingProtectionWebContentsHelper, except
 // for using a MockRefreshMetricsManager and implementing the factory functions
 // as necessary.
-class MockWCHForRefreshCountMetricsTest
+class MockWCHForRefreshCountTests
     : public FingerprintingProtectionWebContentsHelper {
  public:
   static void CreateForWebContents(
@@ -374,19 +416,19 @@
       return;
     }
 
-    content::WebContentsUserData<MockWCHForRefreshCountMetricsTest>::
+    content::WebContentsUserData<MockWCHForRefreshCountTests>::
         CreateForWebContents(web_contents, pref_service,
                              tracking_protection_settings, dealer_handle,
                              is_incognito);
   }
 
-  static MockWCHForRefreshCountMetricsTest* FromWebContents(
+  static MockWCHForRefreshCountTests* FromWebContents(
       WebContents* web_contents) {
-    return WebContentsUserData<
-        MockWCHForRefreshCountMetricsTest>::FromWebContents(web_contents);
+    return WebContentsUserData<MockWCHForRefreshCountTests>::FromWebContents(
+        web_contents);
   }
 
-  explicit MockWCHForRefreshCountMetricsTest(
+  explicit MockWCHForRefreshCountTests(
       WebContents* web_contents,
       PrefService* pref_service,
       TrackingProtectionSettings* tracking_protection_settings,
@@ -406,7 +448,7 @@
 
   WEB_CONTENTS_USER_DATA_KEY_DECL();
 };
-WEB_CONTENTS_USER_DATA_KEY_IMPL(MockWCHForRefreshCountMetricsTest);
+WEB_CONTENTS_USER_DATA_KEY_IMPL(MockWCHForRefreshCountTests);
 
 class FingerprintingProtectionRefreshCountMetricsTest
     : public content::RenderViewHostTestHarness {
@@ -418,23 +460,32 @@
     // Enable feature flag - necessary for creating FPWebContentsHelper.
     scoped_feature_list_.InitAndEnableFeature(
         features::kEnableFingerprintingProtectionFilter);
+  }
 
-    // Create WebContentsHelper.
-    MockWCHForRefreshCountMetricsTest::CreateForWebContents(
+  void InitializeWebContentsHelper(bool is_incognito) {
+    MockWCHForRefreshCountTests::CreateForWebContents(
         RenderViewHostTestHarness::web_contents(), test_support_.prefs(),
         test_support_.tracking_protection_settings(),
-        /*dealer_handle=*/nullptr,
-        /*is_incognito=*/false);
+        /*dealer_handle=*/nullptr, is_incognito);
   }
 
   void TearDown() override { RenderViewHostTestHarness::TearDown(); }
 
-  // Navigate to the given URL and then reload n times.
-  void NavigateAndReloadNTimes(std::string_view url, int n) {
+  // Navigate to the given URL, then simulate subresource blocked and reload n
+  // times.
+  void NavigateBlockSubresourceAndReloadNTimes(std::string_view url,
+                                               int n,
+                                               bool block_subresource = true) {
     WebContents* web_contents = RenderViewHostTestHarness::web_contents();
+    MockWCHForRefreshCountTests* web_contents_helper =
+        MockWCHForRefreshCountTests::FromWebContents(web_contents);
     content::NavigationSimulator::NavigateAndCommitFromBrowser(web_contents,
                                                                GURL(url));
     for (int i = 0; i < n; i++) {
+      if (block_subresource) {
+        web_contents_helper->NotifyOnBlockedSubresource(
+            ActivationLevel::kEnabled);
+      }
       content::NavigationSimulator::Reload(web_contents);
     }
   }
@@ -462,11 +513,12 @@
 };
 
 TEST_F(FingerprintingProtectionRefreshCountMetricsTest,
-       OneRefreshOnOneSite_LogsRefreshMetrics) {
+       OneRefreshOnOneSite_LogsRefreshMetrics_Incognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/true);
+
   base::HistogramTester histograms;
 
-  // Do navigation and reload once.
-  NavigateAndReloadNTimes(kGoogleUrl, 1);
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 1);
 
   // Close WebContents, triggering log.
   RenderViewHostTestHarness::DeleteContents();
@@ -479,12 +531,32 @@
   ExpectRefreshCountUkmsAre({{kGoogleUkmId, 1}});
 }
 
-TEST_F(FingerprintingProtectionRefreshCountMetricsTest,
-       MultipleRefreshesOnOneSite_LogsRefreshMetrics) {
+TEST_F(
+    FingerprintingProtectionRefreshCountMetricsTest,
+    OneRefreshOnOneSite_NoBlockedSubresource_NoLoggedRefreshMetrics_Incognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/true);
+
   base::HistogramTester histograms;
 
-  // Do navigation and reload three times.
-  NavigateAndReloadNTimes(kGoogleUrl, 3);
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 1, false);
+
+  // Close WebContents, triggering log.
+  RenderViewHostTestHarness::DeleteContents();
+
+  // Expected UMAs
+  histograms.ExpectTotalCount(RefreshCountHistogramName, 0);
+
+  // Expected UKMs
+  ExpectRefreshCountUkmsAre({});
+}
+
+TEST_F(FingerprintingProtectionRefreshCountMetricsTest,
+       MultipleRefreshesOnOneSite_LogsRefreshMetrics_Incognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/true);
+
+  base::HistogramTester histograms;
+
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 3);
 
   // Close WebContents, triggering log.
   RenderViewHostTestHarness::DeleteContents();
@@ -498,15 +570,14 @@
 }
 
 TEST_F(FingerprintingProtectionRefreshCountMetricsTest,
-       MultipleNonContiguousRefreshesOnOneSite_LogsRefreshMetrics) {
+       MultipleNonContiguousRefreshesOnOneSite_LogsRefreshMetrics_Incognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/true);
+
   base::HistogramTester histograms;
 
-  // Do navigation and reload once.
-  NavigateAndReloadNTimes(kGoogleUrl, 1);
-  // Navigate elsewhere.
-  NavigateAndReloadNTimes(kYoutubeUrl, 0);
-  // Navigate back and reload twice.
-  NavigateAndReloadNTimes(kGoogleUrl, 2);
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 1);
+  NavigateBlockSubresourceAndReloadNTimes(kYoutubeUrl, 0);
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 2);
 
   // Close WebContents, triggering log.
   RenderViewHostTestHarness::DeleteContents();
@@ -519,14 +590,37 @@
   ExpectRefreshCountUkmsAre({{kGoogleUkmId, 3}});
 }
 
-TEST_F(FingerprintingProtectionRefreshCountMetricsTest,
-       OneRefreshEachOnMultipleSites_LogsRefreshMetrics) {
+TEST_F(
+    FingerprintingProtectionRefreshCountMetricsTest,
+    MultipleNonContiguousRefreshesOnOneSite_NotAlwaysBlocked_LogsRefreshMetrics_Incognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/true);
+
   base::HistogramTester histograms;
 
-  // Navigate and reload once each.
-  NavigateAndReloadNTimes(kGoogleUrl, 1);
-  NavigateAndReloadNTimes(kYoutubeUrl, 1);
-  NavigateAndReloadNTimes(kAppspotUrl, 1);
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 1);
+  NavigateBlockSubresourceAndReloadNTimes(kYoutubeUrl, 0);
+  // Don't block subresource on the last 2 -> only 1 effective refresh.
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 2, false);
+
+  // Close WebContents, triggering log.
+  RenderViewHostTestHarness::DeleteContents();
+
+  // Expected UMAs
+  histograms.ExpectTotalCount(RefreshCountHistogramName, 1);
+
+  // Expected UKMs
+  ExpectRefreshCountUkmsAre({{kGoogleUkmId, 1}});
+}
+
+TEST_F(FingerprintingProtectionRefreshCountMetricsTest,
+       OneRefreshEachOnMultipleSites_LogsRefreshMetrics_Incognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/true);
+
+  base::HistogramTester histograms;
+
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 1);
+  NavigateBlockSubresourceAndReloadNTimes(kYoutubeUrl, 1);
+  NavigateBlockSubresourceAndReloadNTimes(kAppspotUrl, 1);
 
   // Close WebContents, triggering log.
   RenderViewHostTestHarness::DeleteContents();
@@ -541,13 +635,14 @@
 }
 
 TEST_F(FingerprintingProtectionRefreshCountMetricsTest,
-       MultipleRefreshesEachOnMultipleSites_LogsRefreshMetrics) {
+       MultipleRefreshesEachOnMultipleSites_LogsRefreshMetrics_Incognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/true);
+
   base::HistogramTester histograms;
 
-  // Navigate and reload multiple times each.
-  NavigateAndReloadNTimes(kGoogleUrl, 3);
-  NavigateAndReloadNTimes(kYoutubeUrl, 2);
-  NavigateAndReloadNTimes(kAppspotUrl, 4);
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 3);
+  NavigateBlockSubresourceAndReloadNTimes(kYoutubeUrl, 2);
+  NavigateBlockSubresourceAndReloadNTimes(kAppspotUrl, 4);
 
   // Close WebContents, triggering log.
   RenderViewHostTestHarness::DeleteContents();
@@ -562,19 +657,21 @@
       {{kGoogleUkmId, 3}, {kYoutubeUkmId, 2}, {kAppspotUkmId, 4}});
 }
 
-TEST_F(FingerprintingProtectionRefreshCountMetricsTest,
-       MultipleNonContiguousRefreshesOnMultipleSites_LogsRefreshMetrics) {
+TEST_F(
+    FingerprintingProtectionRefreshCountMetricsTest,
+    MultipleNonContiguousRefreshesOnMultipleSites_LogsRefreshMetrics_Incognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/true);
+
   base::HistogramTester histograms;
 
-  // Navigate between different sites and reload multiple times each.
-  NavigateAndReloadNTimes(kGoogleUrl, 1);
-  NavigateAndReloadNTimes(kYoutubeUrl, 1);
-  NavigateAndReloadNTimes(kAppspotUrl, 2);
-  NavigateAndReloadNTimes(kNonReloadedSiteUrl, 0);
-  NavigateAndReloadNTimes(kYoutubeUrl, 3);
-  NavigateAndReloadNTimes(kGoogleUrl, 1);
-  NavigateAndReloadNTimes(kNonReloadedSiteUrl, 0);
-  NavigateAndReloadNTimes(kAppspotUrl, 2);
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 1);
+  NavigateBlockSubresourceAndReloadNTimes(kYoutubeUrl, 1);
+  NavigateBlockSubresourceAndReloadNTimes(kAppspotUrl, 2);
+  NavigateBlockSubresourceAndReloadNTimes(kNonReloadedSiteUrl, 0);
+  NavigateBlockSubresourceAndReloadNTimes(kYoutubeUrl, 3);
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 1);
+  NavigateBlockSubresourceAndReloadNTimes(kNonReloadedSiteUrl, 0);
+  NavigateBlockSubresourceAndReloadNTimes(kAppspotUrl, 2);
 
   // Close WebContents, triggering log.
   RenderViewHostTestHarness::DeleteContents();
@@ -588,5 +685,458 @@
       {{kGoogleUkmId, 2}, {kYoutubeUkmId, 4}, {kAppspotUkmId, 4}});
 }
 
+TEST_F(FingerprintingProtectionRefreshCountMetricsTest,
+       OneRefreshOnOneSite_LogsRefreshMetrics_NonIncognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/false);
+
+  base::HistogramTester histograms;
+
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 1);
+
+  // Close WebContents, triggering log.
+  RenderViewHostTestHarness::DeleteContents();
+
+  // Expected UMAs
+  histograms.ExpectBucketCount(RefreshCountHistogramName, 1, 1);
+  histograms.ExpectTotalCount(RefreshCountHistogramName, 1);
+
+  // Expected UKMs
+  ExpectRefreshCountUkmsAre({{kGoogleUkmId, 1}});
+}
+
+TEST_F(
+    FingerprintingProtectionRefreshCountMetricsTest,
+    OneRefreshOnOneSite_NoBlockedSubresource_NoLoggedRefreshMetrics_NonIncognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/false);
+
+  base::HistogramTester histograms;
+
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 1, false);
+
+  // Close WebContents, triggering log.
+  RenderViewHostTestHarness::DeleteContents();
+
+  // Expected UMAs
+  histograms.ExpectTotalCount(RefreshCountHistogramName, 0);
+
+  // Expected UKMs
+  ExpectRefreshCountUkmsAre({});
+}
+
+TEST_F(FingerprintingProtectionRefreshCountMetricsTest,
+       MultipleRefreshesOnOneSite_LogsRefreshMetrics_NonIncognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/false);
+
+  base::HistogramTester histograms;
+
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 3);
+
+  // Close WebContents, triggering log.
+  RenderViewHostTestHarness::DeleteContents();
+
+  // Expected UMAs
+  histograms.ExpectBucketCount(RefreshCountHistogramName, 3, 1);
+  histograms.ExpectTotalCount(RefreshCountHistogramName, 1);
+
+  // Expected UKMs
+  ExpectRefreshCountUkmsAre({{kGoogleUkmId, 3}});
+}
+
+TEST_F(
+    FingerprintingProtectionRefreshCountMetricsTest,
+    MultipleNonContiguousRefreshesOnOneSite_LogsRefreshMetrics_NonIncognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/false);
+
+  base::HistogramTester histograms;
+
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 1);
+  NavigateBlockSubresourceAndReloadNTimes(kYoutubeUrl, 0);
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 2);
+
+  // Close WebContents, triggering log.
+  RenderViewHostTestHarness::DeleteContents();
+
+  // Expected UMAs
+  histograms.ExpectBucketCount(RefreshCountHistogramName, 3, 1);
+  histograms.ExpectTotalCount(RefreshCountHistogramName, 1);
+
+  // Expected UKMs
+  ExpectRefreshCountUkmsAre({{kGoogleUkmId, 3}});
+}
+
+TEST_F(
+    FingerprintingProtectionRefreshCountMetricsTest,
+    MultipleNonContiguousRefreshesOnOneSite_NotAlwaysBlocked_LogsRefreshMetrics_NonIncognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/false);
+
+  base::HistogramTester histograms;
+
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 1);
+  NavigateBlockSubresourceAndReloadNTimes(kYoutubeUrl, 0);
+  // Don't block subresource on the last 2 -> only 1 effective refresh.
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 2, false);
+
+  // Close WebContents, triggering log.
+  RenderViewHostTestHarness::DeleteContents();
+
+  // Expected UMAs
+  histograms.ExpectTotalCount(RefreshCountHistogramName, 1);
+
+  // Expected UKMs
+  ExpectRefreshCountUkmsAre({{kGoogleUkmId, 1}});
+}
+
+TEST_F(FingerprintingProtectionRefreshCountMetricsTest,
+       OneRefreshEachOnMultipleSites_LogsRefreshMetrics_NonIncognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/false);
+
+  base::HistogramTester histograms;
+
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 1);
+  NavigateBlockSubresourceAndReloadNTimes(kYoutubeUrl, 1);
+  NavigateBlockSubresourceAndReloadNTimes(kAppspotUrl, 1);
+
+  // Close WebContents, triggering log.
+  RenderViewHostTestHarness::DeleteContents();
+
+  // Expected UMAs
+  histograms.ExpectBucketCount(RefreshCountHistogramName, 1, 3);
+  histograms.ExpectTotalCount(RefreshCountHistogramName, 3);
+
+  // Expected UKMs
+  ExpectRefreshCountUkmsAre(
+      {{kGoogleUkmId, 1}, {kYoutubeUkmId, 1}, {kAppspotUkmId, 1}});
+}
+
+TEST_F(FingerprintingProtectionRefreshCountMetricsTest,
+       MultipleRefreshesEachOnMultipleSites_LogsRefreshMetrics_NonIncognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/false);
+
+  base::HistogramTester histograms;
+
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 3);
+  NavigateBlockSubresourceAndReloadNTimes(kYoutubeUrl, 2);
+  NavigateBlockSubresourceAndReloadNTimes(kAppspotUrl, 4);
+
+  // Close WebContents, triggering log.
+  RenderViewHostTestHarness::DeleteContents();
+
+  // Expected UMAs
+  histograms.ExpectBucketCount(RefreshCountHistogramName, 3, 1);
+  histograms.ExpectBucketCount(RefreshCountHistogramName, 2, 1);
+  histograms.ExpectBucketCount(RefreshCountHistogramName, 4, 1);
+
+  // Expected UKMs
+  ExpectRefreshCountUkmsAre(
+      {{kGoogleUkmId, 3}, {kYoutubeUkmId, 2}, {kAppspotUkmId, 4}});
+}
+
+TEST_F(
+    FingerprintingProtectionRefreshCountMetricsTest,
+    MultipleNonContiguousRefreshesOnMultipleSites_LogsRefreshMetrics_NonIncognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/false);
+
+  base::HistogramTester histograms;
+
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 1);
+  NavigateBlockSubresourceAndReloadNTimes(kYoutubeUrl, 1);
+  NavigateBlockSubresourceAndReloadNTimes(kAppspotUrl, 2);
+  NavigateBlockSubresourceAndReloadNTimes(kNonReloadedSiteUrl, 0);
+  NavigateBlockSubresourceAndReloadNTimes(kYoutubeUrl, 3);
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 1);
+  NavigateBlockSubresourceAndReloadNTimes(kNonReloadedSiteUrl, 0);
+  NavigateBlockSubresourceAndReloadNTimes(kAppspotUrl, 2);
+
+  // Close WebContents, triggering log.
+  RenderViewHostTestHarness::DeleteContents();
+
+  // Expected UMAs
+  histograms.ExpectBucketCount(RefreshCountHistogramName, 2, 1);
+  histograms.ExpectBucketCount(RefreshCountHistogramName, 4, 2);
+
+  // Expected UKMs
+  ExpectRefreshCountUkmsAre(
+      {{kGoogleUkmId, 2}, {kYoutubeUkmId, 4}, {kAppspotUkmId, 4}});
+}
+
+class FingerprintingProtectionRefreshCountExceptionTest
+    : public content::RenderViewHostTestHarness {
+ public:
+  FingerprintingProtectionRefreshCountExceptionTest() = default;
+
+  void SetUp() override {
+    content::RenderViewHostTestHarness::SetUp();
+    // Enable feature param for adding exception in both regular and incognito.
+    scoped_feature_list_.InitWithFeaturesAndParameters(
+        {{features::kEnableFingerprintingProtectionFilter,
+          {{features::kRefreshHeuristicExceptionThresholdParam, "3"}}},
+         {features::kEnableFingerprintingProtectionFilterInIncognito,
+          {{features::kRefreshHeuristicExceptionThresholdParam, "3"}}}},
+        {});
+  }
+
+  void InitializeWebContentsHelper(bool is_incognito) {
+    MockWCHForRefreshCountTests::CreateForWebContents(
+        RenderViewHostTestHarness::web_contents(), test_support_.prefs(),
+        test_support_.tracking_protection_settings(),
+        /*dealer_handle=*/nullptr, is_incognito);
+  }
+
+  void TearDown() override { RenderViewHostTestHarness::TearDown(); }
+
+  // Navigate to the given URL, then simulate subresource blocked and reload n
+  // times.
+  void NavigateBlockSubresourceAndReloadNTimes(std::string_view url,
+                                               int n,
+                                               bool block_subresource = true) {
+    WebContents* web_contents = RenderViewHostTestHarness::web_contents();
+    MockWCHForRefreshCountTests* web_contents_helper =
+        MockWCHForRefreshCountTests::FromWebContents(web_contents);
+    content::NavigationSimulator::NavigateAndCommitFromBrowser(web_contents,
+                                                               GURL(url));
+    for (int i = 0; i < n; i++) {
+      if (block_subresource) {
+        web_contents_helper->NotifyOnBlockedSubresource(
+            ActivationLevel::kEnabled);
+      }
+      content::NavigationSimulator::Reload(web_contents);
+    }
+  }
+
+ protected:
+  base::test::ScopedFeatureList scoped_feature_list_;
+  TestSupport test_support_;
+};
+
+TEST_F(FingerprintingProtectionRefreshCountExceptionTest,
+       NotEnoughRefreshesOnOneSite_NoException_Incognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/true);
+
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 0);
+
+  EXPECT_FALSE(HasBreakageException(GURL(kGoogleUrl), *test_support_.prefs()));
+}
+
+TEST_F(FingerprintingProtectionRefreshCountExceptionTest,
+       RefreshesOnOneSite_HasException_Incognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/true);
+
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 3);
+
+  EXPECT_TRUE(HasBreakageException(GURL(kGoogleUrl), *test_support_.prefs()));
+}
+
+TEST_F(FingerprintingProtectionRefreshCountExceptionTest,
+       NonContiguousRefreshesOnOneSite_HasException_Incognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/true);
+
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 1);
+  NavigateBlockSubresourceAndReloadNTimes(kYoutubeUrl, 0);
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 2);
+
+  EXPECT_TRUE(HasBreakageException(GURL(kGoogleUrl), *test_support_.prefs()));
+  // No exception for the non-refreshed site.
+  EXPECT_FALSE(HasBreakageException(GURL(kYoutubeUrl), *test_support_.prefs()));
+}
+
+TEST_F(FingerprintingProtectionRefreshCountExceptionTest,
+       NotEnoughRefreshesOnMultipleSites_NoExceptions_Incognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/true);
+
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 1);
+  NavigateBlockSubresourceAndReloadNTimes(kYoutubeUrl, 1);
+  NavigateBlockSubresourceAndReloadNTimes(kAppspotUrl, 1);
+
+  // Not enough refreshes to add exception for any site.
+  EXPECT_FALSE(HasBreakageException(GURL(kGoogleUrl), *test_support_.prefs()));
+  EXPECT_FALSE(HasBreakageException(GURL(kYoutubeUrl), *test_support_.prefs()));
+  EXPECT_FALSE(HasBreakageException(GURL(kAppspotUrl), *test_support_.prefs()));
+}
+
+TEST_F(FingerprintingProtectionRefreshCountExceptionTest,
+       RefreshesOnMultipleSites_AllHaveExceptions_Incognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/true);
+
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 3);
+  NavigateBlockSubresourceAndReloadNTimes(kYoutubeUrl, 4);
+  NavigateBlockSubresourceAndReloadNTimes(kAppspotUrl, 5);
+
+  EXPECT_TRUE(HasBreakageException(GURL(kGoogleUrl), *test_support_.prefs()));
+  EXPECT_TRUE(HasBreakageException(GURL(kYoutubeUrl), *test_support_.prefs()));
+  EXPECT_TRUE(HasBreakageException(GURL(kAppspotUrl), *test_support_.prefs()));
+}
+
+TEST_F(
+    FingerprintingProtectionRefreshCountExceptionTest,
+    NonContiguousRefreshesOfDifferentAmountsOnMultipleSites_SomeHaveExceptions_Incognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/true);
+
+  // Navigate between different sites and reload multiple times each, but only
+  // Google and Appspot are refreshed enough to have an exception.
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 1);
+  NavigateBlockSubresourceAndReloadNTimes(kYoutubeUrl, 1);
+  NavigateBlockSubresourceAndReloadNTimes(kAppspotUrl, 1);
+  NavigateBlockSubresourceAndReloadNTimes(kNonReloadedSiteUrl, 0);
+  NavigateBlockSubresourceAndReloadNTimes(kYoutubeUrl, 3);
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 2);
+  NavigateBlockSubresourceAndReloadNTimes(kNonReloadedSiteUrl, 0);
+  NavigateBlockSubresourceAndReloadNTimes(kAppspotUrl, 0);
+
+  EXPECT_TRUE(HasBreakageException(GURL(kGoogleUrl), *test_support_.prefs()));
+  EXPECT_TRUE(HasBreakageException(GURL(kYoutubeUrl), *test_support_.prefs()));
+  EXPECT_FALSE(HasBreakageException(GURL(kAppspotUrl), *test_support_.prefs()));
+  EXPECT_FALSE(
+      HasBreakageException(GURL(kNonReloadedSiteUrl), *test_support_.prefs()));
+}
+
+TEST_F(FingerprintingProtectionRefreshCountExceptionTest,
+       RefreshHeuristicParamDisabled_NoException_Incognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/true);
+
+  // Disable feature param for exception.
+  scoped_feature_list_.Reset();
+  scoped_feature_list_.InitAndEnableFeatureWithParameters(
+      features::kEnableFingerprintingProtectionFilterInIncognito,
+      {{features::kRefreshHeuristicExceptionThresholdParam, "0"}});
+
+  // Navigate and reload multiple times each.
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 3);
+  NavigateBlockSubresourceAndReloadNTimes(kYoutubeUrl, 4);
+  NavigateBlockSubresourceAndReloadNTimes(kAppspotUrl, 5);
+
+  EXPECT_FALSE(HasBreakageException(GURL(kGoogleUrl), *test_support_.prefs()));
+  EXPECT_FALSE(HasBreakageException(GURL(kYoutubeUrl), *test_support_.prefs()));
+  EXPECT_FALSE(HasBreakageException(GURL(kAppspotUrl), *test_support_.prefs()));
+}
+
+TEST_F(FingerprintingProtectionRefreshCountExceptionTest,
+       NoBlockedSubresource_NoException_Incognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/true);
+
+  // Navigate and reload multiple times each, but no blocked subresources.
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 3, false);
+  NavigateBlockSubresourceAndReloadNTimes(kYoutubeUrl, 4, false);
+  NavigateBlockSubresourceAndReloadNTimes(kAppspotUrl, 5, false);
+
+  EXPECT_FALSE(HasBreakageException(GURL(kGoogleUrl), *test_support_.prefs()));
+  EXPECT_FALSE(HasBreakageException(GURL(kYoutubeUrl), *test_support_.prefs()));
+  EXPECT_FALSE(HasBreakageException(GURL(kAppspotUrl), *test_support_.prefs()));
+}
+
+TEST_F(FingerprintingProtectionRefreshCountExceptionTest,
+       NotEnoughRefreshesOnOneSite_NoException_NonIncognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/false);
+
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 0);
+
+  EXPECT_FALSE(HasBreakageException(GURL(kGoogleUrl), *test_support_.prefs()));
+}
+
+TEST_F(FingerprintingProtectionRefreshCountExceptionTest,
+       RefreshesOnOneSite_HasException_NonIncognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/false);
+
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 3);
+
+  EXPECT_TRUE(HasBreakageException(GURL(kGoogleUrl), *test_support_.prefs()));
+}
+
+TEST_F(FingerprintingProtectionRefreshCountExceptionTest,
+       NonContiguousRefreshesOnOneSite_HasException_NonIncognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/false);
+
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 1);
+  NavigateBlockSubresourceAndReloadNTimes(kYoutubeUrl, 0);
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 2);
+
+  EXPECT_TRUE(HasBreakageException(GURL(kGoogleUrl), *test_support_.prefs()));
+  // No exception for the non-refreshed site.
+  EXPECT_FALSE(HasBreakageException(GURL(kYoutubeUrl), *test_support_.prefs()));
+}
+
+TEST_F(FingerprintingProtectionRefreshCountExceptionTest,
+       NotEnoughRefreshesOnMultipleSites_NoExceptions_NonIncognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/false);
+
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 1);
+  NavigateBlockSubresourceAndReloadNTimes(kYoutubeUrl, 1);
+  NavigateBlockSubresourceAndReloadNTimes(kAppspotUrl, 1);
+
+  // Not enough refreshes to add exception for any site.
+  EXPECT_FALSE(HasBreakageException(GURL(kGoogleUrl), *test_support_.prefs()));
+  EXPECT_FALSE(HasBreakageException(GURL(kYoutubeUrl), *test_support_.prefs()));
+  EXPECT_FALSE(HasBreakageException(GURL(kAppspotUrl), *test_support_.prefs()));
+}
+
+TEST_F(FingerprintingProtectionRefreshCountExceptionTest,
+       RefreshesOnMultipleSites_AllHaveExceptions_NonIncognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/false);
+
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 3);
+  NavigateBlockSubresourceAndReloadNTimes(kYoutubeUrl, 4);
+  NavigateBlockSubresourceAndReloadNTimes(kAppspotUrl, 5);
+
+  EXPECT_TRUE(HasBreakageException(GURL(kGoogleUrl), *test_support_.prefs()));
+  EXPECT_TRUE(HasBreakageException(GURL(kYoutubeUrl), *test_support_.prefs()));
+  EXPECT_TRUE(HasBreakageException(GURL(kAppspotUrl), *test_support_.prefs()));
+}
+
+TEST_F(
+    FingerprintingProtectionRefreshCountExceptionTest,
+    NonContiguousRefreshesOfDifferentAmountsOnMultipleSites_SomeHaveExceptions_NonIncognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/false);
+
+  // Navigate between different sites and reload multiple times each, but only
+  // Google and Appspot are refreshed enough to have an exception.
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 1);
+  NavigateBlockSubresourceAndReloadNTimes(kYoutubeUrl, 1);
+  NavigateBlockSubresourceAndReloadNTimes(kAppspotUrl, 1);
+  NavigateBlockSubresourceAndReloadNTimes(kNonReloadedSiteUrl, 0);
+  NavigateBlockSubresourceAndReloadNTimes(kYoutubeUrl, 3);
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 2);
+  NavigateBlockSubresourceAndReloadNTimes(kNonReloadedSiteUrl, 0);
+  NavigateBlockSubresourceAndReloadNTimes(kAppspotUrl, 0);
+
+  EXPECT_TRUE(HasBreakageException(GURL(kGoogleUrl), *test_support_.prefs()));
+  EXPECT_TRUE(HasBreakageException(GURL(kYoutubeUrl), *test_support_.prefs()));
+  EXPECT_FALSE(HasBreakageException(GURL(kAppspotUrl), *test_support_.prefs()));
+  EXPECT_FALSE(
+      HasBreakageException(GURL(kNonReloadedSiteUrl), *test_support_.prefs()));
+}
+
+TEST_F(FingerprintingProtectionRefreshCountExceptionTest,
+       RefreshHeuristicParamDisabled_NoException_NonIncognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/false);
+
+  // Disable feature param for exception.
+  scoped_feature_list_.Reset();
+  scoped_feature_list_.InitAndEnableFeatureWithParameters(
+      features::kEnableFingerprintingProtectionFilter,
+      {{features::kRefreshHeuristicExceptionThresholdParam, "0"}});
+
+  // Navigate and reload multiple times each.
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 3);
+  NavigateBlockSubresourceAndReloadNTimes(kYoutubeUrl, 4);
+  NavigateBlockSubresourceAndReloadNTimes(kAppspotUrl, 5);
+
+  EXPECT_FALSE(HasBreakageException(GURL(kGoogleUrl), *test_support_.prefs()));
+  EXPECT_FALSE(HasBreakageException(GURL(kYoutubeUrl), *test_support_.prefs()));
+  EXPECT_FALSE(HasBreakageException(GURL(kAppspotUrl), *test_support_.prefs()));
+}
+
+TEST_F(FingerprintingProtectionRefreshCountExceptionTest,
+       NoBlockedSubresource_NoException_NonIncognito) {
+  InitializeWebContentsHelper(/*is_incognito=*/false);
+
+  // Navigate and reload multiple times each, but no blocked subresources.
+  NavigateBlockSubresourceAndReloadNTimes(kGoogleUrl, 3, false);
+  NavigateBlockSubresourceAndReloadNTimes(kYoutubeUrl, 4, false);
+  NavigateBlockSubresourceAndReloadNTimes(kAppspotUrl, 5, false);
+
+  EXPECT_FALSE(HasBreakageException(GURL(kGoogleUrl), *test_support_.prefs()));
+  EXPECT_FALSE(HasBreakageException(GURL(kYoutubeUrl), *test_support_.prefs()));
+  EXPECT_FALSE(HasBreakageException(GURL(kAppspotUrl), *test_support_.prefs()));
+}
+
 }  // namespace
 }  // namespace fingerprinting_protection_filter
diff --git a/components/fingerprinting_protection_filter/browser/test_support.cc b/components/fingerprinting_protection_filter/browser/test_support.cc
index 735df8432..278912b 100644
--- a/components/fingerprinting_protection_filter/browser/test_support.cc
+++ b/components/fingerprinting_protection_filter/browser/test_support.cc
@@ -7,6 +7,7 @@
 #include "components/content_settings/core/browser/cookie_settings.h"
 #include "components/content_settings/core/browser/host_content_settings_map.h"
 #include "components/content_settings/core/common/pref_names.h"
+#include "components/fingerprinting_protection_filter/common/prefs.h"
 #include "components/privacy_sandbox/tracking_protection_settings.h"
 
 namespace fingerprinting_protection_filter {
@@ -16,12 +17,14 @@
   privacy_sandbox::tracking_protection::RegisterProfilePrefs(
       prefs()->registry());
   content_settings::CookieSettings::RegisterProfilePrefs(prefs()->registry());
+  fingerprinting_protection_filter::prefs::RegisterProfilePrefs(
+      prefs()->registry());
 
   // Always set this pref to true as the ThrottleManager unit tests
   // are not testing this functionality.
-  prefs()->SetBoolean(prefs::kFingerprintingProtectionEnabled, true);
+  prefs()->SetBoolean(::prefs::kFingerprintingProtectionEnabled, true);
   prefs()->SetInteger(
-      prefs::kCookieControlsMode,
+      ::prefs::kCookieControlsMode,
       static_cast<int>(content_settings::CookieControlsMode::kBlockThirdParty));
 
   return base::MakeRefCounted<HostContentSettingsMap>(
diff --git a/components/fingerprinting_protection_filter/browser/throttle_manager.cc b/components/fingerprinting_protection_filter/browser/throttle_manager.cc
index ec6a227..91e7631 100644
--- a/components/fingerprinting_protection_filter/browser/throttle_manager.cc
+++ b/components/fingerprinting_protection_filter/browser/throttle_manager.cc
@@ -291,7 +291,8 @@
   // notification if a page transitioned from primary to non-primary and back
   // (BFCache).
   if (current_committed_load_has_notified_disallowed_load_) {
-    web_contents_helper_->NotifyOnBlockedSubresource();
+    web_contents_helper_->NotifyOnBlockedSubresource(
+        page_activation_state_.activation_level);
   }
 }
 
@@ -399,19 +400,14 @@
     return;
   }
 
-  if (!filter_handle ||
-      filter_handle->filter()->activation_state().activation_level ==
-          subresource_filter::mojom::ActivationLevel::kDryRun) {
-    return;
-  }
-
   current_committed_load_has_notified_disallowed_load_ = true;
 
   // Non-primary pages shouldn't affect UI. When the page becomes primary we'll
   // check |current_committed_load_has_notified_disallowed_load_| and try
   // again.
   if (page_->IsPrimary()) {
-    web_contents_helper_->NotifyOnBlockedSubresource();
+    web_contents_helper_->NotifyOnBlockedSubresource(
+        filter_handle->filter()->activation_state().activation_level);
 
 #if defined(NDEBUG)
     if (features::IsFingerprintingProtectionConsoleLoggingEnabled()) {
diff --git a/components/fingerprinting_protection_filter/common/fingerprinting_protection_filter_features.cc b/components/fingerprinting_protection_filter/common/fingerprinting_protection_filter_features.cc
index 7d827e8c..9d4787c 100644
--- a/components/fingerprinting_protection_filter/common/fingerprinting_protection_filter_features.cc
+++ b/components/fingerprinting_protection_filter/common/fingerprinting_protection_filter_features.cc
@@ -42,6 +42,19 @@
          kEnableConsoleLoggingNonIncognito.Get();
 }
 
+bool IsFingerprintingProtectionRefreshHeuristicExceptionEnabled(
+    bool is_incognito) {
+  return GetFingerprintingProtectionRefreshHeuristicThreshold(is_incognito) > 0;
+}
+
+int GetFingerprintingProtectionRefreshHeuristicThreshold(bool is_incognito) {
+  if (is_incognito) {
+    return kRefreshHeuristicExceptionThresholdIncognito.Get();
+  }
+
+  return kRefreshHeuristicExceptionThresholdNonIncognito.Get();
+}
+
 constexpr base::FeatureParam<subresource_filter::mojom::ActivationLevel>::Option
     kActivationLevelOptions[] = {
         {subresource_filter::mojom::ActivationLevel::kDisabled, "disabled"},
@@ -64,6 +77,14 @@
     &kEnableFingerprintingProtectionFilterInIncognito,
     kEnableConsoleLoggingParam, false};
 
+const base::FeatureParam<int> kRefreshHeuristicExceptionThresholdNonIncognito{
+    &kEnableFingerprintingProtectionFilter,
+    kRefreshHeuristicExceptionThresholdParam, 0};
+
+const base::FeatureParam<int> kRefreshHeuristicExceptionThresholdIncognito{
+    &kEnableFingerprintingProtectionFilterInIncognito,
+    kRefreshHeuristicExceptionThresholdParam, 0};
+
 const base::FeatureParam<double> kPerformanceMeasurementRateNonIncognito{
     &kEnableFingerprintingProtectionFilter, kPerformanceMeasurementRateParam,
     0.0};
diff --git a/components/fingerprinting_protection_filter/common/fingerprinting_protection_filter_features.h b/components/fingerprinting_protection_filter/common/fingerprinting_protection_filter_features.h
index 93451ad..8bf086f 100644
--- a/components/fingerprinting_protection_filter/common/fingerprinting_protection_filter_features.h
+++ b/components/fingerprinting_protection_filter/common/fingerprinting_protection_filter_features.h
@@ -17,6 +17,8 @@
 
 const char kPerformanceMeasurementRateParam[] = "performance_measurement_rate";
 const char kEnableConsoleLoggingParam[] = "enable_console_logging";
+const char kRefreshHeuristicExceptionThresholdParam[] =
+    "refresh_heuristic_exception_threshold";
 
 // The primary toggle to enable/disable the Fingerprinting Protection Filter.
 COMPONENT_EXPORT(FINGERPRINTING_PROTECTION_FILTER_FEATURES)
@@ -41,6 +43,16 @@
 COMPONENT_EXPORT(FINGERPRINTING_PROTECTION_FILTER_FEATURES)
 bool IsFingerprintingProtectionConsoleLoggingEnabled();
 
+// Returns true if exceptions should be added/respected for sites based on the
+// refresh heuristic exception.
+COMPONENT_EXPORT(FINGERPRINTING_PROTECTION_FILTER_FEATURES)
+bool IsFingerprintingProtectionRefreshHeuristicExceptionEnabled(
+    bool is_incognito);
+
+// Returns the value of the refresh heuristic exception threshold.
+COMPONENT_EXPORT(FINGERPRINTING_PROTECTION_FILTER_FEATURES)
+int GetFingerprintingProtectionRefreshHeuristicThreshold(bool is_incognito);
+
 COMPONENT_EXPORT(FINGERPRINTING_PROTECTION_FILTER_FEATURES)
 extern const base::FeatureParam<subresource_filter::mojom::ActivationLevel>
     kActivationLevel;
@@ -57,6 +69,23 @@
 COMPONENT_EXPORT(FINGERPRINTING_PROTECTION_FILTER_FEATURES)
 extern const base::FeatureParam<bool> kEnableConsoleLoggingIncognito;
 
+// Serves as both a toggle for the refresh heuristic exception and as the
+// threshold for it. If set to 0, no exceptions are saved or applied for
+// the refresh heuristic. Otherwise, this is the number of refreshes for the
+// same eTLD+1 in a single WebContents before an exception should be added. See
+// FingerprintingProtectionWebContentsHelper for usage.
+//
+// Context: We want to improve user experience on broken sites by heuristically
+// detecting breakage and adding an exception in that case.
+//
+// Default value 0 (i.e. no exceptions added).
+COMPONENT_EXPORT(FINGERPRINTING_PROTECTION_FILTER_FEATURES)
+extern const base::FeatureParam<int>
+    kRefreshHeuristicExceptionThresholdNonIncognito;
+COMPONENT_EXPORT(FINGERPRINTING_PROTECTION_FILTER_FEATURES)
+extern const base::FeatureParam<int>
+    kRefreshHeuristicExceptionThresholdIncognito;
+
 // A number in the range [0, 1], indicating the fraction of page loads that
 // should have extended performance measurements enabled for timing-based
 // histograms in non-incognito mode.
diff --git a/components/metrics/BUILD.gn b/components/metrics/BUILD.gn
index 03321f0..29c88b0d 100644
--- a/components/metrics/BUILD.gn
+++ b/components/metrics/BUILD.gn
@@ -249,7 +249,7 @@
 
     deps = [
       ":library_support",
-      ":url_constants",
+      ":server_urls_grd",
       "//base",
       "//base:base_static",
       "//base:i18n",
@@ -705,14 +705,14 @@
   }
 }
 
-grit("url_constants") {
+grit("server_urls_grd") {
   if (is_chrome_branded) {
-    source = "internal/url_constants.grd"
+    source = "internal/server_urls.grd"
   } else {
-    source = "url_constants.grd"
+    source = "server_urls.grd"
   }
   outputs = [
-    "grit/metrics_url_constants.h",
-    "metrics_url_constants.pak",
+    "grit/metrics_server_urls.h",
+    "metrics_server_urls.pak",
   ]
 }
diff --git a/components/metrics/internal b/components/metrics/internal
index 8e91fd7..b142ab0 160000
--- a/components/metrics/internal
+++ b/components/metrics/internal
@@ -1 +1 @@
-Subproject commit 8e91fd73c988a39117cb6cca252af1d8bb08129d
+Subproject commit b142ab0612763d64d3ec3b79cd71c6dc9bcbe20b
diff --git a/components/metrics/server_urls.cc b/components/metrics/server_urls.cc
index 077496c0..efc1409 100644
--- a/components/metrics/server_urls.cc
+++ b/components/metrics/server_urls.cc
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Note: The actual URLs are stored in an internal version of url_constants.grd
+// Note: The actual URLs are stored in an internal version of server_urls.grd
 // to prevent Chromium forks from accidentally sending metrics to Google
 // servers. The URLs can be found here:
-// https://chrome-internal.googlesource.com/chrome/components/metrics/internal/+/main/url_constants.grd
+// https://chrome-internal.googlesource.com/chrome/components/metrics/internal/+/main/server_urls.grd
 // Further, the reason why the URLs are provided through GRIT is for LGPL
 // compliance reasons.
 
@@ -13,7 +13,7 @@
 
 #include <string>
 
-#include "components/metrics/grit/metrics_url_constants.h"
+#include "components/metrics/grit/metrics_server_urls.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "url/gurl.h"
 
@@ -33,37 +33,31 @@
 
 }  // namespace
 
-// TODO(crbug.com/358224254): Remove mime types from GRIT.
 const char kMetricsMimeType[] = "application/vnd.chrome.uma";
 const char kUkmMimeType[] = "application/vnd.chrome.ukm";
 
 GURL GetMetricsServerUrl() {
-  // TODO(crbug.com/358224254): Remove "NEW" from the GRIT name.
-  static const GURL url = GetUrl(IDS_NEW_METRICS_SERVER_URL);
+  static const GURL url = GetUrl(IDS_METRICS_SERVER_URL);
   return url;
 }
 
 GURL GetInsecureMetricsServerUrl() {
-  // TODO(crbug.com/358224254): Remove "NEW" from the GRIT name.
-  static const GURL url = GetUrl(IDS_NEW_METRICS_SERVER_URL_INSECURE);
+  static const GURL url = GetUrl(IDS_INSECURE_METRICS_SERVER_URL);
   return url;
 }
 
 GURL GetCastMetricsServerUrl() {
-  // TODO(crbug.com/358224254): Change "OLD" to "CAST" in the GRIT name.
-  static const GURL url = GetUrl(IDS_OLD_METRICS_SERVER_URL);
+  static const GURL url = GetUrl(IDS_CAST_METRICS_SERVER_URL);
   return url;
 }
 
 GURL GetUkmServerUrl() {
-  // TODO(crbug.com/358224254): Remove "DEFAULT" from the GRIT name.
-  static const GURL url = GetUrl(IDS_DEFAULT_UKM_SERVER_URL);
+  static const GURL url = GetUrl(IDS_UKM_SERVER_URL);
   return url;
 }
 
 GURL GetDwaServerUrl() {
-  // TODO(crbug.com/358224254): Remove "DEFAULT" from the GRIT name.
-  static const GURL url = GetUrl(IDS_DEFAULT_DWA_SERVER_URL);
+  static const GURL url = GetUrl(IDS_DWA_SERVER_URL);
   return url;
 }
 
diff --git a/components/metrics/server_urls.grd b/components/metrics/server_urls.grd
new file mode 100644
index 0000000..21c7785a
--- /dev/null
+++ b/components/metrics/server_urls.grd
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+The URL strings in this file are intentionally empty to prevent Chromium forks from
+accidentally sending metrics to Google servers. The values for Chrome-branded builds can
+be found here:
+https://chrome-internal.googlesource.com/chrome/components/metrics/internal/+/main/server_urls.grd
+
+Note that for LGPL compliance reasons, these URL strings are stored in resource files
+rather than the code.
+-->
+
+<grit latest_public_release="0" current_release="1" output_all_resource_defines="false">
+  <outputs>
+    <output filename="grit/metrics_server_urls.h" type="rc_header">
+      <emit emit_type="prepend"></emit>
+    </output>
+    <output filename="metrics_server_urls.pak" type="data_package" />
+  </outputs>
+  <release seq="1">
+    <messages fallback_to_english="true">
+      <!-- Ideally, these would be empty strings, but GRIT skips empty messages.
+      So instead, use a dash as a placeholder, which we manually interpret as
+      an empty string in the cpp code. -->
+      <message name="IDS_METRICS_SERVER_URL" translateable="false">
+          -
+      </message>
+      <message name="IDS_INSECURE_METRICS_SERVER_URL" translateable="false">
+          -
+      </message>
+      <message name="IDS_CAST_METRICS_SERVER_URL" translateable="false">
+          -
+      </message>
+      <message name="IDS_UKM_SERVER_URL" translateable="false">
+          -
+      </message>
+      <message name="IDS_DWA_SERVER_URL" translateable="false">
+          -
+      </message>
+    </messages>
+  </release>
+</grit>
diff --git a/components/metrics/url_constants.grd b/components/metrics/url_constants.grd
deleted file mode 100644
index 1e5fa170..0000000
--- a/components/metrics/url_constants.grd
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-The URL strings in this file are intentionally empty to prevent Chromium forks from
-accidentally sending metrics to Google servers. The values for Chrome-branded builds can
-be found here:
-https://chrome-internal.googlesource.com/chrome/components/metrics/internal/+/main/url_constants.grd
-
-Note that for LGPL compliance reasons, these URL strings are stored in resource files
-rather than the code.
--->
-
-<grit latest_public_release="0" current_release="1" output_all_resource_defines="false">
-  <outputs>
-    <output filename="grit/metrics_url_constants.h" type="rc_header">
-      <emit emit_type='prepend'></emit>
-    </output>
-    <output filename="metrics_url_constants.pak" type="data_package" />
-  </outputs>
-  <release seq="1">
-    <messages fallback_to_english="true">
-      <!-- Ideally, these would be empty strings, but GRIT skips empty messages.
-      So instead, use a dash as a placeholder, which we manually interpret as
-      an empty string in the cpp code. -->
-      <message name="IDS_NEW_METRICS_SERVER_URL" translateable="false">
-          -
-      </message>
-      <message name="IDS_NEW_METRICS_SERVER_URL_INSECURE" translateable="false">
-          -
-      </message>
-      <message name="IDS_OLD_METRICS_SERVER_URL" translateable="false">
-          -
-      </message>
-      <message name="IDS_DEFAULT_METRICS_MIME_TYPE" translateable="false">
-          -
-      </message>
-      <message name="IDS_DEFAULT_UKM_SERVER_URL" translateable="false">
-          -
-      </message>
-      <message name="IDS_UKM_MIME_TYPE" translateable="false">
-          -
-      </message>
-      <message name="IDS_DEFAULT_DWA_SERVER_URL" translateable="false">
-          -
-      </message>
-    </messages>
-  </release>
-</grit>
diff --git a/components/neterror/resources/BUILD.gn b/components/neterror/resources/BUILD.gn
index ab077be4..cf80b04 100644
--- a/components/neterror/resources/BUILD.gn
+++ b/components/neterror/resources/BUILD.gn
@@ -11,9 +11,9 @@
   "neterror.ts",
   "dino_game/background_el.js",
   "dino_game/cloud.js",
-  "dino_game/constants.js",
+  "dino_game/constants.ts",
   "dino_game/distance_meter.js",
-  "dino_game/generated_sound_fx.js",
+  "dino_game/generated_sound_fx.ts",
   "dino_game/game_over_panel.js",
   "dino_game/horizon_line.js",
   "dino_game/horizon.js",
diff --git a/components/neterror/resources/dino_game/constants.js b/components/neterror/resources/dino_game/constants.ts
similarity index 85%
rename from components/neterror/resources/dino_game/constants.js
rename to components/neterror/resources/dino_game/constants.ts
index 67f24bb..576b102 100644
--- a/components/neterror/resources/dino_game/constants.js
+++ b/components/neterror/resources/dino_game/constants.ts
@@ -9,7 +9,7 @@
 
 export const IS_MOBILE = /Android/.test(window.navigator.userAgent) || IS_IOS;
 
-export const IS_RTL = document.querySelector('html').dir === 'rtl';
+export const IS_RTL = document.documentElement.dir === 'rtl';
 
 
 /**
diff --git a/components/neterror/resources/dino_game/generated_sound_fx.js b/components/neterror/resources/dino_game/generated_sound_fx.ts
similarity index 79%
rename from components/neterror/resources/dino_game/generated_sound_fx.js
rename to components/neterror/resources/dino_game/generated_sound_fx.ts
index aa33bb80..1b75c867 100644
--- a/components/neterror/resources/dino_game/generated_sound_fx.js
+++ b/components/neterror/resources/dino_game/generated_sound_fx.ts
@@ -2,26 +2,26 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+import {assert} from 'chrome://resources/js/assert.js';
+
 import {IS_IOS} from './constants.js';
 
 /**
  * Generated sound FX class for audio cues.
  */
 export class GeneratedSoundFx {
-  constructor() {
-    this.audioCues = false;
-    this.context = null;
-    this.panner = null;
-  }
+  private audioCues: boolean = false;
+  private context: AudioContext|null = null;
+  private panner: StereoPannerNode|null = null;
+  private bgSoundIntervalId: number|null = null;
 
   init() {
     this.audioCues = true;
     if (!this.context) {
-      // iOS only supports the webkit version.
-      this.context = window.webkitAudioContext ? new webkitAudioContext() :
-                                                 new AudioContext();
+      this.context = new AudioContext();
       if (IS_IOS) {
         this.context.onstatechange = () => {
+          assert(this.context);
           if (this.context.state !== 'running') {
             this.context.resume();
           }
@@ -40,13 +40,12 @@
 
   /**
    * Play oscillators at certain frequency and for a certain time.
-   * @param {number} frequency
-   * @param {number} startTime
-   * @param {number} duration
-   * @param {?number=} opt_vol
-   * @param {number=} opt_pan
    */
-  playNote(frequency, startTime, duration, opt_vol, opt_pan) {
+  playNote(
+      frequency: number, startTime: number, duration: number,
+      vol: number = 0.01, pan: number = 0) {
+    assert(this.context);
+
     const osc1 = this.context.createOscillator();
     const osc2 = this.context.createOscillator();
     const volume = this.context.createGain();
@@ -58,7 +57,7 @@
 
     // Set up node routing
     if (this.panner) {
-      this.panner.pan.value = opt_pan || 0;
+      this.panner.pan.value = pan;
       osc1.connect(volume).connect(this.panner);
       osc2.connect(volume).connect(this.panner);
       this.panner.connect(this.context.destination);
@@ -73,7 +72,7 @@
     osc2.frequency.value = frequency - 2;
 
     // Fade out
-    volume.gain.setValueAtTime(opt_vol || 0.01, startTime + duration - 0.05);
+    volume.gain.setValueAtTime(vol, startTime + duration - 0.05);
     volume.gain.linearRampToValueAtTime(0.00001, startTime + duration);
 
     // Start oscillators
@@ -85,6 +84,8 @@
   }
 
   background() {
+    assert(this.context);
+
     if (this.audioCues) {
       const now = this.context.currentTime;
       this.playNote(493.883, now, 0.116);
@@ -95,15 +96,17 @@
 
   loopFootSteps() {
     if (this.audioCues && !this.bgSoundIntervalId) {
-      this.bgSoundIntervalId = setInterval(function() {
+      this.bgSoundIntervalId = setInterval(() => {
+        assert(this.context);
         this.playNote(73.42, this.context.currentTime, 0.05, 0.16);
         this.playNote(69.30, this.context.currentTime + 0.116, 0.116, 0.16);
-      }.bind(this), 280);
+      }, 280);
     }
   }
 
   cancelFootSteps() {
     if (this.audioCues && this.bgSoundIntervalId) {
+      assert(this.context);
       clearInterval(this.bgSoundIntervalId);
       this.bgSoundIntervalId = null;
       this.playNote(103.83, this.context.currentTime, 0.232, 0.02);
@@ -113,6 +116,7 @@
 
   collect() {
     if (this.audioCues) {
+      assert(this.context);
       this.cancelFootSteps();
       const now = this.context.currentTime;
       this.playNote(830.61, now, 0.116);
@@ -122,6 +126,7 @@
 
   jump() {
     if (this.audioCues) {
+      assert(this.context);
       const now = this.context.currentTime;
       this.playNote(659.25, now, 0.116, 0.3, -0.6);
       this.playNote(880, now + 0.116, 0.232, 0.3, -0.6);
diff --git a/components/optimization_guide/content/browser/page_content_proto_util.cc b/components/optimization_guide/content/browser/page_content_proto_util.cc
index 81e8090a..7037a39d 100644
--- a/components/optimization_guide/content/browser/page_content_proto_util.cc
+++ b/components/optimization_guide/content/browser/page_content_proto_util.cc
@@ -32,12 +32,20 @@
     case blink::mojom::AIPageContentAttributeType::kForm:
       return optimization_guide::proto::CONTENT_ATTRIBUTE_FORM;
     case blink::mojom::AIPageContentAttributeType::kFigure:
-      // TODO(khushalsagar): Add this type to the proto.
+    case blink::mojom::AIPageContentAttributeType::kHeader:
+    case blink::mojom::AIPageContentAttributeType::kNav:
+    case blink::mojom::AIPageContentAttributeType::kSearch:
+    case blink::mojom::AIPageContentAttributeType::kMain:
+    case blink::mojom::AIPageContentAttributeType::kArticle:
+    case blink::mojom::AIPageContentAttributeType::kSection:
+    case blink::mojom::AIPageContentAttributeType::kAside:
+    case blink::mojom::AIPageContentAttributeType::kFooter:
+      // TODO(crbug.com/382083796): Add this type to the proto.
       return optimization_guide::proto::CONTENT_ATTRIBUTE_UNKNOWN;
     case blink::mojom::AIPageContentAttributeType::kTable:
       return optimization_guide::proto::CONTENT_ATTRIBUTE_TABLE;
     case blink::mojom::AIPageContentAttributeType::kTableCell:
-      // TODO(abigailbklein): Add this type to the proto.
+      // TODO(crbug.com/382083796): Add this type to the proto.
       return optimization_guide::proto::CONTENT_ATTRIBUTE_UNKNOWN;
   }
 
diff --git a/components/optimization_guide/core/model_execution/session_impl.cc b/components/optimization_guide/core/model_execution/session_impl.cc
index 0879d67..0b92aaf 100644
--- a/components/optimization_guide/core/model_execution/session_impl.cc
+++ b/components/optimization_guide/core/model_execution/session_impl.cc
@@ -49,6 +49,24 @@
       has_repeats);
 }
 
+void LogResponseCompleteTime(ModelBasedCapabilityKey feature,
+                             base::TimeDelta time_to_completion) {
+  base::UmaHistogramMediumTimes(
+      base::StrCat(
+          {"OptimizationGuide.ModelExecution.OnDeviceResponseCompleteTime.",
+           GetStringNameForModelExecutionFeature(feature)}),
+      time_to_completion);
+}
+
+void LogResponseCompleteTokens(ModelBasedCapabilityKey feature,
+                               uint32_t tokens) {
+  base::UmaHistogramCounts10000(
+      base::StrCat(
+          {"OptimizationGuide.ModelExecution.OnDeviceResponseCompleteTokens.",
+           GetStringNameForModelExecutionFeature(feature)}),
+      tokens);
+}
+
 std::string GenerateExecutionId() {
   return "on-device:" + base::Uuid::GenerateRandomV4().AsLowercaseString();
 }
@@ -527,16 +545,13 @@
   proto::OnDeviceModelServiceResponse* logged_response =
       on_device_state_->MutableLoggedResponse();
   LogResponseHasRepeats(feature_, logged_response->has_repeats());
-
+  LogResponseCompleteTokens(feature_, on_device_state_->num_response_tokens);
   base::TimeDelta time_to_completion =
       base::TimeTicks::Now() - on_device_state_->start;
-  base::UmaHistogramMediumTimes(
-      base::StrCat(
-          {"OptimizationGuide.ModelExecution.OnDeviceResponseCompleteTime.",
-           GetStringNameForModelExecutionFeature(feature_)}),
-      time_to_completion);
+  LogResponseCompleteTime(feature_, time_to_completion);
   logged_response->set_time_to_completion_millis(
       time_to_completion.InMilliseconds());
+
   on_device_state_->opts.model_client->OnResponseCompleted();
 
   on_device_state_->model_response_complete = true;
diff --git a/components/optimization_guide/internal b/components/optimization_guide/internal
index fe7e9f2..5953b2f 160000
--- a/components/optimization_guide/internal
+++ b/components/optimization_guide/internal
@@ -1 +1 @@
-Subproject commit fe7e9f241e165bb9fada55d320b6646e6ffa4a5f
+Subproject commit 5953b2f79e0d2274f7f053f9d5ce8956a09ccfd5
diff --git a/components/os_crypt/sync/keychain_password_mac.mm b/components/os_crypt/sync/keychain_password_mac.mm
index e7a65e9..d8768244 100644
--- a/components/os_crypt/sync/keychain_password_mac.mm
+++ b/components/os_crypt/sync/keychain_password_mac.mm
@@ -9,6 +9,7 @@
 #include "base/apple/osstatus_logging.h"
 #include "base/apple/scoped_cftyperef.h"
 #include "base/base64.h"
+#include "base/metrics/histogram_functions.h"
 #include "base/no_destructor.h"
 #include "base/rand_util.h"
 #include "build/branding_buildflags.h"
@@ -100,5 +101,6 @@
   }
 
   OSSTATUS_LOG(ERROR, error) << "Keychain lookup failed";
+  base::UmaHistogramSparse("OSCrypt.Mac.FindGenericPasswordError", error);
   return std::string();
 }
diff --git a/components/policy/core/common/policy_logger.cc b/components/policy/core/common/policy_logger.cc
index 15d24139..dc3d14e 100644
--- a/components/policy/core/common/policy_logger.cc
+++ b/components/policy/core/common/policy_logger.cc
@@ -138,6 +138,9 @@
   if (log_type_ == LogHelper::LogType::kDLog) {
     return;
   }
+#else
+  // Suppress a -Wunused-private-field warning.
+  (void)log_type_;
 #endif
 
   // Check for verbose logging.
diff --git a/components/privacy_sandbox/DIR_METADATA b/components/privacy_sandbox/DIR_METADATA
index 46191cc..cb1e73c9 100644
--- a/components/privacy_sandbox/DIR_METADATA
+++ b/components/privacy_sandbox/DIR_METADATA
@@ -1,7 +1,7 @@
 monorail: {
-  component: "UI>Settings>Privacy"
+  component: "UI>Browser>Privacy Sandbox"
 }
-team_email: "chrome-privacy-controls@google.com"
+team_email: "koilos@google.com"
 buganizer_public: {
-  component_id: 1457044
+  component_id: 1697287
 }
diff --git a/components/privacy_sandbox_chrome_strings_grdp/DIR_METADATA b/components/privacy_sandbox_chrome_strings_grdp/DIR_METADATA
index 46191cc..cb1e73c9 100644
--- a/components/privacy_sandbox_chrome_strings_grdp/DIR_METADATA
+++ b/components/privacy_sandbox_chrome_strings_grdp/DIR_METADATA
@@ -1,7 +1,7 @@
 monorail: {
-  component: "UI>Settings>Privacy"
+  component: "UI>Browser>Privacy Sandbox"
 }
-team_email: "chrome-privacy-controls@google.com"
+team_email: "koilos@google.com"
 buganizer_public: {
-  component_id: 1457044
+  component_id: 1697287
 }
diff --git a/components/safe_browsing/content/browser/BUILD.gn b/components/safe_browsing/content/browser/BUILD.gn
index a5636fe..484845c 100644
--- a/components/safe_browsing/content/browser/BUILD.gn
+++ b/components/safe_browsing/content/browser/BUILD.gn
@@ -286,6 +286,7 @@
     ":client_side_detection_images_cache",
     ":client_side_detection_service",
     "//base:base",
+    "//components/optimization_guide/proto:optimization_guide_proto",
     "//components/permissions:permissions",
     "//components/prefs",
     "//components/safe_browsing:buildflags",
diff --git a/components/safe_browsing/content/browser/client_side_detection_host.cc b/components/safe_browsing/content/browser/client_side_detection_host.cc
index ed5ff9b4..6017c47 100644
--- a/components/safe_browsing/content/browser/client_side_detection_host.cc
+++ b/components/safe_browsing/content/browser/client_side_detection_host.cc
@@ -888,6 +888,11 @@
   }
 }
 
+// To keep the flow consistent, we want to append additional information to the
+// ClientPhishingRequest message based on feature availability in the following
+// order: image embedding, on-device model output, then token fetch. If one
+// feature is not available, we will move on to the next in the order until we
+// ultimately send the request.
 void ClientSideDetectionHost::MaybeSendClientPhishingRequest(
     std::unique_ptr<ClientPhishingRequest> verdict,
     std::optional<bool> did_match_high_confidence_allowlist) {
@@ -1035,19 +1040,12 @@
                          weak_factory_.GetWeakPtr(), std::move(verdict),
                          did_match_high_confidence_allowlist));
     }
-  } else {
-    if (CanGetAccessToken()) {
-      token_fetcher_->Start(
-          base::BindOnce(&ClientSideDetectionHost::OnGotAccessToken,
-                         weak_factory_.GetWeakPtr(), std::move(verdict),
-                         did_match_high_confidence_allowlist));
-      return;
-    }
 
-    std::string empty_access_token;
-    SendRequest(std::move(verdict), empty_access_token,
-                did_match_high_confidence_allowlist);
+    return;
   }
+
+  MaybeInquireOnDeviceForScamDetection(std::move(verdict),
+                                       did_match_high_confidence_allowlist);
 }
 
 void ClientSideDetectionHost::PhishingImageEmbeddingDone(
@@ -1070,6 +1068,51 @@
     }
   }
 
+  MaybeInquireOnDeviceForScamDetection(std::move(verdict),
+                                       did_match_high_confidence_allowlist);
+}
+
+void ClientSideDetectionHost::MaybeInquireOnDeviceForScamDetection(
+    std::unique_ptr<ClientPhishingRequest> verdict,
+    std::optional<bool> did_match_high_confidence_allowlist) {
+  if (IsEnhancedProtectionEnabled(*delegate_->GetPrefs()) &&
+      base::FeatureList::IsEnabled(
+          kClientSideDetectionBrandAndIntentForScamDetection) &&
+      verdict->client_side_detection_type() ==
+          ClientSideDetectionType::KEYBOARD_LOCK_REQUESTED) {
+    delegate_->GetInnerText(
+        base::BindOnce(&ClientSideDetectionHost::OnInnerTextComplete,
+                       weak_factory_.GetWeakPtr(), std::move(verdict),
+                       did_match_high_confidence_allowlist));
+    return;
+  }
+
+  MaybeGetAccessToken(std::move(verdict), did_match_high_confidence_allowlist);
+}
+
+void ClientSideDetectionHost::OnInnerTextComplete(
+    std::unique_ptr<ClientPhishingRequest> verdict,
+    std::optional<bool> did_match_high_confidence_allowlist,
+    std::string inner_text) {
+  csd_service_->InquireOnDeviceModel(
+      verdict.get(), inner_text,
+      base::BindOnce(&ClientSideDetectionHost::OnInquireOnDeviceModelDone,
+                     weak_factory_.GetWeakPtr(), std::move(verdict),
+                     did_match_high_confidence_allowlist));
+}
+
+void ClientSideDetectionHost::OnInquireOnDeviceModelDone(
+    std::unique_ptr<ClientPhishingRequest> verdict,
+    std::optional<bool> did_match_high_confidence_allowlist,
+    std::optional<optimization_guide::proto::ScamDetectionResponse> response) {
+  // Pass the response to the ping proto.
+
+  MaybeGetAccessToken(std::move(verdict), did_match_high_confidence_allowlist);
+}
+
+void ClientSideDetectionHost::MaybeGetAccessToken(
+    std::unique_ptr<ClientPhishingRequest> verdict,
+    std::optional<bool> did_match_high_confidence_allowlist) {
   if (CanGetAccessToken()) {
     token_fetcher_->Start(base::BindOnce(
         &ClientSideDetectionHost::OnGotAccessToken, weak_factory_.GetWeakPtr(),
diff --git a/components/safe_browsing/content/browser/client_side_detection_host.h b/components/safe_browsing/content/browser/client_side_detection_host.h
index 57555188..7ba9e598 100644
--- a/components/safe_browsing/content/browser/client_side_detection_host.h
+++ b/components/safe_browsing/content/browser/client_side_detection_host.h
@@ -16,6 +16,7 @@
 #include "base/memory/raw_ptr.h"
 #include "base/memory/ref_counted.h"
 #include "base/time/time.h"
+#include "components/optimization_guide/proto/features/scam_detection.pb.h"
 #include "components/permissions/permission_request_manager.h"
 #include "components/safe_browsing/content/browser/async_check_tracker.h"
 #include "components/safe_browsing/content/browser/base_ui_manager.h"
@@ -42,6 +43,8 @@
 class ClientPhishingRequest;
 class ClientSideDetectionService;
 
+using HostInnerTextCallback = base::OnceCallback<void(std::string)>;
+
 // This class is used to receive the IPC from the renderer which
 // notifies the browser that a URL was classified as phishing.  This
 // class relays this information to the client-side detection service
@@ -85,6 +88,11 @@
     virtual VerdictCacheManager* GetCacheManager() = 0;
     // Returns the management status for current profile.
     virtual ChromeUserPopulation GetUserPopulation() = 0;
+    // Returns the inner text from the tab, which is combined inner-text of all
+    // suitable iframes . The callback is used to retrieve a string back from
+    // the delegate when the inner text function is completed. This string is
+    // then used to provide the on-device model the information about the page.
+    virtual void GetInnerText(HostInnerTextCallback callback) = 0;
   };
 
   // The caller keeps ownership of the tab object and is responsible for
@@ -143,6 +151,7 @@
  private:
   friend class ClientSideDetectionHostTestBase;
   friend class ClientSideDetectionHostNotificationTest;
+  friend class ClientSideDetectionHostScamDetectionTest;
   class ShouldClassifyUrlRequest;
   friend class ShouldClassifyUrlRequest;
   FRIEND_TEST_ALL_PREFIXES(ClientSideDetectionHostPrerenderBrowserTest,
@@ -183,6 +192,8 @@
   FRIEND_TEST_ALL_PREFIXES(
       ClientSideDetectionRTLookupResponseForceRequestTest,
       AsyncCheckTrackerTriggersClassificationRequestOnAllowlistMatch);
+  FRIEND_TEST_ALL_PREFIXES(ClientSideDetectionHostScamDetectionTest,
+                           KeyboardLockRequestTriggersOnDeviceLLM);
 
   // Helper function to create preclassification check once requirements are
   // met.
@@ -222,6 +233,18 @@
       mojom::PhishingImageEmbeddingResult result,
       std::optional<mojo_base::ProtoWrapper> image_feature_embedding);
 
+  // |verdict| is an encoded ClientPhishingRequest protocol message, which will
+  // contain on device model output if the execution is successful.
+  void MaybeInquireOnDeviceForScamDetection(
+      std::unique_ptr<ClientPhishingRequest> verdict,
+      std::optional<bool> did_match_high_confidence_allowlist);
+
+  // |verdict| is an encoded ClientPhishingRequest protocol message. This is the
+  // last step before sending the ping to the server.
+  void MaybeGetAccessToken(
+      std::unique_ptr<ClientPhishingRequest> verdict,
+      std::optional<bool> did_match_high_confidence_allowlist);
+
   // Callback that is called when the server ping back is
   // done. Display an interstitial if |is_phishing| is true.
   // Otherwise, we do nothing. Called in UI thread. |is_from_cache| indicates
@@ -287,6 +310,21 @@
   // Check if sample ping can be sent to Safe Browsing.
   bool CanSendSamplePing();
 
+  // Callback function when GetInnerText is completed in the delegate. This
+  // inner text is fetched as part of querying the on-device model through the
+  // CSD service class.
+  void OnInnerTextComplete(
+      std::unique_ptr<ClientPhishingRequest> verdict,
+      std::optional<bool> did_match_high_confidence_allowlist,
+      std::string inner_text);
+
+  // Callback function when InquireOnDeviceModel from the CSD service is
+  // completed.
+  void OnInquireOnDeviceModelDone(
+      std::unique_ptr<ClientPhishingRequest> verdict,
+      std::optional<bool> did_match_high_confidence_allowlist,
+      std::optional<optimization_guide::proto::ScamDetectionResponse> response);
+
   // This pointer may be nullptr if client-side phishing detection is
   // disabled.
   base::WeakPtr<ClientSideDetectionService> csd_service_;
diff --git a/components/safe_browsing/content/browser/client_side_detection_service.cc b/components/safe_browsing/content/browser/client_side_detection_service.cc
index 3159fc8..fc698c9 100644
--- a/components/safe_browsing/content/browser/client_side_detection_service.cc
+++ b/components/safe_browsing/content/browser/client_side_detection_service.cc
@@ -26,6 +26,8 @@
 #include "base/time/time.h"
 #include "base/values.h"
 #include "components/optimization_guide/core/optimization_guide_model_provider.h"
+#include "components/optimization_guide/core/optimization_guide_util.h"
+#include "components/optimization_guide/proto/common_types.pb.h"
 #include "components/optimization_guide/proto/models.pb.h"
 #include "components/prefs/pref_service.h"
 #include "components/safe_browsing/content/browser/client_side_phishing_model.h"
@@ -76,6 +78,21 @@
   GURL phishing_url;
 };
 
+void LogOnDeviceModelExecutionSuccessAndTime(
+    bool success,
+    base::TimeTicks session_execution_start_time) {
+  base::UmaHistogramBoolean("SBClientPhishing.OnDeviceModelExecutionSuccess",
+                            success);
+  base::UmaHistogramMediumTimes(
+      "SBClientPhishing.OnDeviceModelExecutionDuration",
+      base::TimeTicks::Now() - session_execution_start_time);
+}
+
+void LogOnDeviceModelExecutionParse(bool success) {
+  base::UmaHistogramBoolean(
+      "SBClientPhishing.OnDeviceModelResponseParseSuccess", success);
+}
+
 ClientSideDetectionService::CacheState::CacheState(bool phish, base::Time time)
     : is_phishing(phish), timestamp(time) {}
 
@@ -127,6 +144,9 @@
   enabled_ = false;
   client_side_phishing_model_.reset();
   on_device_model_available_ = false;
+  if (session_) {
+    session_.reset();
+  }
 }
 
 void ClientSideDetectionService::OnPrefsUpdated() {
@@ -776,6 +796,87 @@
   return client_side_phishing_model_->RegisterCallback(callback);
 }
 
+void ClientSideDetectionService::InquireOnDeviceModel(
+    ClientPhishingRequest* verdict,
+    std::string rendered_texts,
+    base::OnceCallback<
+        void(std::optional<optimization_guide::proto::ScamDetectionResponse>)>
+        callback) {
+  if (!IsOnDeviceModelAvailable()) {
+    std::move(callback).Run(std::nullopt);
+    return;
+  }
+
+  // Close off the previous session if session's model execution from a previous
+  // call into InquireOnDeviceModel is still happening.
+  if (session_) {
+    session_.reset();
+  }
+
+  base::TimeTicks session_creation_start_time = base::TimeTicks::Now();
+
+  session_ = delegate_->GetModelExecutorSession();
+
+  if (!session_) {
+    std::move(callback).Run(std::nullopt);
+    return;
+  }
+
+  base::UmaHistogramMediumTimes(
+      "SBClientPhishing.OnDeviceModelSessionCreationTime",
+      base::TimeTicks::Now() - session_creation_start_time);
+
+  ScamDetectionRequest request;
+  request.set_rendered_text(rendered_texts);
+
+  inquire_on_device_model_callback_ = std::move(callback);
+  session_execution_start_time_ = base::TimeTicks::Now();
+  session_->ExecuteModel(
+      *std::make_unique<ScamDetectionRequest>(request),
+      base::BindRepeating(&ClientSideDetectionService::ModelExecutionCallback,
+                          weak_factory_.GetWeakPtr(), verdict));
+}
+
+void ClientSideDetectionService::ModelExecutionCallback(
+    ClientPhishingRequest* verdict,
+    optimization_guide::OptimizationGuideModelStreamingExecutionResult result) {
+  if (!result.response.has_value()) {
+    LogOnDeviceModelExecutionSuccessAndTime(/*success=*/false,
+                                            session_execution_start_time_);
+    if (inquire_on_device_model_callback_) {
+      std::move(inquire_on_device_model_callback_).Run(std::nullopt);
+    }
+    return;
+  }
+
+  // This is a non-error response, but it's not completed, yet so we wait till
+  // it's complete.
+  if (!result.response->is_complete) {
+    return;
+  }
+
+  LogOnDeviceModelExecutionSuccessAndTime(/*success=*/true,
+                                          session_execution_start_time_);
+
+  auto scam_detection_response = optimization_guide::ParsedAnyMetadata<
+      optimization_guide::proto::ScamDetectionResponse>(
+      result.response->response);
+
+  if (!scam_detection_response) {
+    LogOnDeviceModelExecutionParse(false);
+    return;
+  }
+
+  LogOnDeviceModelExecutionParse(true);
+
+  CHECK(session_);
+  session_.reset();
+
+  if (inquire_on_device_model_callback_) {
+    std::move(inquire_on_device_model_callback_).Run(scam_detection_response);
+  }
+}
+
 // IN-TEST
 void ClientSideDetectionService::SetModelAndVisualTfLiteForTesting(
     const base::FilePath& model,
@@ -784,4 +885,10 @@
       model, visual_tf_lite);
 }
 
+// IN-TEST
+void ClientSideDetectionService::SetOnDeviceAvailabilityForTesting(
+    bool available) {
+  on_device_model_available_ = available;
+}
+
 }  // namespace safe_browsing
diff --git a/components/safe_browsing/content/browser/client_side_detection_service.h b/components/safe_browsing/content/browser/client_side_detection_service.h
index 2558d9de..c2e677b 100644
--- a/components/safe_browsing/content/browser/client_side_detection_service.h
+++ b/components/safe_browsing/content/browser/client_side_detection_service.h
@@ -31,6 +31,9 @@
 #include "base/sequence_checker.h"
 #include "base/time/time.h"
 #include "components/keyed_service/core/keyed_service.h"
+#include "components/optimization_guide/core/optimization_guide_model_executor.h"
+#include "components/optimization_guide/proto/common_types.pb.h"
+#include "components/optimization_guide/proto/features/scam_detection.pb.h"
 #include "components/prefs/pref_change_registrar.h"
 #include "components/safe_browsing/content/browser/client_side_phishing_model.h"
 #include "components/safe_browsing/core/common/proto/csd.pb.h"
@@ -62,6 +65,9 @@
   kMaxValue = kModelLabelNotFound,
 };
 
+using ScamDetectionRequest = optimization_guide::proto::ScamDetectionRequest;
+using ScamDetectionResponse = optimization_guide::proto::ScamDetectionResponse;
+
 // Main service which pushes models to the renderers, responds to classification
 // requests. This owns two ModelLoader objects.
 class ClientSideDetectionService
@@ -89,8 +95,19 @@
     GetSafeBrowsingURLLoaderFactory() = 0;
     virtual bool ShouldSendModelToBrowserContext(
         content::BrowserContext* context) = 0;
+    // Starts listening to the on-device model update through OptimizationGuide.
+    // A check will be made in the delegate to confirm that it's not listening
+    // for availability before subscribing. This will be called when the user
+    // preferences change and the user is subscribed to Enhanced Safe Browsing.
     virtual void StartListeningToOnDeviceModelUpdate() = 0;
+    // Stops listening to the on-device model update through OptimizationGuide.
+    // A check is handled in the delegate if the user is already stopped
+    // listening for on-device model updates.
     virtual void StopListeningToOnDeviceModelUpdate() = 0;
+    // Returns the on-device model session which allows us to execute the model.
+    virtual std::unique_ptr<
+        optimization_guide::OptimizationGuideModelExecutor::Session>
+    GetModelExecutorSession() = 0;
   };
 
   ClientSideDetectionService(
@@ -212,8 +229,22 @@
   // session.
   void NotifyOnDeviceModelAvailable();
 
+  // Returns |on_device_model_available_| which indicates the availability of
+  // on-device model session creation.
   bool IsOnDeviceModelAvailable();
 
+  // Called from the host class when the proper requirements are met to inquire
+  // the on-device model.
+  virtual void InquireOnDeviceModel(
+      ClientPhishingRequest* verdict,
+      std::string rendered_texts,
+      base::OnceCallback<
+          void(std::optional<optimization_guide::proto::ScamDetectionResponse>)>
+          callback);
+
+  // For testing the on-device model flow in unit test.
+  void SetOnDeviceAvailabilityForTesting(bool available);
+
  private:
   friend class ClientSideDetectionServiceTest;
   FRIEND_TEST_ALL_PREFIXES(ClientSideDetectionServiceTest,
@@ -230,6 +261,14 @@
                            TestModelFollowsPrefs);
   FRIEND_TEST_ALL_PREFIXES(ClientSideDetectionServiceTest,
                            TestOnDeviceModelFetchCall);
+  FRIEND_TEST_ALL_PREFIXES(ClientSideDetectionServiceTest,
+                           TestSessionCreationFailure);
+  FRIEND_TEST_ALL_PREFIXES(ClientSideDetectionServiceTest,
+                           TestSessionCreationSuccess);
+  FRIEND_TEST_ALL_PREFIXES(ClientSideDetectionServiceTest,
+                           TestSessionExecutionSuccess);
+  FRIEND_TEST_ALL_PREFIXES(ClientSideDetectionServiceTest,
+                           TestSessionExecutionFailure);
 
   // CacheState holds all information necessary to respond to a caller without
   // actually making a HTTP request.
@@ -293,6 +332,11 @@
   void RenderProcessHostDestroyed(content::RenderProcessHost* rph) override;
   void RenderProcessReady(content::RenderProcessHost* rph) override;
 
+  void ModelExecutionCallback(
+      ClientPhishingRequest* verdict,
+      optimization_guide::OptimizationGuideModelStreamingExecutionResult
+          result);
+
   // Whether the service is running or not.  When the service is not running,
   // it won't download the model nor report detected phishing URLs.
   bool enabled_ = false;
@@ -354,6 +398,14 @@
   // delegate.
   bool on_device_model_available_ = false;
 
+  base::TimeTicks session_execution_start_time_;
+  // The underlying session provided by optimization guide component.
+  std::unique_ptr<optimization_guide::OptimizationGuideModelExecutor::Session>
+      session_;
+  base::OnceCallback<void(
+      std::optional<optimization_guide::proto::ScamDetectionResponse>)>
+      inquire_on_device_model_callback_;
+
   SEQUENCE_CHECKER(sequence_checker_);
 
   // Used to asynchronously call the callbacks for
diff --git a/components/search_engines/DEPS b/components/search_engines/DEPS
index 3f915ed..0190adb 100644
--- a/components/search_engines/DEPS
+++ b/components/search_engines/DEPS
@@ -10,6 +10,7 @@
   "+components/lens",
   "+components/metrics",
   "+components/omnibox/common",
+  "+components/os_crypt/async",
   "+components/policy",
   "+components/pref_registry",
   "+components/prefs",
@@ -22,6 +23,7 @@
   "+components/variations",
   "+components/version_info/version_info.h",
   "+components/webdata",
+  "+crypto",
   "+google_apis",
   "+net",
   "+services/data_decoder/public",
diff --git a/components/search_engines/keyword_table.cc b/components/search_engines/keyword_table.cc
index 6d9b9bf4..66637d2 100644
--- a/components/search_engines/keyword_table.cc
+++ b/components/search_engines/keyword_table.cc
@@ -11,9 +11,11 @@
 #include <string_view>
 #include <tuple>
 
+#include "base/feature_list.h"
 #include "base/json/json_reader.h"
 #include "base/json/json_writer.h"
 #include "base/logging.h"
+#include "base/metrics/histogram_functions.h"
 #include "base/strings/strcat.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_split.h"
@@ -22,23 +24,52 @@
 #include "base/time/time.h"
 #include "base/values.h"
 #include "components/database_utils/url_converter.h"
+#include "components/os_crypt/async/common/encryptor.h"
 #include "components/search_engines/search_terms_data.h"
 #include "components/search_engines/template_url.h"
 #include "components/webdata/common/web_database.h"
 #include "sql/statement.h"
 #include "sql/transaction.h"
+#include "third_party/abseil-cpp/absl/cleanup/cleanup.h"
 #include "url/gurl.h"
 
 using base::Time;
 
+namespace features {
+BASE_FEATURE(kKeywordTableHashVerification,
+             "KeywordTableHashVerification",
+             base::FEATURE_ENABLED_BY_DEFAULT);
+}  // namespace features
+
 namespace {
 
+// These values are persisted to logs. Entries should not be renumbered and
+// numeric values should never be reused.
+enum class HashValidationStatus {
+  // The hash was verified successfully.
+  kSuccess = 0,
+  // Decryption of the encrypted hash failed.
+  kDecryptFailed = 1,
+  // The decrypted hash was invalid e.g. too short or too long.
+  kInvalidHash = 2,
+  // The decrypted hash did not match the expected value.
+  kIncorrectHash = 3,
+  // The hash was not verified as decryption services are not available.
+  kNotVerifiedNoCrypto = 4,
+  // The hash was not verified as verification is disabled.
+  kNotVerifiedFeatureDisabled = 5,
+  kMaxValue = kNotVerifiedFeatureDisabled,
+};
+
 // Keys used in the meta table.
 constexpr char kBuiltinKeywordDataVersion[] = "Builtin Keyword Version";
 constexpr char kBuiltinKeywordMilestone[] = "Builtin Keyword Milestone";
 constexpr char kBuiltinKeywordCountry[] = "Builtin Keyword Country";
 constexpr char kStarterPackKeywordVersion[] = "Starter Pack Keyword Version";
 
+// Version that added the url_hash column. Used in several places in this code.
+constexpr int kAddedHashColumn = 137;
+
 const std::string ColumnsForVersion(int version, bool concatenated) {
   std::vector<std::string_view> columns;
 
@@ -120,64 +151,13 @@
     // Column added in version 122.
     columns.push_back("featured_by_policy");
   }
-
+  if (version >= kAddedHashColumn) {
+    // Column added in version 137.
+    columns.push_back("url_hash");
+  }
   return base::JoinString(columns, std::string(concatenated ? " || " : ", "));
 }
 
-// Inserts the data from |data| into |s|.  |s| is assumed to have slots for all
-// the columns in the keyword table.  |id_column| is the slot number to bind
-// |data|'s |id| to; |starting_column| is the slot number of the first of a
-// contiguous set of slots to bind all the other fields to.
-void BindURLToStatement(const TemplateURLData& data,
-                        sql::Statement* s,
-                        int id_column,
-                        int starting_column) {
-  // Serialize |alternate_urls| to JSON.
-  // TODO(beaudoin): Check what it would take to use a new table to store
-  // alternate_urls while keeping backups and table signature in a good state.
-  // See: crbug.com/153520
-  base::Value::List alternate_urls_value;
-  for (size_t i = 0; i < data.alternate_urls.size(); ++i)
-    alternate_urls_value.Append(data.alternate_urls[i]);
-  std::string alternate_urls;
-  base::JSONWriter::Write(alternate_urls_value, &alternate_urls);
-
-  s->BindInt64(id_column, data.id);
-  s->BindString16(starting_column, data.short_name());
-  s->BindString16(starting_column + 1, data.keyword());
-  s->BindString(starting_column + 2,
-                data.favicon_url.is_valid()
-                    ? database_utils::GurlToDatabaseUrl(data.favicon_url)
-                    : std::string());
-  s->BindString(starting_column + 3, data.url());
-  s->BindBool(starting_column + 4, data.safe_for_autoreplace);
-  s->BindString(starting_column + 5,
-                data.originating_url.is_valid()
-                    ? database_utils::GurlToDatabaseUrl(data.originating_url)
-                    : std::string());
-  s->BindTime(starting_column + 6, data.date_created);
-  s->BindInt(starting_column + 7, data.usage_count);
-  s->BindString(starting_column + 8,
-                base::JoinString(data.input_encodings, ";"));
-  s->BindString(starting_column + 9, data.suggestions_url);
-  s->BindInt(starting_column + 10, data.prepopulate_id);
-  s->BindInt(starting_column + 11, static_cast<int>(data.created_by_policy));
-  s->BindTime(starting_column + 12, data.last_modified);
-  s->BindString(starting_column + 13, data.sync_guid);
-  s->BindString(starting_column + 14, alternate_urls);
-  s->BindString(starting_column + 15, data.image_url);
-  s->BindString(starting_column + 16, data.search_url_post_params);
-  s->BindString(starting_column + 17, data.suggestions_url_post_params);
-  s->BindString(starting_column + 18, data.image_url_post_params);
-  s->BindString(starting_column + 19, data.new_tab_url);
-  s->BindTime(starting_column + 20, data.last_visited);
-  s->BindBool(starting_column + 21, data.created_from_play_api);
-  s->BindInt(starting_column + 22, static_cast<int>(data.is_active));
-  s->BindInt(starting_column + 23, data.starter_pack_id);
-  s->BindBool(starting_column + 24, data.enforced_by_policy);
-  s->BindBool(starting_column + 25, data.featured_by_policy);
-}
-
 WebDatabaseTable::TypeKey GetKey() {
   // We just need a unique constant. Use the address of a static that
   // COMDAT folding won't touch in an optimizing linker.
@@ -230,7 +210,8 @@
              "is_active INTEGER DEFAULT 0, "
              "starter_pack_id INTEGER DEFAULT 0, "
              "enforced_by_policy INTEGER DEFAULT 0, "
-             "featured_by_policy INTEGER DEFAULT 0)");
+             "featured_by_policy INTEGER DEFAULT 0, "
+             "url_hash BLOB)");
 }
 
 bool KeywordTable::MigrateToVersion(int version,
@@ -264,6 +245,8 @@
       return MigrateToVersion112AddEnforcedByPolicyColumn();
     case 122:
       return MigrateToVersion122AddSiteSearchPolicyColumns();
+    case 137:
+      return MigrateToVersion137AddHashColumn();
   }
 
   return true;
@@ -303,10 +286,11 @@
 
   std::set<TemplateURLID> bad_entries;
   while (s.Step()) {
-    keywords->push_back(TemplateURLData());
-    if (!GetKeywordDataFromStatement(s, &keywords->back())) {
+    const auto data = GetKeywordDataFromStatement(s);
+    if (data) {
+      keywords->emplace_back(std::move(*data));
+    } else {
       bad_entries.insert(s.ColumnInt64(0));
-      keywords->pop_back();
     }
   }
   bool succeeded = s.Succeeded();
@@ -469,7 +453,7 @@
   if (!s.Succeeded())
     return false;
 
-  for (auto tuple : updates) {
+  for (const auto& tuple : updates) {
     sql::Statement update_statement(db()->GetCachedStatement(
         SQL_FROM_HERE,
         "UPDATE keywords SET date_created = ?, last_modified = ?, last_visited "
@@ -511,58 +495,202 @@
       "ALTER TABLE keywords ADD COLUMN featured_by_policy INTEGER DEFAULT 0");
 }
 
-// static
-bool KeywordTable::GetKeywordDataFromStatement(sql::Statement& s,
-                                               TemplateURLData* data) {
-  DCHECK(data);
+bool KeywordTable::MigrateToVersion137AddHashColumn() {
+  sql::Transaction transaction(db());
 
-  data->SetShortName(s.ColumnString16(1));
-  data->SetKeyword(s.ColumnString16(2));
+  if (!transaction.Begin() ||
+      !db()->Execute("ALTER TABLE keywords ADD COLUMN url_hash BLOB")) {
+    return false;
+  }
+
+  bool all_rows_migrated = true;
+  absl::Cleanup record_histogram = [&all_rows_migrated] {
+    base::UmaHistogramBoolean("Search.KeywordTable.MigrationSuccess.V137",
+                              all_rows_migrated);
+  };
+
+  // If there is no platform encryption, nothing left to do, since the
+  // `url_hash` column will just be NULL.
+  if (!base::FeatureList::IsEnabled(features::kKeywordTableHashVerification) ||
+      !encryptor()->IsEncryptionAvailable()) {
+    return transaction.Commit();
+  }
+
+  // Read in all the urls and ids and create hashes for each one.
+  sql::Statement query_statement(db()->GetCachedStatement(
+      SQL_FROM_HERE, base::StrCat({"SELECT id, url FROM keywords"})));
+
+  while (query_statement.Step()) {
+    TemplateURLData data;
+    data.id = query_statement.ColumnInt64(0);
+    data.SetURL(query_statement.ColumnString(1));
+    const auto url_hash = data.GenerateHash();
+    const auto encrypted_hash = encryptor()->EncryptString(
+        std::string(url_hash.begin(), url_hash.end()));
+    if (!encrypted_hash) {
+      all_rows_migrated = false;
+      continue;
+    }
+
+    // Update each row in turn with the generated hash.
+    sql::Statement update_statement(db()->GetCachedStatement(
+        SQL_FROM_HERE, "UPDATE keywords SET url_hash=? WHERE id=?"));
+
+    update_statement.BindBlob(0, *encrypted_hash);
+    update_statement.BindInt64(1, data.id);
+
+    if (!update_statement.Run()) {
+      all_rows_migrated = false;
+      continue;
+    }
+  }
+
+  return transaction.Commit();
+}
+
+std::optional<TemplateURLData> KeywordTable::GetKeywordDataFromStatement(
+    sql::Statement& s) {
+  TemplateURLData data;
+
+  data.SetShortName(s.ColumnString16(1));
+  data.SetKeyword(s.ColumnString16(2));
   // Due to past bugs, we might have persisted entries with empty URLs.  Avoid
   // reading these out.  (GetKeywords() will delete these entries on return.)
   // NOTE: This code should only be needed as long as we might be reading such
   // potentially-old data and can be removed afterward.
-  if (s.ColumnString(4).empty())
-    return false;
-  data->SetURL(s.ColumnString(4));
-  data->suggestions_url = s.ColumnString(10);
-  data->image_url = s.ColumnString(16);
-  data->new_tab_url = s.ColumnString(20);
-  data->search_url_post_params = s.ColumnString(17);
-  data->suggestions_url_post_params = s.ColumnString(18);
-  data->image_url_post_params = s.ColumnString(19);
-  data->favicon_url = GURL(s.ColumnString(3));
-  data->originating_url = GURL(s.ColumnString(6));
-  data->safe_for_autoreplace = s.ColumnBool(5);
-  data->input_encodings = base::SplitString(
+  if (s.ColumnString(4).empty()) {
+    return std::nullopt;
+  }
+  data.SetURL(s.ColumnString(4));
+  data.suggestions_url = s.ColumnString(10);
+  data.image_url = s.ColumnString(16);
+  data.new_tab_url = s.ColumnString(20);
+  data.search_url_post_params = s.ColumnString(17);
+  data.suggestions_url_post_params = s.ColumnString(18);
+  data.image_url_post_params = s.ColumnString(19);
+  data.favicon_url = GURL(s.ColumnString(3));
+  data.originating_url = GURL(s.ColumnString(6));
+  data.safe_for_autoreplace = s.ColumnBool(5);
+  data.input_encodings = base::SplitString(
       s.ColumnString(9), ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
-  data->id = s.ColumnInt64(0);
-  data->date_created = s.ColumnTime(7);
-  data->last_modified = s.ColumnTime(13);
-  data->created_by_policy =
+  data.id = s.ColumnInt64(0);
+  data.date_created = s.ColumnTime(7);
+  data.last_modified = s.ColumnTime(13);
+  data.created_by_policy =
       static_cast<TemplateURLData::CreatedByPolicy>(s.ColumnInt(12));
-  data->created_from_play_api = s.ColumnBool(22);
-  data->usage_count = s.ColumnInt(8);
-  data->prepopulate_id = s.ColumnInt(11);
-  data->sync_guid = s.ColumnString(14);
-  data->is_active = static_cast<TemplateURLData::ActiveStatus>(s.ColumnInt(23));
-  data->starter_pack_id = s.ColumnInt(24);
-  data->enforced_by_policy = s.ColumnBool(25);
-  data->featured_by_policy = s.ColumnBool(26);
+  data.created_from_play_api = s.ColumnBool(22);
+  data.usage_count = s.ColumnInt(8);
+  data.prepopulate_id = s.ColumnInt(11);
+  data.sync_guid = s.ColumnString(14);
+  data.is_active = static_cast<TemplateURLData::ActiveStatus>(s.ColumnInt(23));
+  data.starter_pack_id = s.ColumnInt(24);
+  data.enforced_by_policy = s.ColumnBool(25);
+  data.featured_by_policy = s.ColumnBool(26);
 
-  data->alternate_urls.clear();
   std::optional<base::Value> value(base::JSONReader::Read(s.ColumnString(15)));
   if (value && value->is_list()) {
     for (const base::Value& alternate_url : value->GetList()) {
       if (alternate_url.is_string()) {
-        data->alternate_urls.push_back(alternate_url.GetString());
+        data.alternate_urls.push_back(alternate_url.GetString());
       }
     }
   }
 
-  data->last_visited = s.ColumnTime(21);
+  data.last_visited = s.ColumnTime(21);
 
-  return true;
+  HashValidationStatus status = HashValidationStatus::kSuccess;
+  absl::Cleanup record_histogram = [&status] {
+    base::UmaHistogramEnumeration("Search.KeywordTable.HashValidationStatus",
+                                  status);
+  };
+
+  if (!base::FeatureList::IsEnabled(features::kKeywordTableHashVerification)) {
+    status = HashValidationStatus::kNotVerifiedFeatureDisabled;
+  } else if (!encryptor()->IsDecryptionAvailable()) {
+    status = HashValidationStatus::kNotVerifiedNoCrypto;
+  } else {
+    const auto hash = encryptor()->DecryptData(s.ColumnBlob(27));
+    if (!hash) {
+      status = HashValidationStatus::kDecryptFailed;
+      return std::nullopt;
+    }
+
+    const auto expected_hash = data.GenerateHash();
+
+    if (expected_hash.size() != hash->size()) {
+      status = HashValidationStatus::kInvalidHash;
+      return std::nullopt;
+    }
+
+    if (!std::ranges::equal(hash.value(), expected_hash, [](char c, uint8_t b) {
+          return static_cast<uint8_t>(c) == b;
+        })) {
+      status = HashValidationStatus::kIncorrectHash;
+      return std::nullopt;
+    }
+  }
+
+  return data;
+}
+
+void KeywordTable::BindURLToStatement(const TemplateURLData& data,
+                                      sql::Statement* s,
+                                      int id_column,
+                                      int starting_column) {
+  // Serialize |alternate_urls| to JSON.
+  // TODO(crbug.com/40950727): Check what it would take to use a new table to
+  // store alternate_urls while keeping backups and table signature in a good
+  // state.
+  base::Value::List alternate_urls_value;
+  for (const auto& alternate_url : data.alternate_urls) {
+    alternate_urls_value.Append(alternate_url);
+  }
+  std::string alternate_urls;
+  base::JSONWriter::Write(alternate_urls_value, &alternate_urls);
+
+  s->BindInt64(id_column, data.id);
+  s->BindString16(starting_column, data.short_name());
+  s->BindString16(starting_column + 1, data.keyword());
+  s->BindString(starting_column + 2,
+                data.favicon_url.is_valid()
+                    ? database_utils::GurlToDatabaseUrl(data.favicon_url)
+                    : std::string());
+  s->BindString(starting_column + 3, data.url());
+  s->BindBool(starting_column + 4, data.safe_for_autoreplace);
+  s->BindString(starting_column + 5,
+                data.originating_url.is_valid()
+                    ? database_utils::GurlToDatabaseUrl(data.originating_url)
+                    : std::string());
+  s->BindTime(starting_column + 6, data.date_created);
+  s->BindInt(starting_column + 7, data.usage_count);
+  s->BindString(starting_column + 8,
+                base::JoinString(data.input_encodings, ";"));
+  s->BindString(starting_column + 9, data.suggestions_url);
+  s->BindInt(starting_column + 10, data.prepopulate_id);
+  s->BindInt(starting_column + 11, static_cast<int>(data.created_by_policy));
+  s->BindTime(starting_column + 12, data.last_modified);
+  s->BindString(starting_column + 13, data.sync_guid);
+  s->BindString(starting_column + 14, alternate_urls);
+  s->BindString(starting_column + 15, data.image_url);
+  s->BindString(starting_column + 16, data.search_url_post_params);
+  s->BindString(starting_column + 17, data.suggestions_url_post_params);
+  s->BindString(starting_column + 18, data.image_url_post_params);
+  s->BindString(starting_column + 19, data.new_tab_url);
+  s->BindTime(starting_column + 20, data.last_visited);
+  s->BindBool(starting_column + 21, data.created_from_play_api);
+  s->BindInt(starting_column + 22, static_cast<int>(data.is_active));
+  s->BindInt(starting_column + 23, data.starter_pack_id);
+  s->BindBool(starting_column + 24, data.enforced_by_policy);
+  s->BindBool(starting_column + 25, data.featured_by_policy);
+  if (encryptor()->IsEncryptionAvailable()) {
+    const auto url_hash = data.GenerateHash();
+    const auto encrypted_hash = encryptor()->EncryptString(
+        std::string(url_hash.begin(), url_hash.end()));
+    CHECK(encrypted_hash);
+    s->BindBlob(starting_column + 26, *encrypted_hash);
+  } else {
+    s->BindNull(starting_column + 26);
+  }
 }
 
 bool KeywordTable::AddKeyword(const TemplateURLData& data) {
@@ -570,9 +698,9 @@
   const std::string query = base::StrCat(
       {"INSERT INTO keywords (", GetKeywordColumns(),
        ") "
-       "VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"});
+       "VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"});
   sql::Statement s(db()->GetCachedStatement(SQL_FROM_HERE, query));
-  BindURLToStatement(data, &s, 0, 1);
+  BindURLToStatement(data, &s, /*id_column=*/0, /*starting_column=*/1);
 
   return s.Run();
 }
@@ -597,9 +725,9 @@
       "image_url=?, search_url_post_params=?, suggest_url_post_params=?, "
       "image_url_post_params=?, new_tab_url=?, last_visited=?, "
       "created_from_play_api=?, is_active=?, starter_pack_id=?, "
-      "enforced_by_policy=?, featured_by_policy=? WHERE id=?"));
-  BindURLToStatement(data, &s, 26, 0);  // "26" binds id() as the last item.
-
+      "enforced_by_policy=?, featured_by_policy=?, url_hash=? WHERE id=?"));
+  // "27" binds id() as the last item.
+  BindURLToStatement(data, &s, /*id_column=*/27, /*starting_column=*/0);
   return s.Run();
 }
 
diff --git a/components/search_engines/keyword_table.h b/components/search_engines/keyword_table.h
index 7d575431..18da16b 100644
--- a/components/search_engines/keyword_table.h
+++ b/components/search_engines/keyword_table.h
@@ -7,11 +7,13 @@
 
 #include <stdint.h>
 
+#include <optional>
 #include <string>
 #include <utility>
 #include <vector>
 
 #include "base/compiler_specific.h"
+#include "base/feature_list.h"
 #include "base/gtest_prod_util.h"
 #include "components/search_engines/template_url_id.h"
 #include "components/webdata/common/web_database_table.h"
@@ -23,6 +25,12 @@
 class Statement;
 }  // namespace sql
 
+namespace features {
+// An emergency 'off switch' to disable hash verification.
+// TODO(crbug.com/376303929): Remove in M134.
+BASE_DECLARE_FEATURE(kKeywordTableHashVerification);
+}  // namespace features
+
 // This class manages the |keywords| MetaTable within the SQLite database
 // passed to the constructor. It expects the following schema:
 //
@@ -76,6 +84,10 @@
 //                          added in version 112.
 //   featured_by_policy     See TemplateURLData::featured_by_policy. This was
 //                          added in version 122.
+//   url_hash               An encrypted hash of the url and id fields used to
+//                          detect database inconsistency. Added in version 137.
+//                          This can be NULL if no encryption services are
+//                          available.
 //
 // This class also manages some fields in the |meta| table:
 //
@@ -163,22 +175,26 @@
   bool MigrateToVersion103AddStarterPackIdColumn();
   bool MigrateToVersion112AddEnforcedByPolicyColumn();
   bool MigrateToVersion122AddSiteSearchPolicyColumns();
+  bool MigrateToVersion137AddHashColumn();
 
  private:
   friend class KeywordTableTest;
 
-  // NOTE: Since the table columns have changed in different versions, many
-  // functions below take a |table_version| argument which dictates which
-  // version number's column set to use.
+  // Returns a TemplateURLData with the data in `s`. Returns std::nullopt if we
+  // couldn't fill for some reason, e.g. `s` tried to set one of the fields to
+  // an illegal value.
+  std::optional<TemplateURLData> GetKeywordDataFromStatement(sql::Statement& s);
 
-  // Fills |data| with the data in |s|.  Returns false if we couldn't fill
-  // |data| for some reason, e.g. |s| tried to set one of the fields to an
-  // illegal value.
-  static bool GetKeywordDataFromStatement(sql::Statement& s,
-                                          TemplateURLData* data);
+  // Inserts the data from `data` into `s`. `s` is assumed to have slots for all
+  // the columns in the keyword table. `id_column` is the slot number to bind
+  // `data`'s `id` to; `starting_column` is the slot number of the first of a
+  // contiguous set of slots to bind all the other fields to.
+  void BindURLToStatement(const TemplateURLData& data,
+                          sql::Statement* s,
+                          int id_column,
+                          int starting_column);
 
-  // Adds a new keyword, updating the id field on success.
-  // Returns true if successful.
+  // Adds a new keyword to the keyword table. Returns true if successful.
   bool AddKeyword(const TemplateURLData& data);
 
   // Removes the specified keyword.
diff --git a/components/search_engines/keyword_table_unittest.cc b/components/search_engines/keyword_table_unittest.cc
index 386d668..c8605222 100644
--- a/components/search_engines/keyword_table_unittest.cc
+++ b/components/search_engines/keyword_table_unittest.cc
@@ -10,9 +10,15 @@
 
 #include "base/files/scoped_temp_dir.h"
 #include "base/strings/cstring_view.h"
+#include "base/strings/strcat.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/utf_string_conversions.h"
+#include "base/test/metrics/histogram_tester.h"
+#include "base/test/scoped_feature_list.h"
 #include "base/time/time.h"
+#include "build/build_config.h"
+#include "components/os_crypt/async/browser/test_utils.h"
+#include "components/os_crypt/async/common/test_encryptor.h"
 #include "components/search_engines/template_url_data.h"
 #include "components/webdata/common/web_database.h"
 #include "sql/statement.h"
@@ -23,7 +29,8 @@
 
 class KeywordTableTest : public testing::Test {
  public:
-  KeywordTableTest() = default;
+  KeywordTableTest()
+      : encryptor_(os_crypt_async::GetTestEncryptorForTesting()) {}
 
   KeywordTableTest(const KeywordTableTest&) = delete;
   KeywordTableTest& operator=(const KeywordTableTest&) = delete;
@@ -34,11 +41,21 @@
   void SetUp() override {
     ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
     file_ = temp_dir_.GetPath().AppendASCII("TestWebDatabase");
+    InitDatabase();
+  }
 
+  // Pass in an `encryptor` if wanting to override the default one.
+  void InitDatabase(const os_crypt_async::Encryptor* encryptor = nullptr) {
     table_ = std::make_unique<KeywordTable>();
     db_ = std::make_unique<WebDatabase>();
     db_->AddTable(table_.get());
-    ASSERT_EQ(sql::INIT_OK, db_->Init(file_));
+    ASSERT_EQ(sql::INIT_OK,
+              db_->Init(file_, encryptor ? encryptor : &encryptor_));
+  }
+
+  void CloseDatabase() {
+    db_.reset();
+    table_.reset();
   }
 
   void AddKeyword(const TemplateURLData& keyword) const {
@@ -97,8 +114,12 @@
     statement->Assign(table_->db()->GetUniqueStatement(sql));
   }
 
- private:
   base::FilePath file_;
+
+ protected:
+  os_crypt_async::TestEncryptor encryptor_;
+
+ private:
   base::ScopedTempDir temp_dir_;
   std::unique_ptr<KeywordTable> table_;
   std::unique_ptr<WebDatabase> db_;
@@ -106,9 +127,18 @@
 
 
 TEST_F(KeywordTableTest, Keywords) {
+  // The feature is tested elsewhere, force enable to make sure expectations
+  // match.
+  base::test::ScopedFeatureList enable_verification(
+      features::kKeywordTableHashVerification);
+
   TemplateURLData keyword(CreateAndAddKeyword());
 
+  base::HistogramTester histograms;
+
   KeywordTable::Keywords keywords(GetKeywords());
+  histograms.ExpectUniqueSample("Search.KeywordTable.HashValidationStatus",
+                                /*HashValidationStatus::kSuccess*/ 0, 1);
   EXPECT_EQ(1U, keywords.size());
   const TemplateURLData& restored_keyword = keywords.front();
 
@@ -256,3 +286,138 @@
     RemoveKeyword(keyword.id);
   }
 }
+
+struct TestCase {
+  bool encryption_enabled;
+  bool feature_enabled;
+  bool tamper;
+  base::HistogramBase::Sample expected_histogram_sample;
+  size_t expected_keyword_count;
+
+  std::string Name() const {
+    return base::StrCat({encryption_enabled ? "Encryption" : "NoEncryption",
+                         feature_enabled ? "FeatureEnabled" : "FeatureDisabled",
+                         tamper ? "Tamper" : "NoTamper"});
+  }
+};
+
+class KeywordTableTestEncryption
+    : public KeywordTableTest,
+      public ::testing::WithParamInterface<TestCase> {
+ public:
+  KeywordTableTestEncryption() {
+    feature_.InitWithFeatureState(features::kKeywordTableHashVerification,
+                                  GetParam().feature_enabled);
+  }
+
+ private:
+  base::test::ScopedFeatureList feature_;
+};
+
+TEST_P(KeywordTableTestEncryption, KeywordBadHash) {
+  TemplateURLData keyword(CreateAndAddKeyword());
+  {
+    KeywordTable::Keywords keywords(GetKeywords());
+    EXPECT_EQ(1U, keywords.size());
+  }
+  CloseDatabase();
+  if (GetParam().tamper) {
+    sql::Database db;
+    ASSERT_TRUE(db.Open(file_));
+    EXPECT_TRUE(
+        db.Execute("UPDATE keywords SET url='http://bad.com/' WHERE id=1"));
+  }
+  encryptor_.set_decryption_available_for_testing(
+      GetParam().encryption_enabled);
+  base::HistogramTester histograms;
+  InitDatabase();
+  KeywordTable::Keywords keywords(GetKeywords());
+  // If decryption is not available, the hash is skipped, otherwise the hash
+  // should be invalid and the row dropped.
+  histograms.ExpectUniqueSample("Search.KeywordTable.HashValidationStatus",
+                                GetParam().expected_histogram_sample, 1);
+  EXPECT_EQ(GetParam().expected_keyword_count, keywords.size());
+}
+
+INSTANTIATE_TEST_SUITE_P(
+    /*empty*/,
+    KeywordTableTestEncryption,
+    ::testing::Values(
+        TestCase{.encryption_enabled = false,
+                 .feature_enabled = false,
+                 .tamper = true,
+                 .expected_histogram_sample = /*kNotVerifiedFeatureDisabled*/ 5,
+                 .expected_keyword_count = 1u},
+        TestCase{.encryption_enabled = false,
+                 .feature_enabled = true,
+                 .tamper = true,
+                 .expected_histogram_sample = /*kNotVerifiedNoCrypto*/ 4,
+                 .expected_keyword_count = 1u},
+        TestCase{.encryption_enabled = true,
+                 .feature_enabled = false,
+                 .tamper = true,
+                 .expected_histogram_sample = /*kNotVerifiedFeatureDisabled*/ 5,
+                 .expected_keyword_count = 1u},
+        TestCase{.encryption_enabled = true,
+                 .feature_enabled = true,
+                 .tamper = true,
+                 .expected_histogram_sample = /*kIncorrectHash*/ 3,
+                 .expected_keyword_count = 0},
+        TestCase{.encryption_enabled = false,
+                 .feature_enabled = false,
+                 .tamper = false,
+                 .expected_histogram_sample = /*kNotVerifiedFeatureDisabled*/ 5,
+                 .expected_keyword_count = 1u},
+        TestCase{.encryption_enabled = false,
+                 .feature_enabled = true,
+                 .tamper = false,
+                 .expected_histogram_sample = /*kNotVerifiedNoCrypto*/ 4,
+                 .expected_keyword_count = 1u},
+        TestCase{.encryption_enabled = true,
+                 .feature_enabled = false,
+                 .tamper = false,
+                 .expected_histogram_sample = /*kNotVerifiedFeatureDisabled*/ 5,
+                 .expected_keyword_count = 1u},
+        TestCase{.encryption_enabled = true,
+                 .feature_enabled = true,
+                 .tamper = false,
+                 .expected_histogram_sample = /*kSuccess*/ 0,
+                 .expected_keyword_count = 1u}),
+    [](const auto& info) { return info.param.Name(); });
+
+TEST_F(KeywordTableTest, KeywordBadCrypto) {
+  base::test::ScopedFeatureList enable_verification(
+      features::kKeywordTableHashVerification);
+  TemplateURLData keyword(CreateAndAddKeyword());
+  {
+    KeywordTable::Keywords keywords(GetKeywords());
+    EXPECT_EQ(1U, keywords.size());
+  }
+  CloseDatabase();
+  {
+    base::HistogramTester histograms;
+    // A replacement encryptor with a new key that will make decryption of the
+    // hash fail.
+    const auto new_encryptor = os_crypt_async::GetTestEncryptorForTesting();
+    InitDatabase(&new_encryptor);
+    {
+      KeywordTable::Keywords keywords(GetKeywords());
+      EXPECT_TRUE(keywords.empty());
+    }
+
+    // OSCrypt on non-Windows platforms simply returns the encrypted data if
+    // called with invalid data. This is a quirk of these platforms and is in
+    // the process of being removed.
+    // TODO(crbug.com/365712505): Remove this fallback.
+#if BUILDFLAG(IS_WIN)
+    // HashValidationStatus::kDecryptFailed
+    constexpr base::HistogramBase::Sample kExpectedBucket = 1;
+#else
+    // HashValidationStatus::kInvalidHash
+    constexpr base::HistogramBase::Sample kExpectedBucket = 2;
+#endif  // BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_APPLE) && !(BUILDFLAG(IS_LINUX)
+        // && !BUILDFLAG(IS_CASTOS)) || BUILDFLAG(IS_FUCHSIA)
+    histograms.ExpectUniqueSample("Search.KeywordTable.HashValidationStatus",
+                                  kExpectedBucket, 1);
+  }
+}
diff --git a/components/search_engines/template_url_data.cc b/components/search_engines/template_url_data.cc
index c2342b9..dd207a0f 100644
--- a/components/search_engines/template_url_data.cc
+++ b/components/search_engines/template_url_data.cc
@@ -10,6 +10,7 @@
 #include "base/containers/fixed_flat_set.h"
 #include "base/containers/flat_map.h"
 #include "base/i18n/case_conversion.h"
+#include "base/pickle.h"
 #include "base/strings/string_util.h"
 #include "base/strings/stringprintf.h"
 #include "base/strings/utf_string_conversions.h"
@@ -18,6 +19,7 @@
 #include "base/values.h"
 #include "components/search_engines/prepopulated_engines.h"
 #include "components/search_engines/regulatory_extension_type.h"
+#include "crypto/hash.h"
 
 namespace {
 
@@ -168,6 +170,22 @@
   url_ = url;
 }
 
+std::vector<uint8_t> TemplateURLData::GenerateHash() const {
+  CHECK(!url_.empty());
+  CHECK_NE(id, 0);
+  base::Pickle pickle;
+  pickle.WriteInt64(id);
+  pickle.WriteString(url_);
+  // Prepend a hash version. This would allow expanding the data contained
+  // within the hash in the future, while keeping backwards compatibility.
+  const uint8_t kHashVersion = 1u;
+  std::vector<uint8_t> result(1, kHashVersion);
+
+  const auto hash = crypto::hash::Sha256(pickle);
+  result.insert(result.end(), hash.begin(), hash.end());
+  return result;
+}
+
 void TemplateURLData::GenerateSyncGUID() {
   sync_guid = GenerateGUID(prepopulate_id, starter_pack_id);
 }
diff --git a/components/search_engines/template_url_data.h b/components/search_engines/template_url_data.h
index 956dcf4..1acffdfc 100644
--- a/components/search_engines/template_url_data.h
+++ b/components/search_engines/template_url_data.h
@@ -84,6 +84,9 @@
   void SetURL(const std::string& url);
   const std::string& url() const { return url_; }
 
+  // Generate the deterministic hash of data within this TemplateURL.
+  std::vector<uint8_t> GenerateHash() const;
+
   // Recomputes |sync_guid| using the same logic as in the constructor. This
   // means a random GUID is generated, except for built-in search engines,
   // which generate GUIDs deterministically based on |prepopulate_id| or
diff --git a/components/security_interstitials/content/insecure_form_navigation_throttle.cc b/components/security_interstitials/content/insecure_form_navigation_throttle.cc
index a368f11..8cd59d07 100644
--- a/components/security_interstitials/content/insecure_form_navigation_throttle.cc
+++ b/components/security_interstitials/content/insecure_form_navigation_throttle.cc
@@ -123,7 +123,7 @@
   url::Origin form_originating_origin =
       handle->GetInitiatorOrigin().value_or(url::Origin());
   if (!security_interstitials::IsInsecureFormActionOnSecureSource(
-          form_originating_origin.GetURL(), handle->GetURL())) {
+          form_originating_origin, handle->GetURL())) {
     // Currently we only warn for insecure forms in secure pages.
     return content::NavigationThrottle::PROCEED;
   }
diff --git a/components/security_interstitials/core/insecure_form_util.cc b/components/security_interstitials/core/insecure_form_util.cc
index 8bff22bc..a7fe5564 100644
--- a/components/security_interstitials/core/insecure_form_util.cc
+++ b/components/security_interstitials/core/insecure_form_util.cc
@@ -4,8 +4,10 @@
 
 #include "components/security_interstitials/core/insecure_form_util.h"
 
+#include "base/strings/string_util.h"
 #include "services/network/public/cpp/is_potentially_trustworthy.h"
 #include "url/gurl.h"
+#include "url/origin.h"
 
 #if BUILDFLAG(IS_IOS)
 
@@ -39,14 +41,15 @@
 
 #endif
 
-bool IsInsecureFormActionOnSecureSource(const GURL& source_url,
+bool IsInsecureFormActionOnSecureSource(const url::Origin& source_origin,
                                         const GURL& action_url) {
-  if (!source_url.SchemeIs(url::kHttpsScheme)) {
+  if (!base::EqualsCaseInsensitiveASCII(source_origin.scheme(),
+                                        url::kHttpsScheme)) {
 #if BUILDFLAG(IS_IOS)
     // On iOS, tests can't use an HTTPS server that serves a valid HTTPS
     // response. Check if the URL is treated as secure for testing purposes.
     if (g_form_source_url_port_treated_as_secure_for_insecure_form_testing &&
-        source_url.IntPort() !=
+        source_origin.port() !=
             g_form_source_url_port_treated_as_secure_for_insecure_form_testing) {
       return false;
     }
diff --git a/components/security_interstitials/core/insecure_form_util.h b/components/security_interstitials/core/insecure_form_util.h
index 9106ddc..10821df2 100644
--- a/components/security_interstitials/core/insecure_form_util.h
+++ b/components/security_interstitials/core/insecure_form_util.h
@@ -9,6 +9,10 @@
 
 class GURL;
 
+namespace url {
+class Origin;
+}
+
 namespace security_interstitials {
 
 #if BUILDFLAG(IS_IOS)
@@ -32,9 +36,9 @@
 
 // Returns true if submitting a form with the given source and action urls is
 // insecure.
-// `source_url` is the URL of the page that submits the form.
+// `source_origin` is the Origin of the page that submits the form.
 // `action_url` is the URL of the form's action attribute.
-bool IsInsecureFormActionOnSecureSource(const GURL& source_url,
+bool IsInsecureFormActionOnSecureSource(const url::Origin& source_origin,
                                         const GURL& action_url);
 
 // Returns true if submitting a form with the given action url is insecure.
diff --git a/components/security_interstitials/core/insecure_form_util_unittest.cc b/components/security_interstitials/core/insecure_form_util_unittest.cc
index 08976c7..f62a178 100644
--- a/components/security_interstitials/core/insecure_form_util_unittest.cc
+++ b/components/security_interstitials/core/insecure_form_util_unittest.cc
@@ -3,9 +3,11 @@
 // found in the LICENSE file.
 
 #include "components/security_interstitials/core/insecure_form_util.h"
+
 #include "build/build_config.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "url/gurl.h"
+#include "url/origin.h"
 
 using security_interstitials::IsInsecureFormActionOnSecureSource;
 
@@ -27,22 +29,29 @@
 };
 
 TEST_F(InsecureFormUtilTest, IsInsecureFormActionOnSecureSource) {
-  EXPECT_TRUE(IsInsecureFormActionOnSecureSource(GURL("https://example.com"),
-                                                 GURL("http://example.com")));
+  EXPECT_TRUE(IsInsecureFormActionOnSecureSource(
+      url::Origin::Create(GURL("https://example.com")),
+      GURL("http://example.com")));
 
-  EXPECT_FALSE(IsInsecureFormActionOnSecureSource(GURL("http://example.com"),
-                                                  GURL("http://example.com")));
-  EXPECT_FALSE(IsInsecureFormActionOnSecureSource(GURL("http://example.com"),
-                                                  GURL("https://example.com")));
-  EXPECT_FALSE(IsInsecureFormActionOnSecureSource(GURL("https://example.com"),
-                                                  GURL("https://example.com")));
+  EXPECT_FALSE(IsInsecureFormActionOnSecureSource(
+      url::Origin::Create(GURL("http://example.com")),
+      GURL("http://example.com")));
+  EXPECT_FALSE(IsInsecureFormActionOnSecureSource(
+      url::Origin::Create(GURL("http://example.com")),
+      GURL("https://example.com")));
+  EXPECT_FALSE(IsInsecureFormActionOnSecureSource(
+      url::Origin::Create(GURL("https://example.com")),
+      GURL("https://example.com")));
 
 #if BUILDFLAG(IS_IOS)
-  EXPECT_TRUE(IsInsecureFormActionOnSecureSource(GURL("http://127.0.0.1:123"),
-                                                 GURL("http://127.0.0.1:456")));
-  EXPECT_TRUE(IsInsecureFormActionOnSecureSource(GURL("https://example.com"),
-                                                 GURL("http://127.0.0.1:456")));
-  EXPECT_TRUE(IsInsecureFormActionOnSecureSource(GURL("http://127.0.0.1:123"),
-                                                 GURL("http://example.com")));
+  EXPECT_TRUE(IsInsecureFormActionOnSecureSource(
+      url::Origin::Create(GURL("http://127.0.0.1:123")),
+      GURL("http://127.0.0.1:456")));
+  EXPECT_TRUE(IsInsecureFormActionOnSecureSource(
+      url::Origin::Create(GURL("https://example.com")),
+      GURL("http://127.0.0.1:456")));
+  EXPECT_TRUE(IsInsecureFormActionOnSecureSource(
+      url::Origin::Create(GURL("http://127.0.0.1:123")),
+      GURL("http://example.com")));
 #endif
 }
diff --git a/components/segmentation_platform/embedder/home_modules/constants.h b/components/segmentation_platform/embedder/home_modules/constants.h
index fb52bf2..8fc43079 100644
--- a/components/segmentation_platform/embedder/home_modules/constants.h
+++ b/components/segmentation_platform/embedder/home_modules/constants.h
@@ -44,6 +44,7 @@
     "has_default_browser_promo_shown_in_other_surface";
 const char kTabGroupExists[] = "tab_group_exists";
 const char kNumberOfTabs[] = "number_of_tabs";
+const char kTabGroupPromoShownCount[] = "tab_group_shown_count";
 const char kHaveSyncedTabGroups[] = "have_synced_tab_groups";
 const char kHaveClearedBrowsingDataInThirtyDays[] =
     "have_cleared_browsing_data_in_thirty_days";
diff --git a/components/segmentation_platform/embedder/home_modules/default_browser_promo.cc b/components/segmentation_platform/embedder/home_modules/default_browser_promo.cc
index 6a1d6adc..b3aa3fac 100644
--- a/components/segmentation_platform/embedder/home_modules/default_browser_promo.cc
+++ b/components/segmentation_platform/embedder/home_modules/default_browser_promo.cc
@@ -7,6 +7,7 @@
 #include "base/metrics/field_trial_params.h"
 #include "components/commerce/core/commerce_feature_list.h"
 #include "components/segmentation_platform/embedder/home_modules/constants.h"
+#include "components/segmentation_platform/embedder/home_modules/ephemeral_module_utils.h"
 #include "components/segmentation_platform/embedder/home_modules/home_modules_card_registry.h"
 #include "components/segmentation_platform/public/features.h"
 #include "components/segmentation_platform/public/proto/model_metadata.pb.h"
@@ -33,6 +34,16 @@
 
 CardSelectionInfo::ShowResult DefaultBrowserPromo::ComputeCardResult(
     const CardSelectionSignals& signals) const {
+  // Check for a forced `ShowResult`.
+  std::optional<CardSelectionInfo::ShowResult> forced_result =
+      GetForcedEphemeralModuleShowResult();
+
+  if (forced_result.has_value() &&
+      forced_result.value().result_label.has_value() &&
+      kDefaultBrowserPromo == forced_result.value().result_label.value()) {
+    return forced_result.value();
+  }
+
   CardSelectionInfo::ShowResult result;
   result.result_label = kDefaultBrowserPromo;
 
@@ -65,6 +76,15 @@
 }
 
 bool DefaultBrowserPromo::IsEnabled(int impression_count) {
+  std::optional<CardSelectionInfo::ShowResult> forced_result =
+      GetForcedEphemeralModuleShowResult();
+
+  if (forced_result.has_value() &&
+      forced_result.value().result_label.has_value() &&
+      kDefaultBrowserPromo == forced_result.value().result_label.value()) {
+    return true;
+  }
+
   if (!base::FeatureList::IsEnabled(features::kEducationalTipModule)) {
     return false;
   }
diff --git a/components/segmentation_platform/embedder/home_modules/home_modules_card_registry_unittest.cc b/components/segmentation_platform/embedder/home_modules/home_modules_card_registry_unittest.cc
index 3e2507f..f0286e2f 100644
--- a/components/segmentation_platform/embedder/home_modules/home_modules_card_registry_unittest.cc
+++ b/components/segmentation_platform/embedder/home_modules/home_modules_card_registry_unittest.cc
@@ -185,7 +185,7 @@
   registry_ = std::make_unique<HomeModulesCardRegistry>(&pref_service_);
 
   EXPECT_THAT(registry_->all_output_labels(), Contains(kTabGroupPromo));
-  EXPECT_GE(registry_->all_cards_input_size(), 4u);
+  EXPECT_GE(registry_->all_cards_input_size(), 5u);
   const std::vector<std::unique_ptr<CardSelectionInfo>>& all_cards =
       registry_->get_all_cards_by_priority();
   std::vector<std::string> card_names = ExtractCardNames(all_cards);
@@ -196,6 +196,7 @@
       GetSignalKeys(signal_map, kTabGroupPromo);
   EXPECT_THAT(signalKeys, Contains("tab_group_exists"));
   EXPECT_THAT(signalKeys, Contains("number_of_tabs"));
+  EXPECT_THAT(signalKeys, Contains("tab_group_shown_count"));
 #endif
 }
 
@@ -220,6 +221,7 @@
       GetSignalKeys(signal_map, kTabGroupPromo);
   EXPECT_THAT(signalKeys, Not(Contains("tab_group_exists")));
   EXPECT_THAT(signalKeys, Not(Contains("number_of_tabs")));
+  EXPECT_THAT(signalKeys, Not(Contains("tab_group_shown_count")));
 #endif
 }
 
diff --git a/components/segmentation_platform/embedder/home_modules/tab_group_promo.cc b/components/segmentation_platform/embedder/home_modules/tab_group_promo.cc
index 56f4b95..afc40f6 100644
--- a/components/segmentation_platform/embedder/home_modules/tab_group_promo.cc
+++ b/components/segmentation_platform/embedder/home_modules/tab_group_promo.cc
@@ -17,6 +17,17 @@
 // users.
 const int kTabCountLimit = 10;
 
+// The number of times the tab group promo card can be shown to the user in a
+// single day.
+const int kShownCountLimit = 3;
+
+const char kTabGroupPromoHistogramName[] =
+    "MagicStack.Clank.NewTabPage.Module.EducationalTip.Impression";
+
+// TODO(crbug.com/382803396): The enum id of the tab group promo card. Could be
+// referenced after refactor.
+const int kTabGroupPromoId = 7;
+
 }  // namespace
 
 namespace segmentation_platform::home_modules {
@@ -26,17 +37,23 @@
 
 std::map<SignalKey, FeatureQuery> TabGroupPromo::GetInputs() {
   std::map<SignalKey, FeatureQuery> map = {
-      {kTabGroupExists,
-       FeatureQuery::FromCustomInput(MetadataWriter::CustomInput{
-           .tensor_length = 1,
-           .fill_policy = proto::CustomInput::FILL_FROM_INPUT_CONTEXT,
-           .name = kTabGroupExists})},
       {kNumberOfTabs,
        FeatureQuery::FromCustomInput(MetadataWriter::CustomInput{
            .tensor_length = 1,
            .fill_policy = proto::CustomInput::FILL_FROM_INPUT_CONTEXT,
            .name = kNumberOfTabs})},
+      {kTabGroupExists,
+       FeatureQuery::FromCustomInput(MetadataWriter::CustomInput{
+           .tensor_length = 1,
+           .fill_policy = proto::CustomInput::FILL_FROM_INPUT_CONTEXT,
+           .name = kTabGroupExists})},
   };
+
+  DEFINE_UMA_FEATURE_ENUM_COUNT(count, kTabGroupPromoHistogramName,
+                                &kTabGroupPromoId, /* enum_size= */ 1,
+                                /* days= */ 1);
+  map.emplace(kTabGroupPromoShownCount, std::move(count));
+
   return map;
 }
 
@@ -55,15 +72,19 @@
   std::optional<float> resultForTabGroupExists =
       signals.GetSignal(kTabGroupExists);
   std::optional<float> resultForNumberOfTabs = signals.GetSignal(kNumberOfTabs);
+  std::optional<float> resultForTabGroupPromoShownCount =
+      signals.GetSignal(kTabGroupPromoShownCount);
 
   if (!resultForTabGroupExists.has_value() ||
-      !resultForNumberOfTabs.has_value()) {
+      !resultForNumberOfTabs.has_value() ||
+      !resultForTabGroupPromoShownCount.has_value()) {
     result.position = EphemeralHomeModuleRank::kNotShown;
     return result;
   }
 
   if (!*resultForTabGroupExists &&
-      resultForNumberOfTabs.value() > kTabCountLimit) {
+      resultForNumberOfTabs.value() > kTabCountLimit &&
+      resultForTabGroupPromoShownCount.value() < kShownCountLimit) {
     result.position = EphemeralHomeModuleRank::kTop;
     return result;
   }
diff --git a/components/segmentation_platform/embedder/home_modules/tab_group_promo_unittest.cc b/components/segmentation_platform/embedder/home_modules/tab_group_promo_unittest.cc
index 07d0c97..a956576 100644
--- a/components/segmentation_platform/embedder/home_modules/tab_group_promo_unittest.cc
+++ b/components/segmentation_platform/embedder/home_modules/tab_group_promo_unittest.cc
@@ -33,10 +33,12 @@
 TEST_F(TabGroupPromoTest, GetInputsReturnsExpectedInputs) {
   auto card = std::make_unique<TabGroupPromo>(&pref_service_);
   std::map<SignalKey, FeatureQuery> inputs = card->GetInputs();
-  EXPECT_EQ(inputs.size(), 2u);
+  EXPECT_EQ(inputs.size(), 3u);
   // Verify that the inputs map contains the expected keys.
   EXPECT_NE(inputs.find(segmentation_platform::kTabGroupExists), inputs.end());
   EXPECT_NE(inputs.find(segmentation_platform::kNumberOfTabs), inputs.end());
+  EXPECT_NE(inputs.find(segmentation_platform::kTabGroupPromoShownCount),
+            inputs.end());
 }
 
 // Validates that ComputeCardResult() returns kTop when tab group promo
@@ -46,7 +48,8 @@
                             std::make_unique<base::Value>(false));
   auto card = std::make_unique<TabGroupPromo>(&pref_service_);
   AllCardSignals all_signals = CreateAllCardSignals(
-      card.get(), {/* kNumberOfTabs */ 11, /* kTabGroupExists */ 0});
+      card.get(), {/* kNumberOfTabs */ 11, /* kTabGroupExists */ 0,
+                   /* kTabGroupPromoShownCount */ 0});
   CardSelectionSignals card_signal(&all_signals, kTabGroupPromo);
   CardSelectionInfo::ShowResult result = card->ComputeCardResult(card_signal);
   EXPECT_EQ(EphemeralHomeModuleRank::kTop, result.position);
@@ -60,7 +63,8 @@
                             std::make_unique<base::Value>(false));
   auto card = std::make_unique<TabGroupPromo>(&pref_service_);
   AllCardSignals all_signals = CreateAllCardSignals(
-      card.get(), {/* kNumberOfTabs */ 11, /* kTabGroupExists */ 1});
+      card.get(), {/* kNumberOfTabs */ 11, /* kTabGroupExists */ 1,
+                   /* kTabGroupPromoShownCount */ 0});
   CardSelectionSignals card_signal(&all_signals, kTabGroupPromo);
   CardSelectionInfo::ShowResult result = card->ComputeCardResult(card_signal);
   EXPECT_EQ(EphemeralHomeModuleRank::kNotShown, result.position);
@@ -74,7 +78,24 @@
                             std::make_unique<base::Value>(false));
   auto card = std::make_unique<TabGroupPromo>(&pref_service_);
   AllCardSignals all_signals = CreateAllCardSignals(
-      card.get(), {/* kNumberOfTabs */ 10, /* kTabGroupExists */ 0});
+      card.get(), {/* kNumberOfTabs */ 10, /* kTabGroupExists */ 0,
+                   /* kTabGroupPromoShownCount */ 0});
+  CardSelectionSignals card_signal(&all_signals, kTabGroupPromo);
+  CardSelectionInfo::ShowResult result = card->ComputeCardResult(card_signal);
+  EXPECT_EQ(EphemeralHomeModuleRank::kNotShown, result.position);
+}
+
+// Validates that the ComputeCardResult() function returns kNotShown when the
+// card has been displayed to the user more times than the single day limit
+// allows.
+TEST_F(TabGroupPromoTest,
+       TestComputeCardResultWithCardDisabledForHasReachedSessionLimit) {
+  pref_service_.SetUserPref(kTabGroupPromoInteractedPref,
+                            std::make_unique<base::Value>(false));
+  auto card = std::make_unique<TabGroupPromo>(&pref_service_);
+  AllCardSignals all_signals = CreateAllCardSignals(
+      card.get(), {/* kNumberOfTabs */ 11, /* kTabGroupExists */ 0,
+                   /* kTabGroupPromoShownCount */ 3});
   CardSelectionSignals card_signal(&all_signals, kTabGroupPromo);
   CardSelectionInfo::ShowResult result = card->ComputeCardResult(card_signal);
   EXPECT_EQ(EphemeralHomeModuleRank::kNotShown, result.position);
@@ -89,7 +110,8 @@
                             std::make_unique<base::Value>(true));
   auto card = std::make_unique<TabGroupPromo>(&pref_service_);
   AllCardSignals all_signals = CreateAllCardSignals(
-      card.get(), {/* kNumberOfTabs */ 11, /* kTabGroupExists */ 0});
+      card.get(), {/* kNumberOfTabs */ 11, /* kTabGroupExists */ 0,
+                   /* kTabGroupPromoShownCount */ 0});
   CardSelectionSignals card_signal(&all_signals, kTabGroupPromo);
   CardSelectionInfo::ShowResult result = card->ComputeCardResult(card_signal);
   EXPECT_EQ(EphemeralHomeModuleRank::kNotShown, result.position);
diff --git a/components/segmentation_platform/internal/metadata/feature_query.h b/components/segmentation_platform/internal/metadata/feature_query.h
index f54359c9..2ed9774 100644
--- a/components/segmentation_platform/internal/metadata/feature_query.h
+++ b/components/segmentation_platform/internal/metadata/feature_query.h
@@ -23,6 +23,12 @@
       MetadataWriter::UMAFeature::FromValueHistogram(      \
           uma_name, days, proto::Aggregation::COUNT))
 
+#define DEFINE_UMA_FEATURE_ENUM_COUNT(var_name, uma_name, enum_id, enum_size, \
+                                      days)                                   \
+  FeatureQuery var_name = FeatureQuery::FromUMAFeature(                       \
+      MetadataWriter::UMAFeature::FromEnumHistogram(uma_name, days, enum_id,  \
+                                                    enum_size))
+
 #define DEFINE_UMA_FEATURE_SUM(var_name, uma_name, days)             \
   FeatureQuery var_name = FeatureQuery::FromUMAFeature(              \
       MetadataWriter::UMAFeature::FromValueHistogram(uma_name, days, \
diff --git a/components/segmentation_platform/public/android/java/src/org/chromium/components/segmentation_platform/InputContext.java b/components/segmentation_platform/public/android/java/src/org/chromium/components/segmentation_platform/InputContext.java
index f85b76d..295a690e 100644
--- a/components/segmentation_platform/public/android/java/src/org/chromium/components/segmentation_platform/InputContext.java
+++ b/components/segmentation_platform/public/android/java/src/org/chromium/components/segmentation_platform/InputContext.java
@@ -181,6 +181,14 @@
                         urlValues);
     }
 
+    /** Merge all inputs from another InputContext object. */
+    public void mergeFrom(InputContext other) {
+        for (Entry<String, ProcessedValue> entry : other.mMetadata.entrySet()) {
+            assert !mMetadata.containsKey(entry.getKey());
+            mMetadata.put(entry.getKey(), entry.getValue());
+        }
+    }
+
     public ProcessedValue getEntryForTesting(String key) {
         return mMetadata.get(key);
     }
diff --git a/components/segmentation_platform/public/android/java/src/org/chromium/components/segmentation_platform/InputContextTest.java b/components/segmentation_platform/public/android/java/src/org/chromium/components/segmentation_platform/InputContextTest.java
index 57f4d7a8..52798a7 100644
--- a/components/segmentation_platform/public/android/java/src/org/chromium/components/segmentation_platform/InputContextTest.java
+++ b/components/segmentation_platform/public/android/java/src/org/chromium/components/segmentation_platform/InputContextTest.java
@@ -18,7 +18,8 @@
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 
 import org.chromium.base.FakeTimeTestRule;
 import org.chromium.base.TimeUtils;
@@ -32,13 +33,14 @@
 @RunWith(BaseRobolectricTestRunner.class)
 public class InputContextTest {
 
+    @Rule public MockitoRule mMockitoRule = MockitoJUnit.rule();
+
     @Rule public FakeTimeTestRule mFakeTimeTestRule = new FakeTimeTestRule();
 
     @Mock InputContext.Natives mNativeMock;
 
     @Before
     public void setUp() {
-        MockitoAnnotations.initMocks(this);
         InputContextJni.setInstanceForTesting(mNativeMock);
     }
 
@@ -162,4 +164,32 @@
         assertTrue(keyValuePairs.contains(new Pair<>("zero_int_param", 0)));
         assertTrue(keyValuePairs.contains(new Pair<>("large_int_param", Integer.MAX_VALUE)));
     }
+
+    @Test
+    public void mergeInputContext() {
+        InputContext inputContext = new InputContext();
+
+        inputContext.addEntry("int_param", ProcessedValue.fromInt(1));
+        inputContext.addEntry("negative_float_param", ProcessedValue.fromFloat(-4.0f));
+        inputContext.addEntry("string_param", ProcessedValue.fromString("StringValue"));
+
+        InputContext another = new InputContext();
+
+        another.addEntry("second_float_param", ProcessedValue.fromFloat(2));
+        another.addEntry("second_int_param", ProcessedValue.fromInt(21));
+        another.addEntry("time_param", ProcessedValue.fromTimeMillis(100));
+        another.addEntry("third_float_param", ProcessedValue.fromFloat(100));
+
+        inputContext.mergeFrom(another);
+
+        assertEquals(4, another.getSizeForTesting());
+
+        assertEquals(7, inputContext.getSizeForTesting());
+        assertEquals(1, inputContext.getEntryForTesting("int_param").intValue);
+        assertEquals(21, inputContext.getEntryForTesting("second_int_param").intValue);
+        assertEquals(-4, inputContext.getEntryForTesting("negative_float_param").floatValue, 0.01);
+        assertEquals(2, inputContext.getEntryForTesting("second_float_param").floatValue, 0.01);
+        assertEquals(100, inputContext.getEntryForTesting("third_float_param").floatValue, 0.01);
+        assertEquals("StringValue", inputContext.getEntryForTesting("string_param").stringValue);
+    }
 }
diff --git a/components/test/data/web_database/unit_tests_bundle_data.filelist b/components/test/data/web_database/unit_tests_bundle_data.filelist
index 6fcf1e0..aa665a6 100644
--- a/components/test/data/web_database/unit_tests_bundle_data.filelist
+++ b/components/test/data/web_database/unit_tests_bundle_data.filelist
@@ -41,6 +41,7 @@
 //components/test/data/web_database/version_134.sql
 //components/test/data/web_database/version_135.sql
 //components/test/data/web_database/version_136.sql
+//components/test/data/web_database/version_137.sql
 //components/test/data/web_database/version_82.sql
 //components/test/data/web_database/version_83.sql
 //components/test/data/web_database/version_84.sql
diff --git a/components/test/data/web_database/version_137.sql b/components/test/data/web_database/version_137.sql
new file mode 100644
index 0000000..a57b7fa
--- /dev/null
+++ b/components/test/data/web_database/version_137.sql
@@ -0,0 +1,41 @@
+PRAGMA foreign_keys=OFF;
+BEGIN TRANSACTION;
+CREATE TABLE meta(key LONGVARCHAR NOT NULL UNIQUE PRIMARY KEY, value LONGVARCHAR);
+INSERT INTO meta VALUES('mmap_status','-1');
+INSERT INTO meta VALUES('version','137');
+INSERT INTO meta VALUES('last_compatible_version','135');
+INSERT INTO meta VALUES('Builtin Keyword Version','145');
+INSERT INTO meta VALUES('Starter Pack Keyword Version','5');
+CREATE TABLE token_service (service VARCHAR PRIMARY KEY NOT NULL,encrypted_token BLOB, binding_key BLOB);
+CREATE TABLE autofill (name VARCHAR, value VARCHAR, value_lower VARCHAR, date_created INTEGER DEFAULT 0, date_last_used INTEGER DEFAULT 0, count INTEGER DEFAULT 1, PRIMARY KEY (name, value));
+CREATE TABLE credit_cards (guid VARCHAR PRIMARY KEY, name_on_card VARCHAR, expiration_month INTEGER, expiration_year INTEGER, card_number_encrypted BLOB, date_modified INTEGER NOT NULL DEFAULT 0, origin VARCHAR DEFAULT '', use_count INTEGER NOT NULL DEFAULT 0, use_date INTEGER NOT NULL DEFAULT 0, billing_address_id VARCHAR, nickname VARCHAR);
+CREATE TABLE local_ibans (guid VARCHAR PRIMARY KEY, use_count INTEGER NOT NULL DEFAULT 0, use_date INTEGER NOT NULL DEFAULT 0, value_encrypted VARCHAR, nickname VARCHAR);
+CREATE TABLE masked_credit_cards (id VARCHAR, name_on_card VARCHAR, network VARCHAR, last_four VARCHAR, exp_month INTEGER DEFAULT 0, exp_year INTEGER DEFAULT 0, bank_name VARCHAR, nickname VARCHAR, card_issuer INTEGER DEFAULT 0, instrument_id INTEGER DEFAULT 0, virtual_card_enrollment_state INTEGER DEFAULT 0, card_art_url VARCHAR, product_description VARCHAR, card_issuer_id VARCHAR, virtual_card_enrollment_type INTEGER DEFAULT 0, product_terms_url VARCHAR, card_info_retrieval_enrollment_state INTEGER DEFAULT 0);
+CREATE TABLE server_card_metadata (id VARCHAR NOT NULL, use_count INTEGER NOT NULL DEFAULT 0, use_date INTEGER NOT NULL DEFAULT 0, billing_address_id VARCHAR);
+CREATE TABLE autofill_sync_metadata (model_type INTEGER NOT NULL, storage_key VARCHAR NOT NULL, value BLOB, PRIMARY KEY (model_type, storage_key));
+CREATE TABLE autofill_model_type_state (model_type INTEGER NOT NULL PRIMARY KEY, value BLOB);
+CREATE TABLE payments_customer_data (customer_id VARCHAR);
+CREATE TABLE server_card_cloud_token_data (id VARCHAR, suffix VARCHAR, exp_month INTEGER DEFAULT 0, exp_year INTEGER DEFAULT 0, card_art_url VARCHAR, instrument_token VARCHAR);
+CREATE TABLE offer_data (offer_id UNSIGNED LONG, offer_reward_amount VARCHAR, expiry UNSIGNED LONG, offer_details_url VARCHAR, merchant_domain VARCHAR, promo_code VARCHAR, value_prop_text VARCHAR, see_details_text VARCHAR, usage_instructions_text VARCHAR);
+CREATE TABLE offer_eligible_instrument (offer_id UNSIGNED LONG, instrument_id UNSIGNED LONG);
+CREATE TABLE offer_merchant_domain (offer_id UNSIGNED LONG, merchant_domain VARCHAR);
+CREATE TABLE addresses (guid VARCHAR PRIMARY KEY, use_count INTEGER NOT NULL DEFAULT 0, use_date INTEGER NOT NULL DEFAULT 0, date_modified INTEGER NOT NULL DEFAULT 0, language_code VARCHAR, label VARCHAR, initial_creator_id INTEGER DEFAULT 0, last_modifier_id INTEGER DEFAULT 0, use_date2 INTEGER, use_date3 INTEGER, record_type INTEGER);
+CREATE TABLE address_type_tokens (guid VARCHAR, type INTEGER, value VARCHAR, verification_status INTEGER DEFAULT 0, observations BLOB, PRIMARY KEY (guid, type));
+CREATE TABLE virtual_card_usage_data (id VARCHAR PRIMARY KEY, instrument_id INTEGER DEFAULT 0, merchant_domain VARCHAR, last_four VARCHAR);
+CREATE TABLE local_stored_cvc (guid VARCHAR PRIMARY KEY NOT NULL, value_encrypted VARCHAR NOT NULL, last_updated_timestamp INTEGER NOT NULL);
+CREATE TABLE server_stored_cvc (instrument_id INTEGER PRIMARY KEY NOT NULL, value_encrypted VARCHAR NOT NULL, last_updated_timestamp INTEGER NOT NULL);
+CREATE TABLE masked_bank_accounts (instrument_id INTEGER PRIMARY KEY NOT NULL, bank_name VARCHAR, account_number_suffix VARCHAR, account_type INTEGER DEFAULT 0, display_icon_url VARCHAR, nickname VARCHAR);
+CREATE TABLE masked_bank_accounts_metadata (instrument_id INTEGER NOT NULL, use_count INTEGER NOT NULL DEFAULT 0, use_date INTEGER NOT NULL DEFAULT 0);
+CREATE TABLE masked_ibans (instrument_id VARCHAR PRIMARY KEY NOT NULL, prefix VARCHAR NOT NULL, suffix VARCHAR NOT NULL, nickname VARCHAR);
+CREATE TABLE masked_ibans_metadata (instrument_id VARCHAR PRIMARY KEY NOT NULL, use_count INTEGER NOT NULL DEFAULT 0, use_date INTEGER NOT NULL DEFAULT 0);
+CREATE TABLE keywords (id INTEGER PRIMARY KEY,short_name VARCHAR NOT NULL,keyword VARCHAR NOT NULL,favicon_url VARCHAR NOT NULL,url VARCHAR NOT NULL,safe_for_autoreplace INTEGER,originating_url VARCHAR,date_created INTEGER DEFAULT 0,usage_count INTEGER DEFAULT 0,input_encodings VARCHAR,suggest_url VARCHAR,prepopulate_id INTEGER DEFAULT 0,created_by_policy INTEGER DEFAULT 0,last_modified INTEGER DEFAULT 0,sync_guid VARCHAR,alternate_urls VARCHAR,image_url VARCHAR,search_url_post_params VARCHAR,suggest_url_post_params VARCHAR,image_url_post_params VARCHAR,new_tab_url VARCHAR,last_visited INTEGER DEFAULT 0, created_from_play_api INTEGER DEFAULT 0, is_active INTEGER DEFAULT 0, starter_pack_id INTEGER DEFAULT 0, enforced_by_policy INTEGER DEFAULT 0, featured_by_policy INTEGER DEFAULT 0, url_hash BLOB);
+CREATE INDEX autofill_name ON autofill(name);
+CREATE INDEX autofill_name_value_lower ON autofill(name, value_lower);
+CREATE TABLE benefit_merchant_domains(benefit_id VARCHAR NOT NULL,merchant_domain VARCHAR NOT NULL);
+CREATE TABLE masked_credit_card_benefits(benefit_id VARCHAR PRIMARY KEY NOT NULL,instrument_id INTEGER NOT NULL DEFAULT 0,benefit_type INTEGER NOT NULL DEFAULT 0,benefit_category INTEGER NOT NULL DEFAULT 0,benefit_description VARCHAR NOT NULL,start_time INTEGER,end_time INTEGER);
+CREATE TABLE plus_addresses (profile_id VARCHAR PRIMARY KEY, facet VARCHAR, plus_address VARCHAR);
+CREATE TABLE plus_address_sync_model_type_state (model_type INTEGER PRIMARY KEY, value BLOB);
+CREATE TABLE plus_address_sync_entity_metadata (model_type INTEGER, storage_key VARCHAR, value BLOB, PRIMARY KEY (model_type, storage_key));
+CREATE TABLE generic_payment_instruments (instrument_id INTEGER PRIMARY KEY NOT NULL, serialized_value_encrypted VARCHAR NOT NULL);
+CREATE TABLE payment_instrument_creation_options (id VARCHAR PRIMARY KEY NOT NULL, serialized_value_encrypted VARCHAR NOT NULL);
+COMMIT;
diff --git a/components/update_client/action_runner_unittest.cc b/components/update_client/action_runner_unittest.cc
index acf13d20..44c307d 100644
--- a/components/update_client/action_runner_unittest.cc
+++ b/components/update_client/action_runner_unittest.cc
@@ -29,10 +29,9 @@
 
   bool ran() const { return ran_; }
 
- protected:
+ private:
   ~FakeActionHandler() override = default;
 
- private:
   bool ran_ = false;
 };
 
diff --git a/components/update_client/background_downloader_win_unittest.cc b/components/update_client/background_downloader_win_unittest.cc
index 6b9329f4..3d093ac 100644
--- a/components/update_client/background_downloader_win_unittest.cc
+++ b/components/update_client/background_downloader_win_unittest.cc
@@ -29,14 +29,10 @@
 }  // namespace
 
 class BackgroundDownloaderWinTest : public testing::Test {
- public:
-  BackgroundDownloaderWinTest() = default;
-  ~BackgroundDownloaderWinTest() override = default;
-
+ protected:
   // Overrides from testing::Test
   void TearDown() override;
 
- protected:
   base::test::TaskEnvironment task_environment_;
   scoped_refptr<BackgroundDownloader> downloader_ =
       base::MakeRefCounted<BackgroundDownloader>(nullptr);
diff --git a/components/update_client/crx_cache_unittest.cc b/components/update_client/crx_cache_unittest.cc
index 5253959..6b4e8f6 100644
--- a/components/update_client/crx_cache_unittest.cc
+++ b/components/update_client/crx_cache_unittest.cc
@@ -36,10 +36,6 @@
 }  // namespace
 
 class CrxCacheTest : public testing::Test {
- public:
-  CrxCacheTest() = default;
-  ~CrxCacheTest() override = default;
-
  private:
   base::test::TaskEnvironment env_;
 };
diff --git a/components/update_client/op_download_unittest.cc b/components/update_client/op_download_unittest.cc
index a33b41f..ad4eb9f 100644
--- a/components/update_client/op_download_unittest.cc
+++ b/components/update_client/op_download_unittest.cc
@@ -89,7 +89,6 @@
 class OpDownloadTest : public testing::Test {
  public:
   OpDownloadTest() { RegisterPersistedDataPrefs(pref_->registry()); }
-  ~OpDownloadTest() override = default;
 
   // Overrides from testing::Test.
   void SetUp() override { ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); }
diff --git a/components/update_client/ping_manager_unittest.cc b/components/update_client/ping_manager_unittest.cc
index 66a1d2ee..309e834 100644
--- a/components/update_client/ping_manager_unittest.cc
+++ b/components/update_client/ping_manager_unittest.cc
@@ -40,9 +40,8 @@
 
 class PingManagerTest : public testing::Test,
                         public testing::WithParamInterface<bool> {
- public:
+ protected:
   PingManagerTest();
-  ~PingManagerTest() override = default;
 
   base::OnceClosure MakePingCallback();
   scoped_refptr<UpdateContext> MakeMockUpdateContext() const;
@@ -53,7 +52,6 @@
 
   void PingSentCallback(int error, const std::string& response);
 
- protected:
   void Quit();
   void RunThreads();
 
@@ -61,14 +59,14 @@
   scoped_refptr<PingManager> ping_manager_;
 
  private:
-  base::test::TaskEnvironment task_environment_;
+  base::test::TaskEnvironment task_environment_{
+      base::test::TaskEnvironment::MainThreadType::IO};
+  std::unique_ptr<TestingPrefServiceSimple> pref_{
+      std::make_unique<TestingPrefServiceSimple>()};
   base::OnceClosure quit_closure_;
-  std::unique_ptr<TestingPrefServiceSimple> pref_;
 };
 
-PingManagerTest::PingManagerTest()
-    : task_environment_(base::test::TaskEnvironment::MainThreadType::IO) {
-  pref_ = std::make_unique<TestingPrefServiceSimple>();
+PingManagerTest::PingManagerTest() {
   RegisterPersistedDataPrefs(pref_->registry());
 }
 
diff --git a/components/update_client/unpacker_unittest.cc b/components/update_client/unpacker_unittest.cc
index 88c6d6b..27ef2b3 100644
--- a/components/update_client/unpacker_unittest.cc
+++ b/components/update_client/unpacker_unittest.cc
@@ -26,13 +26,7 @@
 namespace update_client {
 
 class UnpackerTest : public testing::Test {
- public:
-  UnpackerTest() = default;
-  ~UnpackerTest() override = default;
-
-  void UnpackComplete(const Unpacker::Result& result);
-
- protected:
+ private:
   base::test::TaskEnvironment env_;
 };
 
diff --git a/components/update_client/update_client_unittest.cc b/components/update_client/update_client_unittest.cc
index d964e37c..2e07336 100644
--- a/components/update_client/update_client_unittest.cc
+++ b/components/update_client/update_client_unittest.cc
@@ -275,13 +275,8 @@
 }
 
 class UpdateClientTest : public testing::Test {
- public:
-  UpdateClientTest(const UpdateClientTest&) = delete;
-  UpdateClientTest& operator=(const UpdateClientTest&) = delete;
-
  protected:
   UpdateClientTest();
-  ~UpdateClientTest() override = default;
 
   void RunThreads();
 
diff --git a/components/user_education/common/user_education_features.cc b/components/user_education/common/user_education_features.cc
index 8ebfeba..c35dba7 100644
--- a/components/user_education/common/user_education_features.cc
+++ b/components/user_education/common/user_education_features.cc
@@ -76,7 +76,7 @@
 
 BASE_FEATURE(kUserEducationExperienceVersion2,
              "UserEducationExperienceVersion2",
-             base::FEATURE_DISABLED_BY_DEFAULT);
+             base::FEATURE_ENABLED_BY_DEFAULT);
 
 BASE_FEATURE(kUserEducationExperienceVersion2Point5,
              "kUserEducationExperienceVersion2Point5",
diff --git a/components/viz/common/frame_timing_details.h b/components/viz/common/frame_timing_details.h
index be68cca69..90d4e77 100644
--- a/components/viz/common/frame_timing_details.h
+++ b/components/viz/common/frame_timing_details.h
@@ -6,6 +6,7 @@
 #define COMPONENTS_VIZ_COMMON_FRAME_TIMING_DETAILS_H_
 
 #include "base/time/time.h"
+#include "components/viz/common/frame_sinks/begin_frame_args.h"
 #include "ui/gfx/presentation_feedback.h"
 #include "ui/gfx/swap_result.h"
 
@@ -23,6 +24,7 @@
   base::TimeTicks draw_start_timestamp;
   gfx::SwapTimings swap_timings;
   gfx::PresentationFeedback presentation_feedback;
+  BeginFrameId frame_id;
 };
 
 }  // namespace viz
diff --git a/components/viz/service/display/skia_renderer.cc b/components/viz/service/display/skia_renderer.cc
index 9661746..0676a6f9 100644
--- a/components/viz/service/display/skia_renderer.cc
+++ b/components/viz/service/display/skia_renderer.cc
@@ -100,6 +100,7 @@
 #include "ui/gfx/geometry/transform_util.h"
 #include "ui/gfx/gpu_fence_handle.h"
 #include "ui/gfx/hdr_metadata.h"
+#include "ui/gfx/swap_result.h"
 
 #if BUILDFLAG(IS_ANDROID)
 #include "components/viz/service/display/overlay_processor_surface_control.h"
@@ -1243,21 +1244,37 @@
     overlay_processor_->OnSwapBuffersComplete(params.swap_response.result);
   }
 
+  // SWAP_SKIPPED is the only case where presentation is skipped. Even if
+  // presentation wasn't successful for some other results the GPU thread
+  // still ran presentation logic.
+  bool did_present =
+      params.swap_response.result != gfx::SwapResult::SWAP_SKIPPED;
   if (buffer_queue_) {
     if (params.swap_response.result ==
         gfx::SwapResult::SWAP_NAK_RECREATE_BUFFERS) {
       buffer_queue_->RecreateBuffers();
     }
-    buffer_queue_->SwapBuffersComplete();
+
+    buffer_queue_->SwapBuffersComplete(did_present);
   }
 
 #if BUILDFLAG(ENABLE_VULKAN) && BUILDFLAG(IS_CHROMEOS) && \
     BUILDFLAG(USE_V4L2_CODEC)
   if (protected_buffer_queue_) {
-    protected_buffer_queue_->SwapBuffersComplete();
+    protected_buffer_queue_->SwapBuffersComplete(did_present);
   }
 #endif
 
+  if (!did_present) {
+    CHECK(release_fence.is_null());
+    // Current pending overlays aren't going to be presented so unlock them
+    // immediately. `committed_overlay_locks_` remains unchanged.
+    DisplayResourceProvider::ScopedBatchReturnResources returner(
+        resource_provider_.get(), /*allow_access_to_gpu_thread=*/true);
+    pending_overlay_locks_.pop_front();
+    return;
+  }
+
   if (!release_fence.is_null()) {
     // Set release fences to return overlay resources for last frame.
     for (auto& lock : committed_overlay_locks_) {
diff --git a/components/viz/service/display_embedder/buffer_queue.cc b/components/viz/service/display_embedder/buffer_queue.cc
index 8fd512b..b5ff200b 100644
--- a/components/viz/service/display_embedder/buffer_queue.cc
+++ b/components/viz/service/display_embedder/buffer_queue.cc
@@ -75,15 +75,24 @@
   in_flight_buffers_.push_back(std::move(current_buffer_));
 }
 
-void BufferQueue::SwapBuffersComplete() {
-  DCHECK(!in_flight_buffers_.empty());
-
-  if (displayed_buffer_) {
-    available_buffers_.push_back(std::move(displayed_buffer_));
-  }
-  displayed_buffer_ = std::move(in_flight_buffers_.front());
+void BufferQueue::SwapBuffersComplete(bool did_present) {
+  CHECK(!in_flight_buffers_.empty());
+  auto in_flight_buffer = std::move(in_flight_buffers_.front());
   in_flight_buffers_.pop_front();
 
+  if (did_present) {
+    if (displayed_buffer_) {
+      available_buffers_.push_back(std::move(displayed_buffer_));
+    }
+    displayed_buffer_ = std::move(in_flight_buffer);
+  } else {
+    // The GPU thread decided to skip swap. The last in flight buffer was not
+    // presented so don't switch out `displayed_buffer_`.
+    if (in_flight_buffer) {
+      available_buffers_.push_back(std::move(in_flight_buffer));
+    }
+  }
+
   if (buffers_can_be_purged_) {
     for (auto& buffer : available_buffers_) {
       if (SetBufferPurgeable(*buffer, true)) {
diff --git a/components/viz/service/display_embedder/buffer_queue.h b/components/viz/service/display_embedder/buffer_queue.h
index 54d7477..a7a9e38 100644
--- a/components/viz/service/display_embedder/buffer_queue.h
+++ b/components/viz/service/display_embedder/buffer_queue.h
@@ -72,10 +72,11 @@
 
   // Called by the user of this object to indicate that a previous request to
   // swap buffers has completed. This allows us to correctly keep track of the
-  // state of the buffers: the buffer currently marked as being displayed will
-  // now marked as available, and the next buffer marked as in-flight will now
-  // be marked as displayed.
-  void SwapBuffersComplete();
+  // state of the buffers. If `did_present` was true, the buffer currently
+  // marked as being displayed will now marked as available, and the next buffer
+  // marked as in-flight will now be marked as displayed. Otherwise, next
+  // in-flight will be marked as available and displayed will be unchanged.
+  void SwapBuffersComplete(bool did_present);
 
   // Called when SwapBuffers is skipped this frame. Damages allocated buffers,
   // but does not advance |in_flight_buffers_| or |current_buffer_|. We don't
diff --git a/components/viz/service/display_embedder/buffer_queue_unittest.cc b/components/viz/service/display_embedder/buffer_queue_unittest.cc
index 82b9743..fbab3f5 100644
--- a/components/viz/service/display_embedder/buffer_queue_unittest.cc
+++ b/components/viz/service/display_embedder/buffer_queue_unittest.cc
@@ -115,7 +115,7 @@
     // damage rects.
     auto mailbox = buffer_queue_->GetCurrentBuffer();
     buffer_queue_->SwapBuffers(damage);
-    buffer_queue_->SwapBuffersComplete();
+    buffer_queue_->SwapBuffersComplete(/*did_present=*/true);
     return mailbox;
   }
 
@@ -279,7 +279,7 @@
   buffer_queue_->SwapBuffers(screen_rect);
 
   EXPECT_EQ(1U, in_flight_buffers().size());
-  buffer_queue_->SwapBuffersComplete();
+  buffer_queue_->SwapBuffersComplete(/*did_present=*/true);
 
   EXPECT_EQ(0U, in_flight_buffers().size());
   EXPECT_FALSE(displayed_frame()->mailbox.IsZero());
@@ -292,7 +292,7 @@
   EXPECT_TRUE(CheckUnique());
   EXPECT_EQ(1U, in_flight_buffers().size());
   EXPECT_FALSE(displayed_frame()->mailbox.IsZero());
-  buffer_queue_->SwapBuffersComplete();
+  buffer_queue_->SwapBuffersComplete(/*did_present=*/true);
   EXPECT_TRUE(CheckUnique());
   EXPECT_EQ(0U, in_flight_buffers().size());
   EXPECT_EQ(1U, available_buffers().size());
@@ -314,7 +314,7 @@
   EXPECT_FALSE(buffer_queue_->GetCurrentBuffer().IsZero());
   EXPECT_FALSE(displayed_frame());
   buffer_queue_->SwapBuffers(screen_rect);
-  buffer_queue_->SwapBuffersComplete();
+  buffer_queue_->SwapBuffersComplete(/*did_present=*/true);
   EXPECT_FALSE(buffer_queue_->GetCurrentBuffer().IsZero());
   buffer_queue_->SwapBuffers(screen_rect);
 
@@ -326,7 +326,7 @@
   EXPECT_FALSE(buffer_queue_->GetCurrentBuffer().IsZero());
   EXPECT_EQ(1U, in_flight_buffers().size());
   EXPECT_FALSE(displayed_frame()->mailbox.IsZero());
-  buffer_queue_->SwapBuffersComplete();
+  buffer_queue_->SwapBuffersComplete(/*did_present=*/true);
   EXPECT_TRUE(CheckUnique());
   EXPECT_FALSE(buffer_queue_->GetCurrentBuffer().IsZero());
   EXPECT_EQ(0U, in_flight_buffers().size());
@@ -353,17 +353,17 @@
   EXPECT_NE(mailbox, new_mailbox);
 
   EXPECT_EQ(1U, in_flight_buffers().size());
-  buffer_queue_->SwapBuffersComplete();
+  buffer_queue_->SwapBuffersComplete(/*did_present=*/true);
 
   buffer_queue_->SwapBuffers(gfx::Rect());
   // Test SwapBuffers() without calling GetCurrentBuffer().
   buffer_queue_->SwapBuffers(gfx::Rect());
   EXPECT_EQ(2U, in_flight_buffers().size());
 
-  buffer_queue_->SwapBuffersComplete();
+  buffer_queue_->SwapBuffersComplete(/*did_present=*/true);
   EXPECT_EQ(1U, in_flight_buffers().size());
 
-  buffer_queue_->SwapBuffersComplete();
+  buffer_queue_->SwapBuffersComplete(/*did_present=*/true);
   EXPECT_EQ(0U, in_flight_buffers().size());
 }
 
@@ -380,7 +380,7 @@
   EXPECT_EQ(kSwapCount, in_flight_buffers().size());
   for (size_t i = 0; i < kSwapCount; ++i) {
     gpu::Mailbox next_mailbox = in_flight_buffers().front()->mailbox;
-    buffer_queue_->SwapBuffersComplete();
+    buffer_queue_->SwapBuffersComplete(/*did_present=*/true);
     EXPECT_EQ(displayed_frame()->mailbox, next_mailbox);
   }
 }
@@ -405,7 +405,7 @@
   EXPECT_EQ(6, CountBuffers());
 
   for (size_t i = 0; i < kSwapCount; ++i) {
-    buffer_queue_->SwapBuffersComplete();
+    buffer_queue_->SwapBuffersComplete(/*did_present=*/true);
     EXPECT_FALSE(displayed_frame());
   }
 
@@ -434,7 +434,7 @@
   EXPECT_EQ(2 * kSwapCount, in_flight_buffers().size());
 
   for (size_t i = 0; i < kSwapCount; ++i) {
-    buffer_queue_->SwapBuffersComplete();
+    buffer_queue_->SwapBuffersComplete(/*did_present=*/true);
     EXPECT_FALSE(displayed_frame());
   }
 
@@ -442,7 +442,7 @@
 
   for (size_t i = 0; i < kSwapCount; ++i) {
     gpu::Mailbox next_mailbox = in_flight_buffers().front()->mailbox;
-    buffer_queue_->SwapBuffersComplete();
+    buffer_queue_->SwapBuffersComplete(/*did_present=*/true);
     EXPECT_EQ(displayed_frame()->mailbox, next_mailbox);
     EXPECT_TRUE(displayed_frame());
   }
@@ -450,11 +450,11 @@
   for (size_t i = 0; i < kSwapCount; ++i) {
     EXPECT_FALSE(buffer_queue_->GetCurrentBuffer().IsZero());
     buffer_queue_->SwapBuffers(screen_rect);
-    buffer_queue_->SwapBuffersComplete();
+    buffer_queue_->SwapBuffersComplete(/*did_present=*/true);
   }
 }
 
-TEST_F(BufferQueueTest, SwapBuffersSkipped) {
+TEST_F(BufferQueueTest, SwapBuffersSkippedByDisplay) {
   EXPECT_TRUE(buffer_queue_->Reshape(screen_size, kBufferQueueColorSpace,
                                      RenderPassAlphaType::kPremul,
                                      kBufferQueueFormat));
@@ -474,12 +474,43 @@
 
   // Swap on the next frame with no additional damage.
   buffer_queue_->SwapBuffers(gfx::Rect());
-  buffer_queue_->SwapBuffersComplete();
+  buffer_queue_->SwapBuffersComplete(/*did_present=*/true);
 
   // The next frame has the damage from the last SwapBuffersSkipped().
   EXPECT_EQ(buffer_queue_->CurrentBufferDamage(), large_damage);
 }
 
+TEST_F(BufferQueueTest, SwapBuffersSkippedByGpuThread) {
+  EXPECT_TRUE(buffer_queue_->Reshape(screen_size, kBufferQueueColorSpace,
+                                     RenderPassAlphaType::kPremul,
+                                     kBufferQueueFormat));
+
+  // Start with a partially damaged frame.
+  SendDamagedFrame(small_damage);
+  SendDamagedFrame(small_damage);
+  SendDamagedFrame(small_damage);
+  EXPECT_EQ(buffer_queue_->CurrentBufferDamage(), small_damage);
+
+  // Start two swaps to use up the remaining available buffers.
+  auto mailbox1 = buffer_queue_->GetCurrentBuffer();
+  buffer_queue_->SwapBuffers(small_damage);
+  buffer_queue_->GetCurrentBuffer();
+  buffer_queue_->SwapBuffers(small_damage);
+
+  // There are no more available buffers at this point. Have the fist swap
+  // be skipped by the  GPU thread. After that verify that mailbox1 has been
+  // recycled and is available for the next swap
+  buffer_queue_->SwapBuffersComplete(/*did_present=*/false);
+  EXPECT_EQ(mailbox1, buffer_queue_->GetCurrentBuffer());
+
+  // The second pending swap also fails since it didn't have full damage.
+  buffer_queue_->SwapBuffersComplete(/*did_present=*/false);
+
+  // Have a swap complete successfully since it now has full damage.
+  buffer_queue_->SwapBuffers(gfx::Rect(screen_size));
+  buffer_queue_->SwapBuffersComplete(/*did_present=*/true);
+}
+
 TEST_F(BufferQueueTest, EnsureMinNumberOfBuffers) {
   EXPECT_EQ(CountBuffers(), 0);
 
@@ -546,14 +577,14 @@
   EXPECT_EQ(last_swapped1, buffer_queue_->GetLastSwappedBuffer());
   buffer_queue_->SwapBuffers(screen_rect);
   EXPECT_EQ(last_swapped1, buffer_queue_->GetLastSwappedBuffer());
-  buffer_queue_->SwapBuffersComplete();
+  buffer_queue_->SwapBuffersComplete(/*did_present=*/true);
   EXPECT_EQ(buffer_queue_->GetLastSwappedBuffer(), mailbox1);
 
   // Swap another frame. Last swapped only updates after SwapBuffersComplete().
   gpu::Mailbox mailbox2 = buffer_queue_->GetCurrentBuffer();
   buffer_queue_->SwapBuffers(screen_rect);
   EXPECT_EQ(buffer_queue_->GetLastSwappedBuffer(), mailbox1);
-  buffer_queue_->SwapBuffersComplete();
+  buffer_queue_->SwapBuffersComplete(/*did_present=*/true);
   EXPECT_EQ(buffer_queue_->GetLastSwappedBuffer(), mailbox2);
 
   // Swap a third frame. Last swapped only updates after SwapBuffersComplete().
@@ -562,20 +593,20 @@
   EXPECT_EQ(mailbox3, last_swapped1);
   buffer_queue_->SwapBuffers(screen_rect);
   EXPECT_EQ(buffer_queue_->GetLastSwappedBuffer(), mailbox2);
-  buffer_queue_->SwapBuffersComplete();
+  buffer_queue_->SwapBuffersComplete(/*did_present=*/true);
   EXPECT_EQ(buffer_queue_->GetLastSwappedBuffer(), mailbox3);
 
   // Empty swap, Last swapped stays the same.
   buffer_queue_->SwapBuffers(gfx::Rect());
   EXPECT_EQ(buffer_queue_->GetLastSwappedBuffer(), mailbox3);
-  buffer_queue_->SwapBuffersComplete();
+  buffer_queue_->SwapBuffersComplete(/*did_present=*/true);
   EXPECT_EQ(buffer_queue_->GetLastSwappedBuffer(), mailbox3);
 
   // Swap a fourth frame. Last swapped only updates after SwapBuffersComplete().
   EXPECT_EQ(buffer_queue_->GetCurrentBuffer(), mailbox1);
   buffer_queue_->SwapBuffers(screen_rect);
   EXPECT_EQ(buffer_queue_->GetLastSwappedBuffer(), mailbox3);
-  buffer_queue_->SwapBuffersComplete();
+  buffer_queue_->SwapBuffersComplete(/*did_present=*/true);
   EXPECT_EQ(buffer_queue_->GetLastSwappedBuffer(), mailbox1);
 }
 
@@ -594,19 +625,19 @@
   buffer_queue_->SwapBuffers(small_damage);
 
   buffer_queue_->RecreateBuffers();
-  buffer_queue_->SwapBuffersComplete();  // mb1
+  buffer_queue_->SwapBuffersComplete(/*did_present=*/true);  // mb1
 
   auto mb4 = buffer_queue_->GetCurrentBuffer();
   EXPECT_THAT(original_buffers, Not(Contains(mb4)));
   buffer_queue_->SwapBuffers(small_damage);
 
-  buffer_queue_->SwapBuffersComplete();  // mb2
+  buffer_queue_->SwapBuffersComplete(/*did_present=*/true);  // mb2
 
   auto mb5 = buffer_queue_->GetCurrentBuffer();
   EXPECT_THAT(original_buffers, Not(Contains(mb5)));
   buffer_queue_->SwapBuffers(small_damage);
-  buffer_queue_->SwapBuffersComplete();  // mb4
-  buffer_queue_->SwapBuffersComplete();  // mb5
+  buffer_queue_->SwapBuffersComplete(/*did_present=*/true);  // mb4
+  buffer_queue_->SwapBuffersComplete(/*did_present=*/true);  // mb5
 
   auto mb6 = SendDamagedFrame(small_damage);
   EXPECT_THAT(original_buffers, Not(Contains(mb6)));
@@ -634,7 +665,7 @@
   // All buffers are destroyed, and GetLastSwappedBuffer should not recreate
   // them.
   EXPECT_TRUE(buffer_queue_->GetLastSwappedBuffer().IsZero());
-  buffer_queue_->SwapBuffersComplete();  // mb1
+  buffer_queue_->SwapBuffersComplete(/*did_present=*/true);  // mb1
   EXPECT_TRUE(buffer_queue_->GetLastSwappedBuffer().IsZero());
   // Reshape should not reallocate buffers.
   EXPECT_TRUE(buffer_queue_->Reshape(gfx::Size(20, 20), kBufferQueueColorSpace,
@@ -675,19 +706,19 @@
 
   // When the next swap finishes `mb3` is available and gets marked purgeable.
   EXPECT_CALL(mock, Call(mb3, true));
-  buffer_queue_->SwapBuffersComplete();
+  buffer_queue_->SwapBuffersComplete(/*did_present=*/true);
   EXPECT_EQ(buffer_queue_->GetLastSwappedBuffer(), mb1);
 
   // When the next swap finishes `mb1` is available and gets marked purgeable.
   EXPECT_CALL(mock, Call(mb1, true));
-  buffer_queue_->SwapBuffersComplete();
+  buffer_queue_->SwapBuffersComplete(/*did_present=*/true);
   EXPECT_EQ(buffer_queue_->GetLastSwappedBuffer(), mb2);
 
   // `mb2` is last swapped buffer now and there are no pending swaps. Push an
   // empty swap and complete that so `mb2` is available.
   EXPECT_CALL(mock, Call(mb2, true));
   buffer_queue_->SwapBuffers(small_damage);
-  buffer_queue_->SwapBuffersComplete();
+  buffer_queue_->SwapBuffersComplete(/*did_present=*/true);
 
   // The next non-delegated draw will get a primary plane buffer. This will
   // cause all three buffers to be marked as not purgeable anymore.
@@ -718,7 +749,7 @@
   buffer_queue_->SwapBuffers(small_damage);
   buffer_queue_->GetCurrentBuffer();
   buffer_queue_->SwapBuffers(small_damage);
-  buffer_queue_->SwapBuffersComplete();
+  buffer_queue_->SwapBuffersComplete(/*did_present=*/true);
   buffer_queue_->GetCurrentBuffer();
   buffer_queue_->SwapBuffers(small_damage);
   EXPECT_FALSE(buffer_queue_->GetLastSwappedBuffer().IsZero());
@@ -733,8 +764,8 @@
 
   // Complete the last two swaps. Since the reshape deleted all the buffers
   // they will not be marked as purgeable.
-  buffer_queue_->SwapBuffersComplete();
-  buffer_queue_->SwapBuffersComplete();
+  buffer_queue_->SwapBuffersComplete(/*did_present=*/true);
+  buffer_queue_->SwapBuffersComplete(/*did_present=*/true);
 
   // Reset callback since it points to stack allocated mock.
   skia_output_surface_->SetSharedImagePurgeableCallback({});
diff --git a/components/viz/service/display_embedder/skia_output_device.h b/components/viz/service/display_embedder/skia_output_device.h
index 4edbeddb..8ad1c807 100644
--- a/components/viz/service/display_embedder/skia_output_device.h
+++ b/components/viz/service/display_embedder/skia_output_device.h
@@ -169,8 +169,8 @@
   // This should be called when the GPU thread decides to skip a swap that was
   // invoked by the viz thread to ensure that we still run the relevant metrics
   // bookkeeping.
-  virtual void SwapBuffersSkipped(BufferPresentedCallback feedback,
-                                  OutputSurfaceFrame frame);
+  void SwapBuffersSkipped(BufferPresentedCallback feedback,
+                          OutputSurfaceFrame frame);
 
   bool is_emulated_rgbx() const { return is_emulated_rgbx_; }
 
diff --git a/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc b/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
index edc45d5..f883b5ab 100644
--- a/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
+++ b/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
@@ -2352,6 +2352,7 @@
           frame->sub_buffer_rect->size() != size_) {
         output_device_->SwapBuffersSkipped(buffer_presented_callback_,
                                            std::move(*frame));
+        overlays_.clear();
         destroy_after_swap_.clear();
         return;
       }
diff --git a/components/viz/service/frame_sinks/compositor_frame_sink_support.cc b/components/viz/service/frame_sinks/compositor_frame_sink_support.cc
index 2f9a7f90..021ad24 100644
--- a/components/viz/service/frame_sinks/compositor_frame_sink_support.cc
+++ b/components/viz/service/frame_sinks/compositor_frame_sink_support.cc
@@ -1005,6 +1005,9 @@
   pending_received_frame_times_[frame.metadata.frame_token]->set_surface_id(
       last_created_surface_id_);
 
+  pending_received_frame_times_[frame.metadata.frame_token]->set_frame_id(
+      frame.metadata.begin_frame_ack.frame_id);
+
   const int64_t trace_id = ~frame.metadata.begin_frame_ack.trace_id;
   TRACE_EVENT_WITH_FLOW1(TRACE_DISABLED_BY_DEFAULT("viz.hit_testing_flow"),
                          "Event.Pipeline", TRACE_ID_GLOBAL(trace_id),
@@ -1132,6 +1135,7 @@
   details.draw_start_timestamp = draw_start_timestamp;
   details.swap_timings = swap_timings;
   details.presentation_feedback = feedback;
+  details.frame_id = received_frame_timestamp->second->frame_id();
   AdjustPresentationFeedback(&details.presentation_feedback,
                              swap_timings.swap_start);
   // Override with the throttled interval if one has been set. Otherwise,
@@ -1890,4 +1894,9 @@
   surface_manager_->RemoveObserver(this);
 }
 
+void CompositorFrameSinkSupport::PendingFrameDetails::set_frame_id(
+    BeginFrameId frame_id) {
+  frame_id_ = frame_id;
+}
+
 }  // namespace viz
diff --git a/components/viz/service/frame_sinks/compositor_frame_sink_support.h b/components/viz/service/frame_sinks/compositor_frame_sink_support.h
index aea1685d..e3ed06a 100644
--- a/components/viz/service/frame_sinks/compositor_frame_sink_support.h
+++ b/components/viz/service/frame_sinks/compositor_frame_sink_support.h
@@ -491,12 +491,15 @@
     // surface, to set `frame_embed_timestamp_`.
     void set_surface_id(SurfaceId surface_id);
 
+    void set_frame_id(BeginFrameId frame_id);
+
     base::TimeTicks frame_submit_timestamp() const {
       return frame_submit_timestamp_;
     }
     base::TimeTicks frame_embed_timestamp() const {
       return frame_embed_timestamp_;
     }
+    BeginFrameId frame_id() const { return frame_id_; }
 
    private:
     void OnAddedSurfaceReference(const SurfaceId& parent_id,
@@ -513,6 +516,12 @@
     // The surface ID that is associated with the frame.
     SurfaceId surface_id_;
     const raw_ptr<SurfaceManager> surface_manager_;
+    // This frame id maps to BeginFrameId during compositor frame submission in
+    // order to preserve frame submission info across atypical rendering flows.
+    // Values will be propagated through presentation promise feedback to
+    // renderer main thread, and being useful there as an indicator for
+    // unreliable presentation time.
+    BeginFrameId frame_id_;
   };
 
   // Maps |frame_token| to the timestamps when that frame was received and
diff --git a/components/webdata/DEPS b/components/webdata/DEPS
index 4b50c87..1470546 100644
--- a/components/webdata/DEPS
+++ b/components/webdata/DEPS
@@ -10,6 +10,7 @@
     "+components/password_manager/core/browser/webdata",
     "+components/plus_addresses/webdata",
     "+components/search_engines/keyword_table.h",
+    "+components/search_engines/template_url_data.h",
     "+components/signin/public/webdata",
   ],
 }
diff --git a/components/webdata/common/web_database.h b/components/webdata/common/web_database.h
index d5559a9c..952ff21 100644
--- a/components/webdata/common/web_database.h
+++ b/components/webdata/common/web_database.h
@@ -33,7 +33,7 @@
   // Note: when changing the current version number, corresponding changes must
   // happen in the unit tests, and new migration test added to
   // `WebDatabaseMigrationTest`.
-  static constexpr int kCurrentVersionNumber = 136;
+  static constexpr int kCurrentVersionNumber = 137;
 
   // To support users who are upgrading from older versions of Chrome, we enable
   // migrating from any database version newer than `kDeprecatedVersionNumber`.
diff --git a/components/webdata/common/web_database_migration_unittest.cc b/components/webdata/common/web_database_migration_unittest.cc
index 9f7a5d1c..7ddc582 100644
--- a/components/webdata/common/web_database_migration_unittest.cc
+++ b/components/webdata/common/web_database_migration_unittest.cc
@@ -11,6 +11,8 @@
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
+#include "base/test/metrics/histogram_tester.h"
+#include "base/test/scoped_feature_list.h"
 #include "base/time/time.h"
 #include "base/values.h"
 #include "components/autofill/core/browser/autofill_type.h"
@@ -23,8 +25,11 @@
 #include "components/autofill/core/browser/webdata/autofill_sync_metadata_table.h"
 #include "components/autofill/core/browser/webdata/payments/payments_autofill_table.h"
 #include "components/autofill/core/common/autofill_constants.h"
+#include "components/os_crypt/async/browser/test_utils.h"
+#include "components/os_crypt/async/common/test_encryptor.h"
 #include "components/plus_addresses/webdata/plus_address_table.h"
 #include "components/search_engines/keyword_table.h"
+#include "components/search_engines/template_url_data.h"
 #include "components/signin/public/webdata/token_service_table.h"
 #include "components/webdata/common/web_database.h"
 #include "sql/statement.h"
@@ -68,7 +73,8 @@
 // description.
 class WebDatabaseMigrationTest : public testing::Test {
  public:
-  WebDatabaseMigrationTest() = default;
+  WebDatabaseMigrationTest()
+      : encryptor_(os_crypt_async::GetTestEncryptorForTesting()) {}
 
   WebDatabaseMigrationTest(const WebDatabaseMigrationTest&) = delete;
   WebDatabaseMigrationTest& operator=(const WebDatabaseMigrationTest&) = delete;
@@ -98,7 +104,7 @@
     db.AddTable(&token_service_table);
 
     // This causes the migration to occur.
-    ASSERT_EQ(sql::INIT_OK, db.Init(GetDatabasePath()));
+    ASSERT_EQ(sql::INIT_OK, db.Init(GetDatabasePath(), &encryptor_));
   }
 
  protected:
@@ -141,6 +147,8 @@
   //   > .dump
   void LoadDatabase(const base::FilePath::StringType& file);
 
+  os_crypt_async::TestEncryptor encryptor_;
+
  private:
   base::ScopedTempDir temp_dir_;
 };
@@ -1498,3 +1506,78 @@
         "payment_instrument_creation_options", "serialized_value_encrypted"));
   }
 }
+
+class WebDatabaseMigrationTestEncryption
+    : public WebDatabaseMigrationTest,
+      public ::testing::WithParamInterface<bool> {
+ protected:
+  auto& IsEncryptionAvailable() { return GetParam(); }
+};
+
+// Tests addition of the url_hash column to the keywords table.
+TEST_P(WebDatabaseMigrationTestEncryption, MigrateVersion136ToCurrent) {
+  // The feature is tested elsewhere, force enable to make sure expectations
+  // match.
+  base::test::ScopedFeatureList enable_verification(
+      features::kKeywordTableHashVerification);
+
+  encryptor_.set_encryption_available_for_testing(IsEncryptionAvailable());
+  encryptor_.set_decryption_available_for_testing(IsEncryptionAvailable());
+
+  ASSERT_NO_FATAL_FAILURE(LoadDatabase(FILE_PATH_LITERAL("version_136.sql")));
+  const char kTestUrl[] = "chrome://test/?q={searchTerms}";
+  const TemplateURLID kTestId = 1;
+  {
+    sql::Database connection;
+    ASSERT_TRUE(connection.Open(GetDatabasePath()));
+    EXPECT_EQ(136, VersionFromConnection(&connection));
+    EXPECT_FALSE(connection.DoesColumnExist("keywords", "url_hash"));
+
+    // Insert a keyword to test that it is migrated correctly.
+    ASSERT_TRUE(connection.ExecuteScriptForTesting(base::StrCat(
+        {"INSERT INTO keywords VALUES(", base::NumberToString(kTestId),
+         ",'Test','@test','','", kTestUrl,
+         "',1,'',0,0,'','',0,0,0,'','[]','','','','','',0,0,1,2,0,0);"})));
+  }
+  {
+    base::HistogramTester histograms;
+    DoMigration();
+    histograms.ExpectUniqueSample("Search.KeywordTable.MigrationSuccess.V137",
+                                  true, 1);
+  }
+  {
+    sql::Database connection;
+    ASSERT_TRUE(connection.Open(GetDatabasePath()));
+    EXPECT_EQ(WebDatabase::kCurrentVersionNumber,
+              VersionFromConnection(&connection));
+    EXPECT_TRUE(connection.DoesColumnExist("keywords", "url_hash"));
+    sql::Statement stmt(
+        connection.GetUniqueStatement("SELECT url_hash FROM keywords"));
+    EXPECT_TRUE(stmt.Step());
+    const auto type = stmt.GetColumnType(0);
+    if (!IsEncryptionAvailable()) {
+      EXPECT_EQ(type, sql::ColumnType::kNull);
+      return;
+    }
+
+    EXPECT_EQ(type, sql::ColumnType::kBlob);
+    const auto encrypted_hash = stmt.ColumnBlob(0);
+    const auto hash = encryptor_.DecryptData(encrypted_hash);
+    EXPECT_TRUE(hash.has_value());
+    TemplateURLData data;
+    data.id = kTestId;
+    data.SetURL(kTestUrl);
+    auto expected_hash = data.GenerateHash();
+    EXPECT_EQ(hash->size(), expected_hash.size());
+    EXPECT_TRUE(std::ranges::equal(
+        hash.value(), expected_hash,
+        [](char c, uint8_t b) { return static_cast<uint8_t>(c) == b; }));
+  }
+}
+
+INSTANTIATE_TEST_SUITE_P(/*empty*/,
+                         WebDatabaseMigrationTestEncryption,
+                         testing::Bool(),
+                         [](const auto& info) {
+                           return info.param ? "Encryption" : "NoEncryption";
+                         });
diff --git a/content/browser/file_system_access/file_system_access_observer_quota_manager.cc b/content/browser/file_system_access/file_system_access_observer_quota_manager.cc
index 79a1232..45d2bc6 100644
--- a/content/browser/file_system_access/file_system_access_observer_quota_manager.cc
+++ b/content/browser/file_system_access/file_system_access_observer_quota_manager.cc
@@ -11,7 +11,7 @@
 
 FileSystemAccessObserverQuotaManager::FileSystemAccessObserverQuotaManager(
     const blink::StorageKey& storage_key,
-    FileSystemAccessWatcherManager* watcher_manager)
+    FileSystemAccessWatcherManager& watcher_manager)
     : base::RefCountedDeleteOnSequence<FileSystemAccessObserverQuotaManager>(
           base::SequencedTaskRunner::GetCurrentDefault()),
       storage_key_(storage_key),
@@ -29,11 +29,7 @@
       "Storage.FileSystemAccess.ObserverUsageQuotaExceeded",
       reached_quota_limit_);
 
-  // TODO(crbug.com/338457523): Make this unconditional once `watcher_manager_`
-  // is raw_ref.
-  if (watcher_manager_) {
-    watcher_manager_->RemoveQuotaManager(storage_key_);
-  }
+  watcher_manager_->RemoveQuotaManager(storage_key_);
 }
 
 FileSystemAccessObserverQuotaManager::UsageChangeResult
diff --git a/content/browser/file_system_access/file_system_access_observer_quota_manager.h b/content/browser/file_system_access/file_system_access_observer_quota_manager.h
index bf5ee99..84f4a5e 100644
--- a/content/browser/file_system_access/file_system_access_observer_quota_manager.h
+++ b/content/browser/file_system_access/file_system_access_observer_quota_manager.h
@@ -5,6 +5,7 @@
 #ifndef CONTENT_BROWSER_FILE_SYSTEM_ACCESS_FILE_SYSTEM_ACCESS_OBSERVER_QUOTA_MANAGER_H_
 #define CONTENT_BROWSER_FILE_SYSTEM_ACCESS_FILE_SYSTEM_ACCESS_OBSERVER_QUOTA_MANAGER_H_
 
+#include "base/memory/raw_ref.h"
 #include "base/memory/ref_counted_delete_on_sequence.h"
 #include "content/browser/file_system_access/file_system_access_change_source.h"
 #include "content/common/content_export.h"
@@ -27,7 +28,7 @@
 
   explicit FileSystemAccessObserverQuotaManager(
       const blink::StorageKey& storage_key,
-      FileSystemAccessWatcherManager* watcher_manager);
+      FileSystemAccessWatcherManager& watcher_manager);
 
   // Updates the total usage if the quota is available.
   // Otherwise, returns `UsageChangeResult::kQuotaUnavailable`.
@@ -52,9 +53,7 @@
 
   const blink::StorageKey storage_key_;
 
-  // TODO(crbug.com/338457523): Update to raw_ref once connected to watcher
-  // manager.
-  const raw_ptr<FileSystemAccessWatcherManager> watcher_manager_;
+  const raw_ref<FileSystemAccessWatcherManager> watcher_manager_;
   // OS-specific quota limit. Must be greater than 0.
   size_t quota_limit_ = FileSystemAccessChangeSource::quota_limit();
   size_t total_usage_ = 0;
diff --git a/content/browser/file_system_access/file_system_access_observer_quota_manager_unittest.cc b/content/browser/file_system_access/file_system_access_observer_quota_manager_unittest.cc
index 2c1fc0a..e60c222 100644
--- a/content/browser/file_system_access/file_system_access_observer_quota_manager_unittest.cc
+++ b/content/browser/file_system_access/file_system_access_observer_quota_manager_unittest.cc
@@ -4,8 +4,18 @@
 
 #include "content/browser/file_system_access/file_system_access_observer_quota_manager.h"
 
+#include "base/files/file_path.h"
+#include "base/files/scoped_temp_dir.h"
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/task_environment.h"
+#include "content/browser/blob_storage/chrome_blob_storage_context.h"
+#include "content/browser/file_system_access/file_system_access_manager_impl.h"
+#include "content/browser/file_system_access/file_system_access_watcher_manager.h"
+#include "content/public/test/browser_task_environment.h"
+#include "storage/browser/test/mock_quota_manager.h"
+#include "storage/browser/test/mock_quota_manager_proxy.h"
+#include "storage/browser/test/mock_special_storage_policy.h"
+#include "storage/browser/test/test_file_system_context.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/blink/public/common/storage_key/storage_key.h"
 
@@ -20,49 +30,71 @@
       : task_environment_(base::test::TaskEnvironment::MainThreadType::IO) {}
 
   void SetUp() override {
-    // TODO(crbug.com/338457523): Pass mock watcher manager and add a test case
-    // for destructor.
-    observer_quota_manager_ =
-        base::MakeRefCounted<FileSystemAccessObserverQuotaManager>(
-            blink::StorageKey::CreateFromStringForTesting(
-                "https://example.com/test"),
-            nullptr);
+    ASSERT_TRUE(dir_.CreateUniqueTempDir());
+
+    quota_manager_ = base::MakeRefCounted<storage::MockQuotaManager>(
+        /*is_incognito=*/false, dir_.GetPath(),
+        base::SingleThreadTaskRunner::GetCurrentDefault(),
+        special_storage_policy_);
+
+    file_system_context_ = storage::CreateFileSystemContextForTesting(
+        /*quota_manager_proxy=*/nullptr, dir_.GetPath());
+
+    chrome_blob_context_ = base::MakeRefCounted<ChromeBlobStorageContext>();
+    chrome_blob_context_->InitializeOnIOThread(base::FilePath(),
+                                               base::FilePath(), nullptr);
+
+    manager_ = base::MakeRefCounted<FileSystemAccessManagerImpl>(
+        file_system_context_, chrome_blob_context_,
+        /*permission_context=*/nullptr,
+        /*off_the_record=*/false);
+  }
+
+  FileSystemAccessWatcherManager& watcher_manager() const {
+    return manager_->watcher_manager();
   }
 
   void TearDown() override {
-    observer_quota_manager_.reset();
-
-    // Histogram logging is expected to occur after the destruction of the
-    // observer quota manager.
-    hisogram_tester_.ExpectUniqueSample(
-        "Storage.FileSystemAccess.ObserverUsage",
-        expected_highmark_usage_histogram_, 1);
-    hisogram_tester_.ExpectUniqueSample(
-        "Storage.FileSystemAccess.ObserverUsageRate",
-        expected_highmark_usage_percentage_histogram_, 1);
-    hisogram_tester_.ExpectUniqueSample(
-        "Storage.FileSystemAccess.ObserverUsageQuotaExceeded",
-        expect_quota_exceeded_histogram_, 1);
+    manager_.reset();
+    file_system_context_.reset();
+    chrome_blob_context_.reset();
+    EXPECT_TRUE(dir_.Delete());
   }
 
-  void ExpectObserverUsageHistogram(size_t highmark_usage,
-                                    size_t highmark_usage_percentage,
-                                    bool quota_exceeded) {
-    expected_highmark_usage_histogram_ = highmark_usage;
-    expected_highmark_usage_percentage_histogram_ = highmark_usage_percentage;
-    expect_quota_exceeded_histogram_ = quota_exceeded;
+  void ExpectHistogramsOnQuotaManagerDestruction(
+      size_t highmark_usage,
+      size_t highmark_usage_percentage,
+      bool quota_exceeded) {
+    histogram_tester_.ExpectUniqueSample(
+        "Storage.FileSystemAccess.ObserverUsage", highmark_usage, 1);
+    histogram_tester_.ExpectUniqueSample(
+        "Storage.FileSystemAccess.ObserverUsageRate", highmark_usage_percentage,
+        1);
+    histogram_tester_.ExpectUniqueSample(
+        "Storage.FileSystemAccess.ObserverUsageQuotaExceeded", quota_exceeded,
+        1);
   }
 
  protected:
-  base::HistogramTester hisogram_tester_;
+  const blink::StorageKey kTestStorageKey =
+      blink::StorageKey::CreateFromStringForTesting("https://example.com/test");
+
+  base::ScopedTempDir dir_;
+  base::HistogramTester histogram_tester_;
   size_t expected_highmark_usage_histogram_ = 0;
   size_t expected_highmark_usage_percentage_histogram_ = 0;
   bool expect_quota_exceeded_histogram_ = false;
-  scoped_refptr<FileSystemAccessObserverQuotaManager> observer_quota_manager_;
-  base::test::TaskEnvironment task_environment_;
+  scoped_refptr<storage::MockSpecialStoragePolicy> special_storage_policy_;
+  scoped_refptr<storage::FileSystemContext> file_system_context_;
+  scoped_refptr<ChromeBlobStorageContext> chrome_blob_context_;
+  scoped_refptr<storage::MockQuotaManager> quota_manager_;
+  scoped_refptr<FileSystemAccessManagerImpl> manager_;
+  BrowserTaskEnvironment task_environment_;
 };
 
 TEST_F(FileSystemAccessObserverQuotaManagerTest, OnUsageChange) {
+  scoped_refptr<FileSystemAccessObserverQuotaManager> observer_quota_manager_ =
+      watcher_manager().GetOrCreateQuotaManagerForTesting(kTestStorageKey);
   observer_quota_manager_->SetQuotaLimitForTesting(10);
 
   // There are two observation groups under the same storage key calling
@@ -92,36 +124,66 @@
   // subtract is larger than the previous total usage.
   EXPECT_EQ(observer_quota_manager_->GetTotalUsageForTesting(), 0U);
 
+  observer_quota_manager_.reset();
   // 10 usage out of 10 quota limit = 100%
-  ExpectObserverUsageHistogram(/*highmark_usage=*/10,
-                               /*highmark_usage_percentage=*/100,
-                               /*quota_exceeded=*/true);
+  ExpectHistogramsOnQuotaManagerDestruction(/*highmark_usage=*/10,
+                                            /*highmark_usage_percentage=*/100,
+                                            /*quota_exceeded=*/true);
 }
 
 TEST_F(FileSystemAccessObserverQuotaManagerTest, HistogramQuotaExceeded) {
+  scoped_refptr<FileSystemAccessObserverQuotaManager> observer_quota_manager_ =
+      watcher_manager().GetOrCreateQuotaManagerForTesting(kTestStorageKey);
   observer_quota_manager_->SetQuotaLimitForTesting(10);
 
   EXPECT_EQ(
       observer_quota_manager_->OnUsageChange(/*old_usage=*/0, /*new_usage=*/11),
       UsageChangeResult::kQuotaUnavailable);
 
+  observer_quota_manager_.reset();
   // 0 usage out of 10 quota limit = 0%
-  ExpectObserverUsageHistogram(/*highmark_usage=*/0,
-                               /*highmark_usage_percentage=*/0,
-                               /*quota_exceeded=*/true);
+  ExpectHistogramsOnQuotaManagerDestruction(/*highmark_usage=*/0,
+                                            /*highmark_usage_percentage=*/0,
+                                            /*quota_exceeded=*/true);
 }
 
 TEST_F(FileSystemAccessObserverQuotaManagerTest, HistogramQuotaNotExceeded) {
+  scoped_refptr<FileSystemAccessObserverQuotaManager> observer_quota_manager_ =
+      watcher_manager().GetOrCreateQuotaManagerForTesting(kTestStorageKey);
   observer_quota_manager_->SetQuotaLimitForTesting(10);
 
   EXPECT_EQ(
       observer_quota_manager_->OnUsageChange(/*old_usage=*/0, /*new_usage=*/1),
       UsageChangeResult::kOk);
 
+  observer_quota_manager_.reset();
   // 1 usage out of 10 quota limit = 10%
-  ExpectObserverUsageHistogram(/*highmark_usage=*/1,
-                               /*highmark_usage_percentage=*/10,
-                               /*quota_exceeded=*/false);
+  ExpectHistogramsOnQuotaManagerDestruction(/*highmark_usage=*/1,
+                                            /*highmark_usage_percentage=*/10,
+                                            /*quota_exceeded=*/false);
+}
+
+TEST_F(FileSystemAccessObserverQuotaManagerTest,
+       QuotaManagerRemovedFromWatcherManagerOnDestruction) {
+  scoped_refptr<FileSystemAccessObserverQuotaManager> observer_quota_manager_ =
+      watcher_manager().GetOrCreateQuotaManagerForTesting(kTestStorageKey);
+  observer_quota_manager_->SetQuotaLimitForTesting(10);
+
+  EXPECT_EQ(
+      observer_quota_manager_->OnUsageChange(/*old_usage=*/0, /*new_usage=*/1),
+      UsageChangeResult::kOk);
+
+  EXPECT_NE(watcher_manager().GetQuotaManagerForTesting(kTestStorageKey),
+            nullptr);
+
+  observer_quota_manager_.reset();
+  EXPECT_EQ(watcher_manager().GetQuotaManagerForTesting(kTestStorageKey),
+            nullptr);
+
+  // 1 usage out of 10 quota limit = 10%
+  ExpectHistogramsOnQuotaManagerDestruction(/*highmark_usage=*/1,
+                                            /*highmark_usage_percentage=*/10,
+                                            /*quota_exceeded=*/false);
 }
 
 }  // namespace content
diff --git a/content/browser/file_system_access/file_system_access_watcher_manager.cc b/content/browser/file_system_access/file_system_access_watcher_manager.cc
index 4da10fc..cab817b9 100644
--- a/content/browser/file_system_access/file_system_access_watcher_manager.cc
+++ b/content/browser/file_system_access/file_system_access_watcher_manager.cc
@@ -418,6 +418,14 @@
 }
 
 scoped_refptr<FileSystemAccessObserverQuotaManager>
+FileSystemAccessWatcherManager::GetOrCreateQuotaManagerForTesting(
+    const blink::StorageKey& storage_key) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+
+  return GetOrCreateQuotaManager(storage_key);
+}
+
+scoped_refptr<FileSystemAccessObserverQuotaManager>
 FileSystemAccessWatcherManager::GetOrCreateQuotaManager(
     blink::StorageKey storage_key) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -430,7 +438,7 @@
 
   scoped_refptr<FileSystemAccessObserverQuotaManager> quota_manager =
       base::MakeRefCounted<FileSystemAccessObserverQuotaManager>(storage_key,
-                                                                 this);
+                                                                 *this);
   quota_managers_.emplace(std::piecewise_construct,
                           std::forward_as_tuple(std::move(storage_key)),
                           std::forward_as_tuple(*quota_manager.get()));
diff --git a/content/browser/file_system_access/file_system_access_watcher_manager.h b/content/browser/file_system_access/file_system_access_watcher_manager.h
index 6ff038bd..708abde 100644
--- a/content/browser/file_system_access/file_system_access_watcher_manager.h
+++ b/content/browser/file_system_access/file_system_access_watcher_manager.h
@@ -101,6 +101,8 @@
     return observation_groups_.HasObserver(observation_group);
   }
 
+  scoped_refptr<FileSystemAccessObserverQuotaManager>
+  GetOrCreateQuotaManagerForTesting(const blink::StorageKey& storage_key);
   FileSystemAccessObserverQuotaManager* GetQuotaManagerForTesting(
       const blink::StorageKey& storage_key);
 
diff --git a/content/browser/gpu/gpu_process_host.cc b/content/browser/gpu/gpu_process_host.cc
index 072725b..26054bde 100644
--- a/content/browser/gpu/gpu_process_host.cc
+++ b/content/browser/gpu/gpu_process_host.cc
@@ -1255,9 +1255,7 @@
   cmd_line->AppendSwitchASCII(switches::kProcessType, switches::kGpuProcess);
 
 #if BUILDFLAG(IS_WIN)
-  if (kind_ == GPU_PROCESS_KIND_INFO_COLLECTION &&
-      base::FeatureList::IsEnabled(
-          features::kGpuInfoCollectionSeparatePrefetch)) {
+  if (kind_ == GPU_PROCESS_KIND_INFO_COLLECTION) {
     cmd_line->AppendArgNative(app_launch_prefetch::GetPrefetchSwitch(
         app_launch_prefetch::SubprocessType::kGPUInfo));
   } else {
diff --git a/content/browser/interest_group/ad_auction_service_impl_unittest.cc b/content/browser/interest_group/ad_auction_service_impl_unittest.cc
index dd4d586..9a12097 100644
--- a/content/browser/interest_group/ad_auction_service_impl_unittest.cc
+++ b/content/browser/interest_group/ad_auction_service_impl_unittest.cc
@@ -12158,8 +12158,6 @@
 }
 
 TEST_F(AdAuctionServiceImplBAndATest, JoinInterestGroupPrefetchesKeys) {
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitAndEnableFeature(features::kFledgePrefetchBandAKeys);
   RegisterDeferredKeys();
   blink::InterestGroup interest_group = CreateInterestGroup();
 
diff --git a/content/browser/interest_group/bidding_and_auction_server_key_fetcher.cc b/content/browser/interest_group/bidding_and_auction_server_key_fetcher.cc
index f6f4900..133b58e6 100644
--- a/content/browser/interest_group/bidding_and_auction_server_key_fetcher.cc
+++ b/content/browser/interest_group/bidding_and_auction_server_key_fetcher.cc
@@ -142,13 +142,6 @@
     default;
 
 void BiddingAndAuctionServerKeyFetcher::MaybePrefetchKeys() {
-  // We only prefetch keys if the prefetching is enabled and if
-  // kFledgeBiddingAndAuctionServer is enabled. We don't need to check
-  // kFledgeBiddingAndAuctionServer because if it's not enabled
-  // fetcher_state_map_ would have no keys.
-  if (!base::FeatureList::IsEnabled(features::kFledgePrefetchBandAKeys)) {
-    return;
-  }
   // We only want to prefetch once.
   if (did_prefetch_keys_) {
     return;
diff --git a/content/browser/interest_group/bidding_and_auction_server_key_fetcher.h b/content/browser/interest_group/bidding_and_auction_server_key_fetcher.h
index 38b06d32..1ac19def 100644
--- a/content/browser/interest_group/bidding_and_auction_server_key_fetcher.h
+++ b/content/browser/interest_group/bidding_and_auction_server_key_fetcher.h
@@ -66,8 +66,8 @@
       const BiddingAndAuctionServerKeyFetcher&) = delete;
 
   // Fetch keys for all coordinators in kFledgeBiddingAndAuctionKeyConfig if
-  // kFledgePrefetchBandAKeys and kFledgeBiddingAndAuctionServer are enabled and
-  // if the keys haven't been fetched yet.
+  // kFledgeBiddingAndAuctionServer is enabled and if the keys haven't been
+  // fetched yet.
   void MaybePrefetchKeys();
 
   // GetOrFetchKey provides a key in the callback if necessary. If the key is
diff --git a/content/browser/interest_group/bidding_and_auction_server_key_fetcher_unittest.cc b/content/browser/interest_group/bidding_and_auction_server_key_fetcher_unittest.cc
index abc9e68..9be83b2 100644
--- a/content/browser/interest_group/bidding_and_auction_server_key_fetcher_unittest.cc
+++ b/content/browser/interest_group/bidding_and_auction_server_key_fetcher_unittest.cc
@@ -417,9 +417,6 @@
 
 TEST_F(BiddingAndAuctionServerKeyFetcherTest,
        MaybePrefetchKeysFailureFailsPendingGetOrFetchKey) {
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitAndEnableFeature(features::kFledgePrefetchBandAKeys);
-
   content::BiddingAndAuctionServerKeyFetcher fetcher = CreateFetcher();
 
   // Use the AWS coordinator for this prefetch test since the GCP key URL is
@@ -471,9 +468,6 @@
 }
 
 TEST_F(BiddingAndAuctionServerKeyFetcherTest, MaybePrefetchKeysCachesValue) {
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitAndEnableFeature(features::kFledgePrefetchBandAKeys);
-
   content::BiddingAndAuctionServerKeyFetcher fetcher = CreateFetcher();
 
   // Use the AWS coordinator for this prefetch test since the GCP key URL is
@@ -535,9 +529,6 @@
 
 TEST_F(BiddingAndAuctionServerKeyFetcherTest,
        MaybePrefetchKeysUpdatesExpiredValue) {
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitAndEnableFeature(features::kFledgePrefetchBandAKeys);
-
   // Use the AWS coordinator for this prefetch test since the GCP key URL is
   // used by two coordinators.
   url::Origin coordinator =
@@ -590,21 +581,6 @@
         }]})"));
 }
 
-TEST_F(BiddingAndAuctionServerKeyFetcherTest,
-       MaybePrefetchKeysDoesNotCacheValueIfFeatureDisabled) {
-  // Disable kFledgePrefetchBandAKeys.
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitAndDisableFeature(features::kFledgePrefetchBandAKeys);
-
-  content::BiddingAndAuctionServerKeyFetcher fetcher = CreateFetcher();
-  fetcher.MaybePrefetchKeys();
-  task_environment_.FastForwardBy(base::Seconds(1));
-  EXPECT_FALSE(
-      url_loader_factory_.IsPending(kBiddingAndAuctionGCPCoordinatorKeyURL));
-  EXPECT_FALSE(
-      url_loader_factory_.IsPending(kBiddingAndAuctionAWSCoordinatorKeyURL));
-}
-
 TEST_F(BiddingAndAuctionServerKeyFetcherTest, CoalescesRequests) {
   content::BiddingAndAuctionServerKeyFetcher fetcher = CreateFetcher();
 
diff --git a/content/browser/interest_group/interest_group_browsertest.cc b/content/browser/interest_group/interest_group_browsertest.cc
index 623a3e8..1e27d111 100644
--- a/content/browser/interest_group/interest_group_browsertest.cc
+++ b/content/browser/interest_group/interest_group_browsertest.cc
@@ -740,7 +740,6 @@
          {blink::features::kBiddingAndScoringDebugReportingAPI, {}},
          {blink::features::kFledgeDirectFromSellerSignalsHeaderAdSlot, {}},
          {features::kBackForwardCache, {}},
-         {features::kFledgeUseInterestGroupCache, {}},
          {blink::features::kFencedFramesLocalUnpartitionedDataAccess, {}},
          {blink::features::kFledgeSampleDebugReports, {}},
          // These are in field trial config, but we want this consistent among
@@ -752,7 +751,7 @@
          {blink::features::kFledgeAuctionDealSupport, {}},
          {blink::features::kFledgeDeprecatedRenderURLReplacements, {}},
          {blink::features::kFledgeSellerNonce, {}},
-         {blink::features::kFledgeTrustedSignalsKVv2Support,{}}},
+         {blink::features::kFledgeTrustedSignalsKVv2Support, {}}},
         /*disabled_features=*/
         {blink::features::kFencedFrames,
          blink::features::kFledgeEnforceKAnonymity,
diff --git a/content/browser/interest_group/interest_group_caching_storage.cc b/content/browser/interest_group/interest_group_caching_storage.cc
index 6f2d636..1641a84a 100644
--- a/content/browser/interest_group/interest_group_caching_storage.cc
+++ b/content/browser/interest_group/interest_group_caching_storage.cc
@@ -135,19 +135,6 @@
 void InterestGroupCachingStorage::GetInterestGroupsForOwner(
     const url::Origin& owner,
     base::OnceCallback<void(scoped_refptr<StorageInterestGroups>)> callback) {
-  // If the cache is disabled, simply call
-  // InterestGroupStorage::GetInterestGroupsForOwner on each request.
-  if (!base::FeatureList::IsEnabled(features::kFledgeUseInterestGroupCache)) {
-    interest_group_storage_
-        .AsyncCall(&InterestGroupStorage::GetInterestGroupsForOwner)
-        .WithArgs(owner)
-        .Then(base::BindOnce(&InterestGroupCachingStorage::
-                                 OnLoadInterestGroupsForOwnerNoCachingIGs,
-                             weak_factory_.GetWeakPtr(), owner,
-                             std::move(callback)));
-    return;
-  }
-
   // If there is a cache hit, use the in-memory object.
   auto cached_groups_it = cached_interest_groups_.find(owner);
   if (cached_groups_it != cached_interest_groups_.end()) {
@@ -385,28 +372,26 @@
     const blink::InterestGroupKey& group_key,
     base::OnceCallback<void(std::optional<SingleStorageInterestGroup>)>
         callback) {
-  if (base::FeatureList::IsEnabled(features::kFledgeUseInterestGroupCache)) {
-    auto cached_groups_it = cached_interest_groups_.find(group_key.owner);
-    if (cached_groups_it != cached_interest_groups_.end()) {
-      scoped_refptr<StorageInterestGroups> groups =
-          cached_groups_it->second.get();
-      if (groups) {
-        std::optional<SingleStorageInterestGroup> output =
-            groups->FindGroup(group_key.name);
-        if (output &&
-            output.value()->interest_group.expiry < base::Time::Now()) {
-          output.reset();
-        }
-        base::SequencedTaskRunner::GetCurrentDefault()->PostTask(
-            FROM_HERE, base::BindOnce(std::move(callback), std::move(output)));
-        base::UmaHistogramBoolean("Ads.InterestGroup.GetInterestGroupCacheHit",
-                                  true);
-        return;
+  auto cached_groups_it = cached_interest_groups_.find(group_key.owner);
+  if (cached_groups_it != cached_interest_groups_.end()) {
+    scoped_refptr<StorageInterestGroups> groups =
+        cached_groups_it->second.get();
+    if (groups) {
+      std::optional<SingleStorageInterestGroup> output =
+          groups->FindGroup(group_key.name);
+      if (output && output.value()->interest_group.expiry < base::Time::Now()) {
+        output.reset();
       }
+      base::SequencedTaskRunner::GetCurrentDefault()->PostTask(
+          FROM_HERE, base::BindOnce(std::move(callback), std::move(output)));
+      base::UmaHistogramBoolean("Ads.InterestGroup.GetInterestGroupCacheHit",
+                                true);
+      return;
     }
-    base::UmaHistogramBoolean("Ads.InterestGroup.GetInterestGroupCacheHit",
-                              false);
   }
+  base::UmaHistogramBoolean("Ads.InterestGroup.GetInterestGroupCacheHit",
+                            false);
+
   interest_group_storage_.AsyncCall(&InterestGroupStorage::GetInterestGroup)
       .WithArgs(group_key)
       .Then(base::BindOnce(&ConvertOptionalGroupToSingleStorageInterestGroup)
@@ -540,16 +525,6 @@
       .Then(std::move(callback));
 }
 
-void InterestGroupCachingStorage::OnLoadInterestGroupsForOwnerNoCachingIGs(
-    const url::Origin& owner,
-    base::OnceCallback<void(scoped_refptr<StorageInterestGroups>)> callback,
-    std::vector<StorageInterestGroup> interest_groups) {
-  UpdateCachedOriginsIfEnabled(owner, interest_groups);
-  scoped_refptr<StorageInterestGroups> interest_groups_ptr =
-      base::MakeRefCounted<StorageInterestGroups>(std::move(interest_groups));
-  std::move(callback).Run(std::move(interest_groups_ptr));
-}
-
 void InterestGroupCachingStorage::OnJoinInterestGroup(
     const url::Origin& owner,
     CachedOriginsInfo cached_origins_info,
diff --git a/content/browser/interest_group/interest_group_caching_storage.h b/content/browser/interest_group/interest_group_caching_storage.h
index 2df7241..d7d363bb 100644
--- a/content/browser/interest_group/interest_group_caching_storage.h
+++ b/content/browser/interest_group/interest_group_caching_storage.h
@@ -339,14 +339,6 @@
       uint32_t version,
       std::vector<StorageInterestGroup> interest_groups);
 
-  // This callback is used once interest groups are loaded if
-  // kFledgeUseInterestGroupCache is disabled. Information may still be cached
-  // if kFledgeUsePreconnectCache is enabled.
-  void OnLoadInterestGroupsForOwnerNoCachingIGs(
-      const url::Origin& owner,
-      base::OnceCallback<void(scoped_refptr<StorageInterestGroups>)> callback,
-      std::vector<StorageInterestGroup> interest_groups);
-
   void InvalidateCachedInterestGroupsForOwner(const url::Origin& owner);
   void InvalidateAllCachedInterestGroups();
 
diff --git a/content/browser/interest_group/interest_group_caching_storage_unittest.cc b/content/browser/interest_group/interest_group_caching_storage_unittest.cc
index c7362de..59ad059 100644
--- a/content/browser/interest_group/interest_group_caching_storage_unittest.cc
+++ b/content/browser/interest_group/interest_group_caching_storage_unittest.cc
@@ -45,12 +45,7 @@
 
 class InterestGroupCachingStorageTest : public testing::Test {
  public:
-  void SetUp() override {
-    ASSERT_TRUE(temp_directory_.CreateUniqueTempDir());
-    feature_list_.InitWithFeatures(
-        /*enabled_features=*/{features::kFledgeUseInterestGroupCache},
-        /*disabled_features=*/{});
-  }
+  void SetUp() override { ASSERT_TRUE(temp_directory_.CreateUniqueTempDir()); }
 
   std::optional<scoped_refptr<StorageInterestGroups>> GetInterestGroupsForOwner(
       InterestGroupCachingStorage* caching_storage,
@@ -209,7 +204,6 @@
   base::ScopedTempDir temp_directory_;
   base::test::TaskEnvironment task_environment_{
       base::test::TaskEnvironment::TimeSource::MOCK_TIME};
-  base::test::ScopedFeatureList feature_list_;
 };
 
 TEST_F(InterestGroupCachingStorageTest, DBUpdatesShouldModifyCache) {
@@ -764,40 +758,6 @@
   ASSERT_EQ(loaded_igs5->get()->size(), 0u);
 }
 
-TEST_F(InterestGroupCachingStorageTest, NoCachingWhenFeatureDisabled) {
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitWithFeatures(
-      /*enabled_features=*/{},
-      /*disabled_features=*/{features::kFledgeUseInterestGroupCache});
-  base::HistogramTester histogram_tester;
-  std::unique_ptr<content::InterestGroupCachingStorage> caching_storage =
-      CreateCachingStorage();
-  url::Origin owner = url::Origin::Create(GURL("https://www.example.test/"));
-  auto ig = MakeInterestGroup(owner, "name");
-
-  JoinInterestGroup(caching_storage.get(), ig, GURL("https://www.test.com"));
-
-  std::optional<scoped_refptr<StorageInterestGroups>> loaded_igs =
-      GetInterestGroupsForOwner(caching_storage.get(), owner);
-  std::optional<scoped_refptr<StorageInterestGroups>> loaded_igs_again =
-      GetInterestGroupsForOwner(caching_storage.get(), owner);
-  ASSERT_NE(loaded_igs->get(), loaded_igs_again->get());
-
-  std::optional<SingleStorageInterestGroup> single_loaded_group =
-      GetInterestGroup(caching_storage.get(),
-                       blink::InterestGroupKey(ig.owner, ig.name));
-  ASSERT_TRUE(single_loaded_group.has_value());
-  ASSERT_NE(&(loaded_igs->get()->GetInterestGroups()[0]->interest_group),
-            &(single_loaded_group.value()->interest_group));
-
-  ASSERT_TRUE(histogram_tester
-                  .GetAllSamples("Ads.InterestGroup.Auction.LoadGroupsCacheHit")
-                  .empty());
-  ASSERT_TRUE(histogram_tester
-                  .GetAllSamples("Ads.InterestGroup.GetInterestGroupCacheHit")
-                  .empty());
-}
-
 TEST_F(InterestGroupCachingStorageTest, LoadGroupsCacheHitHistogram) {
   std::unique_ptr<content::InterestGroupCachingStorage> caching_storage =
       CreateCachingStorage();
diff --git a/content/browser/interest_group/interest_group_features.cc b/content/browser/interest_group/interest_group_features.cc
index defd67a..2d124b7 100644
--- a/content/browser/interest_group/interest_group_features.cc
+++ b/content/browser/interest_group/interest_group_features.cc
@@ -61,11 +61,6 @@
              "FledgeFacilitatedTestingSignalsHeaders",
              base::FEATURE_DISABLED_BY_DEFAULT);
 
-// Enable prefetching B&A keys on the first joinAdInterestGroup call.
-BASE_FEATURE(kFledgePrefetchBandAKeys,
-             "FledgePrefetchBandAKeys",
-             base::FEATURE_ENABLED_BY_DEFAULT);
-
 // Enables starting worklet processes at auction start time in anticipation
 // of needing them for future worklets.
 BASE_FEATURE(kFledgeStartAnticipatoryProcesses,
diff --git a/content/browser/interest_group/interest_group_features.h b/content/browser/interest_group/interest_group_features.h
index 3a30899..8c10ed2 100644
--- a/content/browser/interest_group/interest_group_features.h
+++ b/content/browser/interest_group/interest_group_features.h
@@ -26,8 +26,6 @@
 CONTENT_EXPORT BASE_DECLARE_FEATURE(kFledgeEnableWALForInterestGroupStorage);
 CONTENT_EXPORT BASE_DECLARE_FEATURE(kFledgeFacilitatedTestingSignalsHeaders);
 
-CONTENT_EXPORT BASE_DECLARE_FEATURE(kFledgePrefetchBandAKeys);
-
 CONTENT_EXPORT BASE_DECLARE_FEATURE(kFledgeStartAnticipatoryProcesses);
 CONTENT_EXPORT BASE_DECLARE_FEATURE_PARAM(
     base::TimeDelta,
diff --git a/content/browser/webauth/authenticator_common_impl.cc b/content/browser/webauth/authenticator_common_impl.cc
index 9475f8b..105a222f 100644
--- a/content/browser/webauth/authenticator_common_impl.cc
+++ b/content/browser/webauth/authenticator_common_impl.cc
@@ -1156,6 +1156,7 @@
       &absl::get<device::MakeCredentialOptions>(req_state_->request_options);
   make_credential_options->json =
       base::MakeRefCounted<device::JSONRequest>(webauthn::ToValue(options));
+  make_credential_options->is_passkey_upgrade_request = options->is_conditional;
   const bool might_create_resident_key =
       make_credential_options->resident_key !=
       device::ResidentKeyRequirement::kDiscouraged;
diff --git a/content/common/features.cc b/content/common/features.cc
index 01cc6d9..6db18bb 100644
--- a/content/common/features.cc
+++ b/content/common/features.cc
@@ -204,11 +204,6 @@
 const base::FeatureParam<int> kFledgeLimitNumAuctionsParam{
     &kFledgeLimitNumAuctions, "max_auctions_per_page", 8};
 
-// Enables caching when loading interest groups for a bidder in an auction.
-BASE_FEATURE(kFledgeUseInterestGroupCache,
-             "FledgeUseInterestGroupCache",
-             base::FEATURE_ENABLED_BY_DEFAULT);
-
 // Enables a delay for the post-auction interest group update to avoid
 // immediately invalidating cached values.
 BASE_FEATURE(kFledgeDelayPostAuctionInterestGroupUpdate,
@@ -267,15 +262,6 @@
 const base::FeatureParam<int> kFrameRoutingCacheResponseSize{
     &kFrameRoutingCache, "responseSize", 4};
 
-// Adds "/prefetch:8" (which is the "other" category of process - i.e. not
-// browser, gpu, crashpad, etc.) to the info collection GPU process' command
-// line, in order to keep from polluting the GPU prefetch history.
-#if BUILDFLAG(IS_WIN)
-BASE_FEATURE(kGpuInfoCollectionSeparatePrefetch,
-             "GpuInfoCollectionSeparatePrefetch",
-             base::FEATURE_ENABLED_BY_DEFAULT);
-#endif
-
 // Group network isolation key(NIK) by storage interest group joining origin to
 // improve privacy and performance -- IGs of the same joining origin can reuse
 // sockets, so we don't need to renegotiate those connections.
diff --git a/content/common/features.h b/content/common/features.h
index 831f4b4..5e5dd30 100644
--- a/content/common/features.h
+++ b/content/common/features.h
@@ -49,7 +49,6 @@
 CONTENT_EXPORT BASE_DECLARE_FEATURE(kFledgeLimitNumAuctions);
 CONTENT_EXPORT extern const base::FeatureParam<int>
     kFledgeLimitNumAuctionsParam;
-CONTENT_EXPORT BASE_DECLARE_FEATURE(kFledgeUseInterestGroupCache);
 CONTENT_EXPORT BASE_DECLARE_FEATURE(kFledgeDelayPostAuctionInterestGroupUpdate);
 CONTENT_EXPORT BASE_DECLARE_FEATURE(kFledgeSellerWorkletThreadPool);
 CONTENT_EXPORT extern const base::FeatureParam<int>
@@ -68,9 +67,6 @@
 CONTENT_EXPORT BASE_DECLARE_FEATURE(kFrameRoutingCache);
 CONTENT_EXPORT extern const base::FeatureParam<int>
     kFrameRoutingCacheResponseSize;
-#if BUILDFLAG(IS_WIN)
-CONTENT_EXPORT BASE_DECLARE_FEATURE(kGpuInfoCollectionSeparatePrefetch);
-#endif
 CONTENT_EXPORT BASE_DECLARE_FEATURE(kGroupNIKByJoiningOrigin);
 #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
 CONTENT_EXPORT BASE_DECLARE_FEATURE(kHandleChildThreadTypeChangesInBrowser);
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
index 5f6762b..53a9e38 100644
--- a/content/public/common/content_features.cc
+++ b/content/public/common/content_features.cc
@@ -367,11 +367,6 @@
 const base::FeatureParam<base::TimeDelta> kDIPSClientBounceDetectionTimeout{
     &kDIPS, "client_bounce_detection_timeout", base::Seconds(10)};
 
-// Whether DIPS deletes Privacy Sandbox data.
-BASE_FEATURE(kDIPSPreservePSData,
-             "DIPSPreservePSData",
-             base::FEATURE_ENABLED_BY_DEFAULT);
-
 // Enables HW decode acceleration for WebRTC.
 BASE_FEATURE(kWebRtcHWDecoding,
              "webrtc-hw-decoding",
diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h
index 7c5e069..6f2c13e 100644
--- a/content/public/common/content_features.h
+++ b/content/public/common/content_features.h
@@ -103,7 +103,6 @@
     kDIPSTriggeringAction;
 CONTENT_EXPORT extern const base::FeatureParam<base::TimeDelta>
     kDIPSClientBounceDetectionTimeout;
-CONTENT_EXPORT BASE_DECLARE_FEATURE(kDIPSPreservePSData);
 CONTENT_EXPORT BASE_DECLARE_FEATURE(kWebContentsDiscard);
 CONTENT_EXPORT BASE_DECLARE_FEATURE(
     kDisconnectExtensionMessagePortWhenPageEntersBFCache);
diff --git a/content/services/auction_worklet/bidder_worklet_unittest.cc b/content/services/auction_worklet/bidder_worklet_unittest.cc
index b4dfd026..984e4c6 100644
--- a/content/services/auction_worklet/bidder_worklet_unittest.cc
+++ b/content/services/auction_worklet/bidder_worklet_unittest.cc
@@ -10863,6 +10863,87 @@
   base::test::ScopedFeatureList feature_list_;
 };
 
+TEST_F(BidderWorkletSharedStorageAPIEnabledTest, ModifierMethodTypeHierarchy) {
+  auction_worklet::TestAuctionSharedStorageHost test_shared_storage_host;
+  mojo::Receiver<auction_worklet::mojom::AuctionSharedStorageHost> receiver(
+      &test_shared_storage_host);
+  shared_storage_hosts_[0] = receiver.BindNewPipeAndPassRemote();
+
+  RunGenerateBidWithJavascriptExpectingResult(
+      CreateGenerateBidScript(
+          R"({ad: "ad", bid:1, render:"https://response.test/" })",
+          /*extra_code=*/R"(
+            function getTypeHierarchy(obj) {
+              let prototype = Object.getPrototypeOf(obj);
+              const hierarchy = [];
+
+              while (prototype) {
+                hierarchy.push(prototype.constructor.name);
+                prototype = Object.getPrototypeOf(prototype);
+              }
+
+              return hierarchy.join('->');
+            }
+
+            let set_method_hierarchy =
+                getTypeHierarchy(new SharedStorageSetMethod('a', 'b'));
+
+            if (set_method_hierarchy !==
+                'SharedStorageSetMethod->SharedStorageModifierMethod->Object') {
+              throw 'Invalid set_method_hierarchy: ' + set_method_hierarchy;
+            }
+
+            let append_method_hierarchy =
+                getTypeHierarchy(new SharedStorageAppendMethod('a', 'b'));
+
+            if (append_method_hierarchy !==
+                'SharedStorageAppendMethod->SharedStorageModifierMethod->Object') {
+              throw 'Invalid append_method_hierarchy: ' + append_method_hierarchy;
+            }
+
+            let delete_method_hierarchy =
+                getTypeHierarchy(new SharedStorageDeleteMethod('a'));
+
+            if (delete_method_hierarchy !==
+                'SharedStorageDeleteMethod->SharedStorageModifierMethod->Object') {
+              throw 'Invalid delete_method_hierarchy: ' + delete_method_hierarchy;
+            }
+
+            let clear_method_hierarchy =
+                getTypeHierarchy(new SharedStorageClearMethod());
+
+            if (clear_method_hierarchy !==
+                'SharedStorageClearMethod->SharedStorageModifierMethod->Object') {
+              throw 'Invalid clear_method_hierarchy: ' + clear_method_hierarchy;
+            }
+      )"),
+      /*expected_bids=*/
+      mojom::BidderWorkletBid::New(
+          auction_worklet::mojom::BidRole::kUnenforcedKAnon, "\"ad\"", 1,
+          /*bid_currency=*/std::nullopt,
+          /*ad_cost=*/std::nullopt,
+          blink::AdDescriptor(GURL("https://response.test/")),
+          /*selected_buyer_and_seller_reporting_id=*/std::nullopt,
+          /*ad_component_descriptors=*/std::nullopt,
+          /*modeling_signals=*/std::nullopt, base::TimeDelta()),
+      /*expected_data_version=*/std::nullopt,
+      /*expected_errors=*/{},
+      /*expected_debug_loss_report_url=*/std::nullopt,
+      /*expected_debug_win_report_url=*/std::nullopt,
+      /*expected_set_priority=*/std::nullopt,
+      /*expected_update_priority_signals_overrides=*/{},
+      /*expected_pa_requests=*/{});
+
+  v8_helpers_[0]->v8_runner()->PostTask(
+      FROM_HERE, base::BindOnce(
+                     [](scoped_refptr<AuctionV8Helper> v8_helper) {
+                       v8_helper->isolate()->RequestGarbageCollectionForTesting(
+                           v8::Isolate::kFullGarbageCollection);
+                     },
+                     v8_helpers_[0]));
+  task_environment_.RunUntilIdle();
+}
+
 TEST_F(BidderWorkletSharedStorageAPIEnabledTest,
        CreateSharedStorageModifierMethod_IDLError) {
   std::vector<std::pair<std::string, std::string>> methods_and_errors = {
diff --git a/content/services/auction_worklet/shared_storage_bindings.cc b/content/services/auction_worklet/shared_storage_bindings.cc
index 9498177..844b51ce 100644
--- a/content/services/auction_worklet/shared_storage_bindings.cc
+++ b/content/services/auction_worklet/shared_storage_bindings.cc
@@ -35,6 +35,11 @@
     "The shared storage method object constructor cannot be called as a "
     "function";
 
+constexpr char kSharedStorageSetMethodName[] = "SharedStorageSetMethod";
+constexpr char kSharedStorageAppendMethodName[] = "SharedStorageAppendMethod";
+constexpr char kSharedStorageDeleteMethodName[] = "SharedStorageDeleteMethod";
+constexpr char kSharedStorageClearMethodName[] = "SharedStorageClearMethod";
+
 network::mojom::SharedStorageModifierMethodWithOptionsPtr
 CreateMojomSetMethodFromParameters(
     AuctionV8Helper* v8_helper,
@@ -353,16 +358,24 @@
 
   // These modifier methods are part of the Web Locks integration launch.
   if (base::FeatureList::IsEnabled(blink::features::kSharedStorageWebLocks)) {
+    v8::Local<v8::FunctionTemplate> base_modifier_method_template =
+        v8::FunctionTemplate::New(v8_helper_->isolate());
+    base_modifier_method_template->SetClassName(
+        v8_helper_->CreateStringFromLiteral("SharedStorageModifierMethod"));
+
     v8::Local<v8::FunctionTemplate> set_method_ctor_template =
         v8::FunctionTemplate::New(v8_helper_->isolate(),
                                   &SharedStorageBindings::SetMethodConstructor,
                                   v8_this);
     set_method_ctor_template->InstanceTemplate()->SetInternalFieldCount(1);
+    set_method_ctor_template->Inherit(base_modifier_method_template);
+    set_method_ctor_template->SetClassName(
+        v8_helper_->CreateStringFromLiteral(kSharedStorageSetMethodName));
     v8::Local<v8::Function> set_method_ctor =
         set_method_ctor_template->GetFunction(context).ToLocalChecked();
     context->Global()
         ->Set(context,
-              v8_helper_->CreateStringFromLiteral("SharedStorageSetMethod"),
+              v8_helper_->CreateStringFromLiteral(kSharedStorageSetMethodName),
               set_method_ctor)
         .Check();
 
@@ -371,12 +384,16 @@
             v8_helper_->isolate(),
             &SharedStorageBindings::AppendMethodConstructor, v8_this);
     append_method_ctor_template->InstanceTemplate()->SetInternalFieldCount(1);
+    append_method_ctor_template->Inherit(base_modifier_method_template);
+    append_method_ctor_template->SetClassName(
+        v8_helper_->CreateStringFromLiteral(kSharedStorageAppendMethodName));
     v8::Local<v8::Function> append_method_ctor =
         append_method_ctor_template->GetFunction(context).ToLocalChecked();
     context->Global()
-        ->Set(context,
-              v8_helper_->CreateStringFromLiteral("SharedStorageAppendMethod"),
-              append_method_ctor)
+        ->Set(
+            context,
+            v8_helper_->CreateStringFromLiteral(kSharedStorageAppendMethodName),
+            append_method_ctor)
         .Check();
 
     v8::Local<v8::FunctionTemplate> delete_method_ctor_template =
@@ -384,12 +401,16 @@
             v8_helper_->isolate(),
             &SharedStorageBindings::DeleteMethodConstructor, v8_this);
     delete_method_ctor_template->InstanceTemplate()->SetInternalFieldCount(1);
+    delete_method_ctor_template->Inherit(base_modifier_method_template);
+    delete_method_ctor_template->SetClassName(
+        v8_helper_->CreateStringFromLiteral(kSharedStorageDeleteMethodName));
     v8::Local<v8::Function> delete_method_ctor =
         delete_method_ctor_template->GetFunction(context).ToLocalChecked();
     context->Global()
-        ->Set(context,
-              v8_helper_->CreateStringFromLiteral("SharedStorageDeleteMethod"),
-              delete_method_ctor)
+        ->Set(
+            context,
+            v8_helper_->CreateStringFromLiteral(kSharedStorageDeleteMethodName),
+            delete_method_ctor)
         .Check();
 
     v8::Local<v8::FunctionTemplate> clear_method_ctor_template =
@@ -397,12 +418,16 @@
             v8_helper_->isolate(),
             &SharedStorageBindings::ClearMethodConstructor, v8_this);
     clear_method_ctor_template->InstanceTemplate()->SetInternalFieldCount(1);
+    clear_method_ctor_template->Inherit(base_modifier_method_template);
+    clear_method_ctor_template->SetClassName(
+        v8_helper_->CreateStringFromLiteral(kSharedStorageClearMethodName));
     v8::Local<v8::Function> clear_method_ctor =
         clear_method_ctor_template->GetFunction(context).ToLocalChecked();
     context->Global()
-        ->Set(context,
-              v8_helper_->CreateStringFromLiteral("SharedStorageClearMethod"),
-              clear_method_ctor)
+        ->Set(
+            context,
+            v8_helper_->CreateStringFromLiteral(kSharedStorageClearMethodName),
+            clear_method_ctor)
         .Check();
   }
 }
@@ -502,7 +527,7 @@
   network::mojom::SharedStorageModifierMethodWithOptionsPtr mojom_method =
       CreateMojomSetMethodFromParameters(
           v8_helper, args, bindings->shared_storage_permissions_policy_allowed_,
-          /*function_name=*/"SharedStorageSetMethod");
+          /*function_name=*/kSharedStorageSetMethodName);
   if (!mojom_method) {
     return;
   }
@@ -529,7 +554,7 @@
   network::mojom::SharedStorageModifierMethodWithOptionsPtr mojom_method =
       CreateMojomAppendMethodFromParameters(
           v8_helper, args, bindings->shared_storage_permissions_policy_allowed_,
-          /*function_name=*/"SharedStorageAppendMethod");
+          /*function_name=*/kSharedStorageAppendMethodName);
   if (!mojom_method) {
     return;
   }
@@ -556,7 +581,7 @@
   network::mojom::SharedStorageModifierMethodWithOptionsPtr mojom_method =
       CreateMojomDeleteMethodFromParameters(
           v8_helper, args, bindings->shared_storage_permissions_policy_allowed_,
-          /*function_name=*/"SharedStorageDeleteMethod");
+          /*function_name=*/kSharedStorageDeleteMethodName);
   if (!mojom_method) {
     return;
   }
@@ -583,7 +608,7 @@
   network::mojom::SharedStorageModifierMethodWithOptionsPtr mojom_method =
       CreateMojomClearMethodFromParameters(
           v8_helper, args, bindings->shared_storage_permissions_policy_allowed_,
-          /*function_name=*/"SharedStorageClearMethod");
+          /*function_name=*/kSharedStorageClearMethodName);
   if (!mojom_method) {
     return;
   }
diff --git a/content/test/data/accessibility/PRESUBMIT.py b/content/test/data/accessibility/PRESUBMIT.py
index 37819f4..b506f78d 100644
--- a/content/test/data/accessibility/PRESUBMIT.py
+++ b/content/test/data/accessibility/PRESUBMIT.py
@@ -6,8 +6,139 @@
 
 See https://www.chromium.org/developers/how-tos/depottools/presubmit-scripts/
 for more details about the presubmit API built into depot_tools.
+
+When adding/modify an accessibility test, the following rules apply:
+
+1.  If [name].html file exists, then at least one [name]-expected*.txt file must also exist,
+    and vice-versa.
+
+    This is not enforced for the /html/frame/ and /aria/frames/ directories, which
+    contain .html files referenced by other .html files and don't have their own expectations.
+
+    Note: This is not enforced for the /mac/ and /win/ directories (see TODOs).
+    Note: This looks for files within a CL, not in the repo, which may cause false positives (see TODOs).
+    See: CheckAccessibilityHtmlExpectationsPair
+
+2.  Every txt file must be suffixed with one of the following:
+        [name]-expected-android.txt
+        [name]-expected-android-assist-data.txt
+        [name]-expected-android-external.txt
+        [name]-expected-auralinux.txt
+        [name]-expected-auralinux-2.txt
+        [name]-expected-auralinux-xenial.txt
+        [name]-expected-blink.txt
+        [name]-expected-blink-cros.txt
+        [name]-expected-fuchsia.txt
+        [name]-expected-mac.txt
+        [name]-expected-mac-before-11.txt
+        [name]-expected-uia-win.txt
+        [name]-expected-win.txt
+    See: CheckAccessibilityTestExpectationFilenames
+
+    This does not apply in the /mac/ or /win/ sub-directories, which
+    must follow the format: [name]-expected.txt
+    See: CheckAccessibilityTestExpectationFilenamesMacWin
+
+3.  If an [name].svg and [name].html both exist, they exist in the same directory
+    See: CheckAccessibilityHtmlSvgPair
+
+4a. For any [name].html file, "[name].html" must exist in a .cc test file following
+    the given pairings:
+
+       Directory   |  Test file
+       -----------------------
+       /accname/   |  dump_accessibility_node_browsertest.cc
+       /event/     |  dump_accessibility_events_browsertest.cc
+       /mac/       |  dump_accessibility_scripts_browsertest.cc
+       /win/ia2/   |  dump_accessibility_scripts_browsertest.cc
+       *All Others |  dump_accessibility_tree_browsertest.cc
+
+    This is not enforced for the /html/frame/ and /aria/frames/ directories, which
+    contain .html files referenced by other .html files and are not tested directly.
+    See: CheckAccessibilityHtmlFileTest
+
+4b. When a .txt file with an Android expectation file (i.e. matching the pattern
+    "*-expected-android*") is also present, then the [name].html file must also
+    appear in one of the Android test files following the given pairings:
+
+       Directory   |  Test file
+       -----------------------
+       /event/     |  WebContentsAccessibilityEventsTest.java
+       /accname/   |  WebContentsAccessibilityTreeTest.java
+       /aria/      |  WebContentsAccessibilityTreeTest.java
+       /css/       |  WebContentsAccessibilityTreeTest.java
+       /html/      |  WebContentsAccessibilityTreeTest.java
+
+    For the tree tests, this rule is not enforced if the [name].html contents contains
+    any of the following elements which lead to flakes on Android:
+        <script>, <video>, <noscript>
+    See: CheckAccessibilityHtmlFileTest
+
+5.  If a [name].html file exists in /html/frame/ or /aria/frames/, then there is no
+    file [name]-expected-*.txt file in that directory.
+
+    Note: This should probably be enforced for all .txt files (see TODOs).
+    Note: This looks for files within a CL, not in the repo, which may cause false negatives (see TODOs).
+    Note: These frame directories should have consistent names, and/or be in a shared directory.
+    See: CheckFrameHtmlFilesDontHaveExpectations
+
+6.  If an .html file is being added to the /event/ directory in a CL, then there must also
+    be a change to the WebContentsAccessibilityEventsTest.java file in that CL.
+
+    Note: This rule should probably apply to both additions and deletions (see TODOs).
+    See: CheckAccessibilityEventsTestsAreIncludedForAndroid
+
+7.  If a CL contains any change to a -expected-blink.txt file, and adds an -expected-*.txt file for any
+    of the following platforms:
+
+        -mac, -win, -uia-win, -auralinux
+
+    in any of the following directories:
+        /accname/, /aria/, /css/, /event/, /html/
+
+    then there must also be a change to the WebContentsAccessibilityTreeTest.java file in that CL.
+
+    Note: There is a lot wrong with this test (see TODOs).
+    See: CheckAccessibilityTreeTestsAreIncludedForAndroid
 """
 
+# TODO(accessibility): Expand on Test #1 - A similar rule should apply for /mac/ and /win/.
+# TODO(accessibility): Expand on Test #1 - This test needs to search the current directory for
+#                      the files, not just the CL, to prevent false positives.
+# TODO(accessibility): Expand on Test #3 - If a [name].svg file exists, it should be referenced
+#                      in an html file somewhere, and/or [name].html should also exist.
+# TODO(accessibility): Expand on Test #4a - If an [name].html file exists in one of the /frame(s)/
+#                      directories, then it is referenced by an .html file in the parent directory.
+# TODO(accessibility): Expand on Test #4b - If a [name].html file exists in any of the relevant
+#                      Android directories with an element that causes flakes, then that file is not
+#                      referenced in the Android test files.
+# TODO(accessibility): Expand on Test #5 - Enforce this rule for all .txt files in general.
+# TODO(accessibility): Expand on Test #5 - This test needs to search the current directory for
+#                      the files, not just the CL, to prevent false negatives.
+# TODO(accessibility): Fix Test #6 - This should apply to additions and deletions, but for deletions
+#                      we only need to check that [name].html is not referenced in the java file.
+# TODO(accessibility): Fix Test #6 - [Maybe] Should this only apply if blink and one other platform
+#                      expectation files are present in the directory?
+# TODO(accessibility): Fix Test #7 - This test should not be applying to the /event/ directory.
+# TODO(accessibility): Fix Test #7 - This test should be restricted to [name]-expected-blink.txt
+#                      expectation files that have a matching [name]-expected-*.txt file.
+# TODO(accessibility): Fix Test #7 - This test needs to consider the flake restrictions that are
+#                      included as part of Test #4b.
+# TODO(accessibility): Fix Test #7 - This test needs to consider that when adding a new platform
+#                      expectation, the Android test may already exist/reference [name].html.
+# TODO(accessibility): Fix Test #7 - This test should apply if we are adding a new platform
+#                      and the -expected-blink.txt file already existed (and vice-versa).
+# TODO(accessibility): Fix Test #7 - This should apply to additions and deletions, but for deletions
+#                      we only need to check that [name].html is not referenced in the java file.
+# TODO(accessibility): Fix Test #7 - [Maybe] This test should consider modifications as well, as long
+#                      as the other expectation file requirements are met.
+# TODO(accessibility): Fix Test #7 - [Maybe] This test should consider matching against more platforms.
+#
+# TODO(accessibility): Create rules (and sub-directory) for crash tests, or add expectations for them.
+# TODO(accessibility): Create rules (and sub-directory) for android-only tests, or add expectations for them.
+# TODO(accessibility): Combine the /frame(s)/ directories, and/or give them consistent naming.
+# TODO(accessibility): Investigate and determine rules for remaining folders (e.g. /mathml/, /form-controls/)
+
 import os
 
 PRESUBMIT_VERSION = '2.0.0'
@@ -189,6 +320,8 @@
     problems = []
 
     for f in input_api.AffectedFiles(file_filter=FileFilter):
+      if f.Action() == 'D':
+          continue
       if not any(f.LocalPath().endswith(suffix) for suffix in valid_suffixes):
         problems.append(f.LocalPath())
 
@@ -212,6 +345,37 @@
         ]
     return []
 
+def CheckAccessibilityTestExpectationFilenamesMacWin(input_api, output_api):
+    """Checks that commits that include any text file use the correct
+    naming convention for expectation files to prevent shadow failures."""
+
+    def FileFilter(affected_file):
+        return input_api.FilterSourceFile(
+            affected_file,
+            files_to_check=[r"content/test/data/accessibility/(mac|win)/.+\.txt"],
+        )
+
+    valid_suffixes = [
+        "-expected.txt",
+    ]
+    problems = []
+
+    for f in input_api.AffectedFiles(file_filter=FileFilter):
+      if f.Action() == 'D':
+          continue
+      if not any(f.LocalPath().endswith(suffix) for suffix in valid_suffixes):
+        problems.append(f.LocalPath())
+
+    if problems:
+        return [
+            output_api.PresubmitPromptWarning(
+                "Accessibility platform expectation filenames in the /mac/ or /win/"
+                "\nsub-directories should follow the pattern: [name]-expected.txt\n",
+                problems,
+            )
+        ]
+    return []
+
 
 def CheckAccessibilityHtmlSvgPair(input_api, output_api):
     """Checks that .html and .svg files with the same base name
@@ -249,7 +413,7 @@
         return [
             output_api.PresubmitPromptWarning(
                 ".html and .svg files with the same base name should"
-                " located in the same directory.\n"
+                " be located in the same directory.\n"
                 "Problematic pairs:\n",
                 problems,
             )
diff --git a/content/test/data/accessibility/PRESUBMIT_test.py b/content/test/data/accessibility/PRESUBMIT_test.py
index a380bf4..21adbff 100755
--- a/content/test/data/accessibility/PRESUBMIT_test.py
+++ b/content/test/data/accessibility/PRESUBMIT_test.py
@@ -294,14 +294,15 @@
             mock_input_api, MockOutputApi())
         self.assertEqual(0, len(results))
 
-    # Test that newly added files with incorrect naming are flagged,
-    # but only text files.
+    # Test that newly added or modified files with incorrect naming are flagged,
+    # but only text files, and not deletions.
     def testInvalidFilenames(self):
         mock_input_api = MockInputApi()
         mock_input_api.files = [
             MockFile("content/test/data/accessibility/aria/foo-expected-android-foo.txt", [], action='A'),
             MockFile("content/test/data/accessibility/event/bar-expected-ios.txt", [], action='A'),
-            MockFile("content/test/data/accessibility/html/baz-actual-android.txt", [], action='A'),
+            MockFile("content/test/data/accessibility/html/baz-actual-android.txt", [], action='M'),
+            MockFile("content/test/data/accessibility/html/baz-actual-android.txt", [], action='D'),
             MockFile("content/test/data/accessibility/event/invalid.txt", [], action='A'),
             MockFile("content/test/data/accessibility/event/invalid-expected-win.html", [], action='A'),
             MockFile("content/test/data/accessibility/event/invalid-actual-win.html", [], action='A'),
@@ -328,6 +329,50 @@
         self.assertEqual(0, len(results))
 
 
+class CheckAccessibilityTestExpectationFilenamesMacWinTest(unittest.TestCase):
+
+    # Test that files with the correct naming are not flagged,
+    # nor are modified files.
+    def testValidFilenames(self):
+        mock_input_api = MockInputApi()
+        mock_input_api.files = [
+            MockFile("content/test/data/accessibility/mac/foo-expected.txt", []),
+            MockFile("content/test/data/accessibility/win/bar-expected.txt", []),
+        ]
+        results = PRESUBMIT.CheckAccessibilityTestExpectationFilenamesMacWin(
+            mock_input_api, MockOutputApi())
+        self.assertEqual(0, len(results))
+
+    # Test that newly added or modified files with incorrect naming are flagged,
+    # but only text files, and not deletions.
+    def testInvalidFilenames(self):
+        mock_input_api = MockInputApi()
+        mock_input_api.files = [
+            MockFile("content/test/data/accessibility/mac/foo-expected-mac.txt", [], action='A'),
+            MockFile("content/test/data/accessibility/win/bar-expected-win.txt", [], action='M'),
+            MockFile("content/test/data/accessibility/win/bar-expected-win.txt", [], action='D'),
+            MockFile("content/test/data/accessibility/mac/foo-expected-mac.html", [], action='A'),
+            MockFile("content/test/data/accessibility/win/bar-expected-win.html", [], action='A'),
+        ]
+        results = PRESUBMIT.CheckAccessibilityTestExpectationFilenamesMacWin(
+            mock_input_api, MockOutputApi())
+        self.assertEqual(1, len(results))
+        self.assertEqual(2, len(results[0].items))
+        self.assertIn("foo-expected-mac.txt", results[0].items[0])
+        self.assertIn("bar-expected-win.txt", results[0].items[1])
+
+    # Test files outside the /mac/ or /win/ sub-directories are not relevant.
+    def testNonMatchingFiles(self):
+        mock_input_api = MockInputApi()
+        mock_input_api.files = [
+            MockFile("content/test/data/foo.txt", []),
+            MockFile("foo/mac/bar.txt", []),
+        ]
+        results = PRESUBMIT.CheckAccessibilityTestExpectationFilenamesMacWin(
+            mock_input_api, MockOutputApi())
+        self.assertEqual(0, len(results))
+
+
 class CheckAccessibilityHtmlSvgPairTest(unittest.TestCase):
 
     # Test that files paired properly give no warning, and that if there
diff --git a/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt
index 11a1c31..39a62988 100644
--- a/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt
+++ b/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt
@@ -588,8 +588,9 @@
 # New validation was not implemented on the validating command decoder.
 crbug.com/angleproject/6358 [ no-passthrough ] conformance/programs/program-test.html [ Failure ]
 
-# Flaking on Win/Intel UHD 770 and Mac/M1
+# Flaking on Win/Intel UHD 770, NVIDIA GTX 1660 and Mac/M1
 crbug.com/365680830 [ win angle-d3d11 intel-0x4680 ] deqp/functional/gles3/occlusionquery_strict.html [ RetryOnFailure ]
+crbug.com/365680830 [ win angle-d3d11 nvidia-0x2184 ] deqp/functional/gles3/occlusionquery_strict.html [ RetryOnFailure ]
 crbug.com/365680830 [ mac angle-metal apple ] deqp/functional/gles3/occlusionquery_strict.html [ RetryOnFailure ]
 
 
diff --git a/device/fido/ctap_make_credential_request.h b/device/fido/ctap_make_credential_request.h
index f2c3f44..0c81421 100644
--- a/device/fido/ctap_make_credential_request.h
+++ b/device/fido/ctap_make_credential_request.h
@@ -198,6 +198,10 @@
   // Indicates whether the request was created in an off-the-record
   // BrowserContext (e.g. Chrome Incognito mode).
   bool is_off_the_record_context = false;
+
+  // Indicates if this is a passkey upgrade request, i.e. whether
+  // mediation=conditional.
+  bool is_passkey_upgrade_request = false;
 };
 
 // Serializes MakeCredential request parameter into CBOR encoded map with
diff --git a/device/fido/make_credential_request_handler.cc b/device/fido/make_credential_request_handler.cc
index c53b405..5aa8e8da 100644
--- a/device/fido/make_credential_request_handler.cc
+++ b/device/fido/make_credential_request_handler.cc
@@ -388,12 +388,18 @@
   }
 #endif
 
-  InitDiscoveries(
-      fido_discovery_factory, std::move(additional_discoveries),
+  auto available_transports =
       base::STLSetIntersection<base::flat_set<FidoTransportProtocol>>(
-          supported_transports, allowed_transports),
-      request.authenticator_attachment !=
-          AuthenticatorAttachment::kCrossPlatform);
+          supported_transports, allowed_transports);
+  bool consider_enclave = request.authenticator_attachment !=
+                          AuthenticatorAttachment::kCrossPlatform;
+  if (options_.is_passkey_upgrade_request) {
+    consider_enclave = true;
+    available_transports = {};
+  }
+
+  InitDiscoveries(fido_discovery_factory, std::move(additional_discoveries),
+                  std::move(available_transports), consider_enclave);
   std::string json_string;
   if (!options_.json ||
       !base::JSONWriter::WriteWithOptions(
diff --git a/device/vr/openxr/android/openxr_depth_sensor_android.cc b/device/vr/openxr/android/openxr_depth_sensor_android.cc
index c16b1ff..75ad374c 100644
--- a/device/vr/openxr/android/openxr_depth_sensor_android.cc
+++ b/device/vr/openxr/android/openxr_depth_sensor_android.cc
@@ -481,6 +481,7 @@
   switch (depth_config_->depth_data_format) {
     case mojom::XRDepthDataFormat::kFloat32:
       // Results are already in meters.
+      result->raw_value_to_meters = 1;
       CHECK(GetByteSize(data_format) == sizeof(float));
       CopyDepthData<float>(depth_image_span, pixels, image_size, depth_view,
                            view, [](float val) { return val; });
diff --git a/docs/chrome_browser_design_principles.md b/docs/chrome_browser_design_principles.md
index 5652dc7..6db5962 100644
--- a/docs/chrome_browser_design_principles.md
+++ b/docs/chrome_browser_design_principles.md
@@ -26,15 +26,6 @@
           `//chrome/test/BUILD.gn` or `//chrome/browser/ui/BUILD.gn:ui`.
     * gn circular dependencies are disallowed. Logical
       circular dependencies are allowed (for legacy reasons) but discouraged.
-        * [Lens
-          overlay](https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/ui/lens/BUILD.gn;drc=8e2c1c747f15a93c55ab2f10ebc8b32801ba129e)
-          is an example of a feature with no circular dependencies.
-            * The BUILD.gn should use public/sources separation.
-                * The main reason for this is to guard against future, unexpected usage
-                  of parts of the code that were intended to be private. This makes it
-                  difficult to change implementation details in the future.
-                * This directory may have a public/ subdirectory to enforce further
-                  encapsulation, though this example does not use it.
         * [cookie
           controls](https://chromium-review.googlesource.com/c/chromium/src/+/5771416/5/chrome/browser/ui/cookie_controls/BUILD.gn)
           is an example of a feature with logical circular dependencies.
@@ -52,6 +43,17 @@
               still logical circular dependencies from the cc files. This
               discrepancy is because C++ allows headers to forward declare
               dependencies, which do not need to be reflected in gn.
+        * [Lens
+          overlay](https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/ui/lens/BUILD.gn;drc=8e2c1c747f15a93c55ab2f10ebc8b32801ba129e)
+          is an example with *almost* no circular dependencies.
+            * It has a logical circular dependency on `//chrome/browser/browser/ui:ui`,
+              which will no longer be necessary once NTP is also modularized (crbug.com/382237520).
+            * The BUILD.gn should use public/sources separation.
+                * The main reason for this is to guard against future, unexpected usage
+                  of parts of the code that were intended to be private. This makes it
+                  difficult to change implementation details in the future.
+                * This directory may have a public/ subdirectory to enforce further
+                  encapsulation, though this example does not use it.
     * This directory may have its own namespace.
     * Corollary: There are several global functions that facilitate dependency
       inversion. It will not be possible to call them from modularized features
diff --git a/docs/website b/docs/website
index e24b5fc..14dfe5f 160000
--- a/docs/website
+++ b/docs/website
@@ -1 +1 @@
-Subproject commit e24b5fc00e87e2350895d20aae627189b681d748
+Subproject commit 14dfe5f8763aa342a6d34f55486186361a4d4c40
diff --git a/gpu/command_buffer/service/scheduler.cc b/gpu/command_buffer/service/scheduler.cc
index 27db938..fb1e4750 100644
--- a/gpu/command_buffer/service/scheduler.cc
+++ b/gpu/command_buffer/service/scheduler.cc
@@ -72,7 +72,7 @@
     Scheduler* scheduler,
     SequenceId sequence_id,
     SchedulingPriority priority)
-    : scheduler_(scheduler), sequence_id_(sequence_id), priority_(priority) {
+    : scheduler_(scheduler), sequence_id_(sequence_id) {
   scheduler_->SetSequencePriority(sequence_id, priority);
 }
 Scheduler::ScopedSetSequencePriority::~ScopedSetSequencePriority() {
diff --git a/gpu/command_buffer/service/scheduler.h b/gpu/command_buffer/service/scheduler.h
index 4bea5c9..791e7f9 100644
--- a/gpu/command_buffer/service/scheduler.h
+++ b/gpu/command_buffer/service/scheduler.h
@@ -81,7 +81,6 @@
    private:
     const raw_ptr<Scheduler> scheduler_;
     const SequenceId sequence_id_;
-    const SchedulingPriority priority_;
   };
 
   explicit Scheduler(SyncPointManager* sync_point_manager);
diff --git a/headless/lib/browser/headless_web_contents_impl.cc b/headless/lib/browser/headless_web_contents_impl.cc
index d3623f9..0988953 100644
--- a/headless/lib/browser/headless_web_contents_impl.cc
+++ b/headless/lib/browser/headless_web_contents_impl.cc
@@ -287,13 +287,12 @@
     if (content::RenderWidgetHostView* view = rwh->GetView()) {
       if (fullscreen) {
         before_fullscreen_bounds_ = view->GetViewBounds();
-        gfx::Rect bounds = rwh->GetScreenInfo().available_rect;
+        gfx::Rect bounds = rwh->GetScreenInfo().rect;
         view->SetBounds(bounds);
       } else {
-        if (before_fullscreen_bounds_) {
-          view->SetBounds(before_fullscreen_bounds_.value());
-          before_fullscreen_bounds_.reset();
-        }
+        CHECK(before_fullscreen_bounds_);
+        view->SetBounds(before_fullscreen_bounds_.value());
+        before_fullscreen_bounds_.reset();
       }
     }
 
diff --git a/headless/test/headless_protocol_browsertest.cc b/headless/test/headless_protocol_browsertest.cc
index 5a700a0..7f7c8111 100644
--- a/headless/test/headless_protocol_browsertest.cc
+++ b/headless/test/headless_protocol_browsertest.cc
@@ -701,7 +701,7 @@
 HEADLESS_PROTOCOL_TEST_WITH_COMMAND_LINE_EXTRAS(
     MAYBE_RequestFullscreenOnSecondaryScreen,
     "sanity/request-fullscreen-on-secondary-screen.js",
-    "--screen-info={ label='1st screen' }{  600x800 label='2nd screen' }")
+    "--screen-info={ label='1st screen' }{ 600x800 label='2nd screen' }")
 
 HEADLESS_PROTOCOL_TEST_WITH_COMMAND_LINE_EXTRAS(
     MAYBE_ScreenRotationSecondaryScreen,
diff --git a/headless/test/headless_web_contents_browsertest.cc b/headless/test/headless_web_contents_browsertest.cc
index 8f599616..c0c7375 100644
--- a/headless/test/headless_web_contents_browsertest.cc
+++ b/headless/test/headless_web_contents_browsertest.cc
@@ -10,6 +10,7 @@
 #include <vector>
 
 #include "base/base64.h"
+#include "base/check_deref.h"
 #include "base/check_op.h"
 #include "base/command_line.h"
 #include "base/functional/bind.h"
@@ -658,16 +659,17 @@
 
   void OnFrameTreeResult(base::Value::Dict result) {
     // Make sure the iframe did not load successfully.
-    auto& child_frames =
-        *result.FindListByDottedPath("result.frameTree.childFrames");
+    const auto& child_frames = CHECK_DEREF(
+        result.FindListByDottedPath("result.frameTree.childFrames"));
     EXPECT_EQ(DictString(child_frames[0].GetDict(), "frame.url"),
               "chrome-error://chromewebdata/");
     FinishAsynchronousTest();
   }
 
   bool ShouldEnableSitePerProcess() override {
-    // Currently this test seg faults with OOPIF enabled.
-    // https://crbug.com/382703193.
+    // Headless browser tests by default run with OOPIF enabled. This results in
+    // the child frame to appear in a separate target. For simplicity we disable
+    // OOPIF for this test and expect child frame in the same target.
     return false;
   }
 
diff --git a/infra/config/generated/builders/ci/win-updater-builder-dbg/targets/chromium.updater.json b/infra/config/generated/builders/ci/win-updater-builder-dbg/targets/chromium.updater.json
index 3c9436d..a9a61092 100644
--- a/infra/config/generated/builders/ci/win-updater-builder-dbg/targets/chromium.updater.json
+++ b/infra/config/generated/builders/ci/win-updater-builder-dbg/targets/chromium.updater.json
@@ -58,7 +58,9 @@
             "os": "Windows-10",
             "pool": "chromium.win.uac"
           },
-          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+          "hard_timeout": 7200,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 2
         },
         "test": "updater_tests_system",
         "test_id_prefix": "ninja://chrome/updater:updater_tests_system/"
@@ -95,7 +97,9 @@
             "os": "Windows-11",
             "pool": "chromium.win.uac"
           },
-          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+          "hard_timeout": 7200,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 2
         },
         "test": "updater_tests_system",
         "test_id_prefix": "ninja://chrome/updater:updater_tests_system/"
diff --git a/infra/config/generated/builders/ci/win-updater-builder-rel/targets/chromium.updater.json b/infra/config/generated/builders/ci/win-updater-builder-rel/targets/chromium.updater.json
index 382498a..1577bed 100644
--- a/infra/config/generated/builders/ci/win-updater-builder-rel/targets/chromium.updater.json
+++ b/infra/config/generated/builders/ci/win-updater-builder-rel/targets/chromium.updater.json
@@ -58,7 +58,9 @@
             "os": "Windows-10",
             "pool": "chromium.win.uac"
           },
-          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+          "hard_timeout": 7200,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 2
         },
         "test": "updater_tests_system",
         "test_id_prefix": "ninja://chrome/updater:updater_tests_system/"
diff --git a/infra/config/generated/builders/ci/win10-updater-tester-dbg-uac/targets/chromium.updater.json b/infra/config/generated/builders/ci/win10-updater-tester-dbg-uac/targets/chromium.updater.json
index 50562cf..65f87d5d 100644
--- a/infra/config/generated/builders/ci/win10-updater-tester-dbg-uac/targets/chromium.updater.json
+++ b/infra/config/generated/builders/ci/win10-updater-tester-dbg-uac/targets/chromium.updater.json
@@ -13,7 +13,9 @@
             "os": "Windows-10",
             "pool": "chromium.win.uac"
           },
-          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+          "hard_timeout": 7200,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 2
         },
         "test": "updater_tests_system",
         "test_id_prefix": "ninja://chrome/updater:updater_tests_system/"
diff --git a/infra/config/generated/builders/ci/win10-updater-tester-rel-uac/targets/chromium.updater.json b/infra/config/generated/builders/ci/win10-updater-tester-rel-uac/targets/chromium.updater.json
index 97b2744d..8341510e 100644
--- a/infra/config/generated/builders/ci/win10-updater-tester-rel-uac/targets/chromium.updater.json
+++ b/infra/config/generated/builders/ci/win10-updater-tester-rel-uac/targets/chromium.updater.json
@@ -13,7 +13,9 @@
             "os": "Windows-10",
             "pool": "chromium.win.uac"
           },
-          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+          "hard_timeout": 7200,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 2
         },
         "test": "updater_tests_system",
         "test_id_prefix": "ninja://chrome/updater:updater_tests_system/"
diff --git a/infra/config/generated/builders/ci/win11-updater-tester-dbg-uac/targets/chromium.updater.json b/infra/config/generated/builders/ci/win11-updater-tester-dbg-uac/targets/chromium.updater.json
index 2c7e028c..126901a 100644
--- a/infra/config/generated/builders/ci/win11-updater-tester-dbg-uac/targets/chromium.updater.json
+++ b/infra/config/generated/builders/ci/win11-updater-tester-dbg-uac/targets/chromium.updater.json
@@ -13,7 +13,9 @@
             "os": "Windows-11",
             "pool": "chromium.win.uac"
           },
-          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+          "hard_timeout": 7200,
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+          "shards": 2
         },
         "test": "updater_tests_system",
         "test_id_prefix": "ninja://chrome/updater:updater_tests_system/"
diff --git a/infra/config/targets/bundles.star b/infra/config/targets/bundles.star
index 79f9d96..8a0b81e0 100644
--- a/infra/config/targets/bundles.star
+++ b/infra/config/targets/bundles.star
@@ -5951,6 +5951,12 @@
     ],
     per_test_modifications = {
         "updater_tests_system": [
+            targets.mixin(
+                swarming = targets.swarming(
+                    shards = 2,
+                    hard_timeout_sec = 7200,
+                ),
+            ),
             "integrity_high",
             "updater-win-uac-pool",
         ],
diff --git a/ios/chrome/app/resources/BUILD.gn b/ios/chrome/app/resources/BUILD.gn
index 8a59b90..7571551 100644
--- a/ios/chrome/app/resources/BUILD.gn
+++ b/ios/chrome/app/resources/BUILD.gn
@@ -64,7 +64,7 @@
     "$root_gen_dir/components/dev_ui_components_resources.pak",
     "$root_gen_dir/components/download_internals_resources.pak",
     "$root_gen_dir/components/flags_ui_resources.pak",
-    "$root_gen_dir/components/metrics/metrics_url_constants.pak",
+    "$root_gen_dir/components/metrics/metrics_server_urls.pak",
     "$root_gen_dir/components/ntp_tiles_internals_resources.pak",
     "$root_gen_dir/components/optimization_guide_internals_resources.pak",
     "$root_gen_dir/components/policy_resources.pak",
@@ -82,7 +82,7 @@
     ":ios_resources",
     "//components/commerce/core/internals/resources",
     "//components/download/resources/download_internals:resources",
-    "//components/metrics:url_constants",
+    "//components/metrics:server_urls_grd",
     "//components/ntp_tiles/webui/resources:resources",
     "//components/optimization_guide/optimization_guide_internals/resources",
     "//components/policy/resources/webui:resources",
diff --git a/ios/chrome/browser/autofill/ui_bundled/manual_fill/manual_fill_injection_handler.mm b/ios/chrome/browser/autofill/ui_bundled/manual_fill/manual_fill_injection_handler.mm
index d06dda8..5cd0c32a 100644
--- a/ios/chrome/browser/autofill/ui_bundled/manual_fill/manual_fill_injection_handler.mm
+++ b/ios/chrome/browser/autofill/ui_bundled/manual_fill/manual_fill_injection_handler.mm
@@ -273,8 +273,7 @@
   self.lastFocusedElementPasswordField = params.field_type == "password";
   DCHECK(frame);
   self.lastFocusedElementFrameIdentifier = frame->GetFrameId();
-  const GURL frameSecureOrigin = frame->GetSecurityOriginDeprecated();
-  if (!frameSecureOrigin.SchemeIsCryptographic()) {
+  if (!GURL::SchemeIsCryptographic(frame->GetSecurityOrigin().scheme())) {
     self.lastFocusedElementSecure = NO;
   }
 }
diff --git a/ios/chrome/browser/follow/model/BUILD.gn b/ios/chrome/browser/follow/model/BUILD.gn
index 741a6f1..dcdcd5e5 100644
--- a/ios/chrome/browser/follow/model/BUILD.gn
+++ b/ios/chrome/browser/follow/model/BUILD.gn
@@ -107,11 +107,11 @@
   deps = [
     ":service",
     "//base",
-    "//components/keyed_service/ios",
     "//components/pref_registry:pref_registry",
     "//ios/chrome/browser/discover_feed/model:discover_feed_factory",
     "//ios/chrome/browser/shared/model/prefs:pref_names",
     "//ios/chrome/browser/shared/model/profile",
+    "//ios/chrome/browser/shared/model/profile:profile_keyed_service_factory",
     "//ios/public/provider/chrome/browser/follow:follow_api",
   ]
 }
diff --git a/ios/chrome/browser/follow/model/follow_service_factory.h b/ios/chrome/browser/follow/model/follow_service_factory.h
index 95fe1df..93c78b9 100644
--- a/ios/chrome/browser/follow/model/follow_service_factory.h
+++ b/ios/chrome/browser/follow/model/follow_service_factory.h
@@ -6,21 +6,18 @@
 #define IOS_CHROME_BROWSER_FOLLOW_MODEL_FOLLOW_SERVICE_FACTORY_H_
 
 #import "base/no_destructor.h"
-#import "components/keyed_service/ios/browser_state_keyed_service_factory.h"
+#import "ios/chrome/browser/shared/model/profile/profile_keyed_service_factory_ios.h"
 
 class FollowService;
 class ProfileIOS;
 
 // Singleton that owns all FollowServices and associates them with
 // ProfileIOS.
-class FollowServiceFactory : public BrowserStateKeyedServiceFactory {
+class FollowServiceFactory : public ProfileKeyedServiceFactoryIOS {
  public:
   static FollowService* GetForProfile(ProfileIOS* profile);
   static FollowServiceFactory* GetInstance();
 
-  FollowServiceFactory(const FollowServiceFactory&) = delete;
-  FollowServiceFactory& operator=(const FollowServiceFactory&) = delete;
-
  private:
   friend class base::NoDestructor<FollowServiceFactory>;
 
diff --git a/ios/chrome/browser/follow/model/follow_service_factory.mm b/ios/chrome/browser/follow/model/follow_service_factory.mm
index f61ebe1..626cf69 100644
--- a/ios/chrome/browser/follow/model/follow_service_factory.mm
+++ b/ios/chrome/browser/follow/model/follow_service_factory.mm
@@ -4,8 +4,6 @@
 
 #import "ios/chrome/browser/follow/model/follow_service_factory.h"
 
-#import "base/no_destructor.h"
-#import "components/keyed_service/ios/browser_state_dependency_manager.h"
 #import "components/pref_registry/pref_registry_syncable.h"
 #import "ios/chrome/browser/discover_feed/model/discover_feed_service_factory.h"
 #import "ios/chrome/browser/follow/model/follow_configuration.h"
@@ -16,8 +14,8 @@
 
 // static
 FollowService* FollowServiceFactory::GetForProfile(ProfileIOS* profile) {
-  return static_cast<FollowService*>(
-      GetInstance()->GetServiceForBrowserState(profile, true));
+  return GetInstance()->GetServiceForProfileAs<FollowService>(profile,
+                                                              /*create=*/true);
 }
 
 // static
@@ -27,9 +25,7 @@
 }
 
 FollowServiceFactory::FollowServiceFactory()
-    : BrowserStateKeyedServiceFactory(
-          "FollowService",
-          BrowserStateDependencyManager::GetInstance()) {
+    : ProfileKeyedServiceFactoryIOS("FollowService") {
   DependsOn(DiscoverFeedServiceFactory::GetInstance());
 }
 
diff --git a/ios/chrome/browser/follow/model/follow_tab_helper.mm b/ios/chrome/browser/follow/model/follow_tab_helper.mm
index e636f4f1..39b4792a 100644
--- a/ios/chrome/browser/follow/model/follow_tab_helper.mm
+++ b/ios/chrome/browser/follow/model/follow_tab_helper.mm
@@ -268,7 +268,7 @@
             ProfileIOS::FromBrowserState(web_state_->GetBrowserState()))
             ->IsWebSiteFollowed(web_page_urls);
 
-    std::string domain_name = web_frame->GetSecurityOriginDeprecated().host();
+    std::string domain_name = web_frame->GetSecurityOrigin().host();
     if (base::StartsWith(domain_name, kRemovablePrefix)) {
       domain_name = domain_name.substr(strlen(kRemovablePrefix));
     }
diff --git a/ios/chrome/browser/link_to_text/model/link_to_text_java_script_feature.mm b/ios/chrome/browser/link_to_text/model/link_to_text_java_script_feature.mm
index e99a7ec..6a60bf44 100644
--- a/ios/chrome/browser/link_to_text/model/link_to_text_java_script_feature.mm
+++ b/ios/chrome/browser/link_to_text/model/link_to_text_java_script_feature.mm
@@ -21,7 +21,7 @@
 const char kGetLinkToTextFunction[] = "linkToText.getLinkToText";
 
 bool IsKnownAmpCache(web::WebFrame* frame) {
-  GURL origin = frame->GetSecurityOriginDeprecated();
+  url::Origin origin = frame->GetSecurityOrigin();
 
   // Source:
   // https://github.com/ampproject/amphtml/blob/main/build-system/global-configs/caches.json
diff --git a/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios.zip.sha1 b/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios.zip.sha1
index 10bb4164..3e9d5ad6 100644
--- a/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios.zip.sha1
+++ b/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios.zip.sha1
@@ -1 +1 @@
-0d3121eb762ac2c9aecb73811511ce64d4e911eb
\ No newline at end of file
+f0f4d291806f343e9beabf14b2cdec4b06c72b00
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios_asan.zip.sha1 b/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios_asan.zip.sha1
index 7d6b0a0..79650a1 100644
--- a/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios_asan.zip.sha1
+++ b/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios_asan.zip.sha1
@@ -1 +1 @@
-82d53f9ec8c6c132b372b11dce1da68202a71eda
\ No newline at end of file
+38887eb340c590e49587e98496f8e464a23b1e23
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1 b/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1
index 418e6df..4f1327a 100644
--- a/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1
+++ b/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1
@@ -1 +1 @@
-43c2fd959cb29ce5435f3f50054a76adf540319a
\ No newline at end of file
+e12dbf3ef61fef0fd0d5810ee36ac9d510af2c6e
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios_asan.zip.sha1 b/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios_asan.zip.sha1
index 1045dcf..5b0bf6f 100644
--- a/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios_asan.zip.sha1
+++ b/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios_asan.zip.sha1
@@ -1 +1 @@
-79676f6d6d7c971821b290f60e2b898d4b1285d5
\ No newline at end of file
+cc20cc0cf1887799227b9fb43c76854c1e08574c
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1 b/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1
index 528cf9b49..b8ff5c0 100644
--- a/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1
+++ b/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1
@@ -1 +1 @@
-653561d907f1c55553128767bcb9820e3b87e5b2
\ No newline at end of file
+12f6e25b694cebc76047370c291effb4193f4e94
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios_asan.zip.sha1 b/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios_asan.zip.sha1
index 48c47b5b..2f07dba7 100644
--- a/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios_asan.zip.sha1
+++ b/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios_asan.zip.sha1
@@ -1 +1 @@
-06b912ee31c9d64bc19dbb33a64213da5f75fdb1
\ No newline at end of file
+a728289809d6c0c523a805e207873d3a177e43c0
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios.zip.sha1
index de7b987..1db8aabb 100644
--- a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@
-05f200fb6604f99070510c7f79833649b5d9b869
\ No newline at end of file
+f376ec3a5ff53829b927d7b780c9f5f085f6cb6c
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios_asan.zip.sha1 b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios_asan.zip.sha1
index 51ad995..e5ee4e1 100644
--- a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios_asan.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios_asan.zip.sha1
@@ -1 +1 @@
-61b1122702f054358c604e4395998de496b38bd9
\ No newline at end of file
+b01f7e45e9ead53bc8fa75bfd79189b5e75de6cd
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator.zip.sha1
index e86eb0a6..543113d8 100644
--- a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@
-0d2b1639f48cd50fff37658e09b30fa54380c520
\ No newline at end of file
+d5fb16133ba69aba8f8dcfa6a946b1936885890d
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator_asan.zip.sha1 b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator_asan.zip.sha1
index cb31d59..6cc9ebb5 100644
--- a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator_asan.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator_asan.zip.sha1
@@ -1 +1 @@
-2a2b82b8ebc8484f368441919d1ce12176cc0caa
\ No newline at end of file
+c96d09b045945d4d308664cd14ee981961e0819b
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1
index e6be8129..1204693 100644
--- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@
-e5a6ee1f5e6cb0a1114bffa4a2d3e2e4ebe844b3
\ No newline at end of file
+2ed0f045da7372788b9ce4414883dc99d322ef6b
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios_asan.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios_asan.zip.sha1
index a1dd931..e86348de 100644
--- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios_asan.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios_asan.zip.sha1
@@ -1 +1 @@
-47867b5e5fd6d5d3b1d4a3195879a772ef3e6ba1
\ No newline at end of file
+3d32329d837bdb31272d6723a089478f825d9671
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1
index 8271478..11b8886 100644
--- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@
-e16709bb4bf57e8526e8c5a8aad284097938bd45
\ No newline at end of file
+b0d3645262e949148952231a752520aa88967ca5
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator_asan.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator_asan.zip.sha1
index 2f0c04d..e459076 100644
--- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator_asan.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator_asan.zip.sha1
@@ -1 +1 @@
-ab646757b2cb9c9931ffc77db8790fdf82f7bb20
\ No newline at end of file
+e6f2f4ba3252aca2eac7aa15ebb568c3c8dfe8c6
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1
index 59bbb7a..c73ff7b 100644
--- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@
-507580751f11fb29f07b23c2d6912d4ceeed33cf
\ No newline at end of file
+b8d9cd9f7dc9c8e0450799218eac26285ad8b699
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios_asan.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios_asan.zip.sha1
index bff3ce1..321ee46 100644
--- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios_asan.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios_asan.zip.sha1
@@ -1 +1 @@
-b48dd0e43ad764d4a0e03d1f60da8d2ebf6b91ff
\ No newline at end of file
+e2646dedcf9755f9abafd45aa2a76ceda01d7e7b
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1
index 5e0d0d9..6613395d6 100644
--- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@
-a1f1498b791b2756f7c74e32286da6fe4a3d03dc
\ No newline at end of file
+dcad50b0f95a9a052719bbcfb8462ae287d70797
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator_asan.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator_asan.zip.sha1
index 695ee81..ff26a27 100644
--- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator_asan.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator_asan.zip.sha1
@@ -1 +1 @@
-b44e55b82c609a799cb17f8d84d307f3f4c1c30f
\ No newline at end of file
+949d8e6920393b9bf2fbc954be4a577787277194
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1
index 7c33c15..684fa18 100644
--- a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@
-73d339ccbdbc3f8b52a6b9d47f1257fa4df3e895
\ No newline at end of file
+fc0383392f2b5f73e064480b6672ad52651b294d
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1
index 72dc1be..74000aeb 100644
--- a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@
-161408f224b8c9f2e6e58e6d977247efb0deb5ff
\ No newline at end of file
+0dd58bd92c14c762ed86e0280336ee5adb6e514d
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1
index 9de6e26..c451113 100644
--- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@
-8fc6ef0285b2663058698b5a986e591640eacf39
\ No newline at end of file
+a6267bc9d46ce5141c4844ab6c0f4c9d8a3a855d
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios_asan.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios_asan.zip.sha1
index 7f80287..7e196d3 100644
--- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios_asan.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios_asan.zip.sha1
@@ -1 +1 @@
-d5450165b2e637b80ca413266944e2d3ee5ffc9c
\ No newline at end of file
+ccd5b00c559147dbc28e108872547f19abbff0a1
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1
index 093e6ed5..3ed3aff 100644
--- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@
-0fb5128b2d54d37d4886bb69e000f226d8a3d6ad
\ No newline at end of file
+8123e1b8f8363a713a1451d3dc54eba1cc8e6036
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator_asan.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator_asan.zip.sha1
index 8385a03f..c50b1a93 100644
--- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator_asan.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator_asan.zip.sha1
@@ -1 +1 @@
-3a52dcf52c6e11a62e7c8b90ed7626068eab756f
\ No newline at end of file
+f85a7d390ecc1c80078e10d3d4fb77444bac457e
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1
index 05adf01..197e9b11 100644
--- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1
+++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@
-57b57a9b439db3a6514e75aedc2cad9246c25c3b
\ No newline at end of file
+e75e726fcdba5b3b32b5d0a567371e7e07af1f8e
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios_asan.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios_asan.zip.sha1
index 067eea2..da62327a 100644
--- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios_asan.zip.sha1
+++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios_asan.zip.sha1
@@ -1 +1 @@
-f1be2c695b578d1498b6c665b7195d882a44360d
\ No newline at end of file
+bd04cf36942cb9e7df1181f9c891bf8dc0c70490
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1
index c88f7de..dc6f3e3 100644
--- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1
+++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@
-501cffb15c05322b169a76065520fc563a3e521b
\ No newline at end of file
+ea7f46872e0b18bf0cb7cf29acb0b2262c7d4636
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator_asan.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator_asan.zip.sha1
index e4c6cb2..7c0d8dc 100644
--- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator_asan.zip.sha1
+++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator_asan.zip.sha1
@@ -1 +1 @@
-d489aff72910c39b0da73530df1661f2daa1c52e
\ No newline at end of file
+190e832f99b861125a46da6eac7864aff5ecef0f
\ No newline at end of file
diff --git a/ios/testing/earl_grey/base_earl_grey_test_case.mm b/ios/testing/earl_grey/base_earl_grey_test_case.mm
index f43bf00..b918cee 100644
--- a/ios/testing/earl_grey/base_earl_grey_test_case.mm
+++ b/ios/testing/earl_grey/base_earl_grey_test_case.mm
@@ -43,6 +43,7 @@
   NSArray<NSString*>* blockedURLs = @[
     @".*app-measurement\\.com.*",
     @".*google\\.com.*",
+    @".*googleapis\\.com.*",
     @".*app-analytics-services\\.com.*",
   ];
   [[GREYConfiguration sharedConfiguration]
diff --git a/ios/web/js_messaging/web_frames_manager_impl_unittest.mm b/ios/web/js_messaging/web_frames_manager_impl_unittest.mm
index 65514bc1..86b87b377 100644
--- a/ios/web/js_messaging/web_frames_manager_impl_unittest.mm
+++ b/ios/web/js_messaging/web_frames_manager_impl_unittest.mm
@@ -95,6 +95,8 @@
   EXPECT_EQ(main_frame, main_frame_by_id);
   EXPECT_EQ(main_frame_ptr, main_frame_by_id);
   EXPECT_TRUE(main_frame->IsMainFrame());
+  EXPECT_EQ(main_frame_ptr->GetSecurityOrigin(),
+            main_frame->GetSecurityOrigin());
   EXPECT_EQ(main_frame_ptr->GetSecurityOriginDeprecated(),
             main_frame->GetSecurityOriginDeprecated());
 
@@ -139,6 +141,8 @@
   EXPECT_EQ(main_frame, main_frame_by_id);
   EXPECT_EQ(main_frame_ptr, main_frame_by_id);
   EXPECT_TRUE(main_frame->IsMainFrame());
+  EXPECT_EQ(main_frame_ptr->GetSecurityOrigin(),
+            main_frame->GetSecurityOrigin());
   EXPECT_EQ(main_frame_ptr->GetSecurityOriginDeprecated(),
             main_frame->GetSecurityOriginDeprecated());
 
@@ -209,6 +213,8 @@
   EXPECT_EQ(main_frame, main_frame_by_id);
   EXPECT_EQ(main_frame_ptr, main_frame_by_id);
   EXPECT_TRUE(main_frame->IsMainFrame());
+  EXPECT_EQ(main_frame_ptr->GetSecurityOrigin(),
+            main_frame->GetSecurityOrigin());
   EXPECT_EQ(main_frame_ptr->GetSecurityOriginDeprecated(),
             main_frame->GetSecurityOriginDeprecated());
 
diff --git a/ios/web/js_messaging/web_frames_manager_inttest.mm b/ios/web/js_messaging/web_frames_manager_inttest.mm
index c234cbb..720a8a2 100644
--- a/ios/web/js_messaging/web_frames_manager_inttest.mm
+++ b/ios/web/js_messaging/web_frames_manager_inttest.mm
@@ -78,6 +78,7 @@
   ASSERT_TRUE(main_web_frame);
   EXPECT_TRUE(main_web_frame->IsMainFrame());
   EXPECT_FALSE(main_web_frame->GetFrameId().empty());
+  EXPECT_TRUE(main_web_frame->GetSecurityOrigin().IsSameOriginWith(url));
   EXPECT_EQ(url.DeprecatedGetOriginAsURL(),
             main_web_frame->GetSecurityOriginDeprecated());
 }
@@ -107,6 +108,8 @@
   WebFrame* pony_main_web_frame = frames_manager->GetMainWebFrame();
   ASSERT_TRUE(pony_main_web_frame);
   EXPECT_TRUE(pony_main_web_frame->IsMainFrame());
+  EXPECT_TRUE(
+      pony_main_web_frame->GetSecurityOrigin().IsSameOriginWith(pony_url));
   EXPECT_EQ(pony_url.DeprecatedGetOriginAsURL(),
             pony_main_web_frame->GetSecurityOriginDeprecated());
 
@@ -153,6 +156,8 @@
   WebFrame* pony_main_web_frame = frames_manager->GetMainWebFrame();
   ASSERT_TRUE(pony_main_web_frame);
   EXPECT_TRUE(pony_main_web_frame->IsMainFrame());
+  EXPECT_TRUE(
+      pony_main_web_frame->GetSecurityOrigin().IsSameOriginWith(pony_url));
   EXPECT_EQ(pony_url.DeprecatedGetOriginAsURL(),
             pony_main_web_frame->GetSecurityOriginDeprecated());
 
diff --git a/ios/web/js_messaging/web_frames_manager_java_script_feature_unittest.mm b/ios/web/js_messaging/web_frames_manager_java_script_feature_unittest.mm
index 67608997..3ade518 100644
--- a/ios/web/js_messaging/web_frames_manager_java_script_feature_unittest.mm
+++ b/ios/web/js_messaging/web_frames_manager_java_script_feature_unittest.mm
@@ -47,13 +47,13 @@
     // Mock WKSecurityOrigin.
     WKSecurityOrigin* security_origin = OCMClassMock([WKSecurityOrigin class]);
     OCMStub([security_origin host])
-        .andReturn(base::SysUTF8ToNSString(
-            web_frame->GetSecurityOriginDeprecated().host()));
+        .andReturn(
+            base::SysUTF8ToNSString(web_frame->GetSecurityOrigin().host()));
     OCMStub([security_origin port])
-        .andReturn(web_frame->GetSecurityOriginDeprecated().EffectiveIntPort());
+        .andReturn(web_frame->GetSecurityOrigin().port());
     OCMStub([security_origin protocol])
-        .andReturn(base::SysUTF8ToNSString(
-            web_frame->GetSecurityOriginDeprecated().scheme()));
+        .andReturn(
+            base::SysUTF8ToNSString(web_frame->GetSecurityOrigin().scheme()));
 
     // Mock WKFrameInfo.
     WKFrameInfo* frame_info = OCMClassMock([WKFrameInfo class]);
@@ -82,13 +82,13 @@
     // Mock WKSecurityOrigin.
     WKSecurityOrigin* security_origin = OCMClassMock([WKSecurityOrigin class]);
     OCMStub([security_origin host])
-        .andReturn(base::SysUTF8ToNSString(
-            web_frame->GetSecurityOriginDeprecated().host()));
+        .andReturn(
+            base::SysUTF8ToNSString(web_frame->GetSecurityOrigin().host()));
     OCMStub([security_origin port])
-        .andReturn(web_frame->GetSecurityOriginDeprecated().EffectiveIntPort());
+        .andReturn(web_frame->GetSecurityOrigin().port());
     OCMStub([security_origin protocol])
-        .andReturn(base::SysUTF8ToNSString(
-            web_frame->GetSecurityOriginDeprecated().scheme()));
+        .andReturn(
+            base::SysUTF8ToNSString(web_frame->GetSecurityOrigin().scheme()));
 
     // Mock WKFrameInfo.
     WKFrameInfo* frame_info = OCMClassMock([WKFrameInfo class]);
@@ -148,6 +148,7 @@
   ASSERT_TRUE(main_frame);
   EXPECT_EQ(main_frame, main_frame_by_id);
   EXPECT_TRUE(main_frame->IsMainFrame());
+  EXPECT_EQ(main_frame_->GetSecurityOrigin(), main_frame->GetSecurityOrigin());
   EXPECT_EQ(main_frame_->GetSecurityOriginDeprecated(),
             main_frame->GetSecurityOriginDeprecated());
 
@@ -161,6 +162,7 @@
   ASSERT_TRUE(main_frame);
   EXPECT_EQ(main_frame, main_frame_by_id);
   EXPECT_TRUE(main_frame->IsMainFrame());
+  EXPECT_EQ(main_frame_->GetSecurityOrigin(), main_frame->GetSecurityOrigin());
   EXPECT_EQ(main_frame_->GetSecurityOriginDeprecated(),
             main_frame->GetSecurityOriginDeprecated());
   // Check frame 1.
@@ -168,6 +170,7 @@
       GetPageWorldWebFramesManager().GetFrameWithId(frame_1_->GetFrameId());
   ASSERT_TRUE(frame_1);
   EXPECT_FALSE(frame_1->IsMainFrame());
+  EXPECT_EQ(frame_1_->GetSecurityOrigin(), frame_1->GetSecurityOrigin());
   EXPECT_EQ(frame_1_->GetSecurityOriginDeprecated(),
             frame_1->GetSecurityOriginDeprecated());
 
@@ -181,6 +184,7 @@
   ASSERT_TRUE(main_frame);
   EXPECT_EQ(main_frame, main_frame_by_id);
   EXPECT_TRUE(main_frame->IsMainFrame());
+  EXPECT_EQ(main_frame_->GetSecurityOrigin(), main_frame->GetSecurityOrigin());
   EXPECT_EQ(main_frame_->GetSecurityOriginDeprecated(),
             main_frame->GetSecurityOriginDeprecated());
   // Check frame 1.
@@ -188,6 +192,7 @@
       GetPageWorldWebFramesManager().GetFrameWithId(frame_1_->GetFrameId());
   ASSERT_TRUE(frame_1);
   EXPECT_FALSE(frame_1->IsMainFrame());
+  EXPECT_EQ(frame_1_->GetSecurityOrigin(), frame_1->GetSecurityOrigin());
   EXPECT_EQ(frame_1_->GetSecurityOriginDeprecated(),
             frame_1->GetSecurityOriginDeprecated());
   // Check frame 2.
@@ -195,6 +200,7 @@
       GetPageWorldWebFramesManager().GetFrameWithId(frame_2_->GetFrameId());
   ASSERT_TRUE(frame_2);
   EXPECT_FALSE(frame_2->IsMainFrame());
+  EXPECT_EQ(frame_2_->GetSecurityOrigin(), frame_2->GetSecurityOrigin());
   EXPECT_EQ(frame_2_->GetSecurityOriginDeprecated(),
             frame_2->GetSecurityOriginDeprecated());
 
@@ -208,6 +214,7 @@
   ASSERT_TRUE(main_frame);
   EXPECT_EQ(main_frame, main_frame_by_id);
   EXPECT_TRUE(main_frame->IsMainFrame());
+  EXPECT_EQ(main_frame_->GetSecurityOrigin(), main_frame->GetSecurityOrigin());
   EXPECT_EQ(main_frame_->GetSecurityOriginDeprecated(),
             main_frame->GetSecurityOriginDeprecated());
   // Check frame 1.
@@ -219,6 +226,7 @@
       GetPageWorldWebFramesManager().GetFrameWithId(frame_2_->GetFrameId());
   ASSERT_TRUE(frame_2);
   EXPECT_FALSE(frame_2->IsMainFrame());
+  EXPECT_EQ(frame_2_->GetSecurityOrigin(), frame_2->GetSecurityOrigin());
   EXPECT_EQ(frame_2_->GetSecurityOriginDeprecated(),
             frame_2->GetSecurityOriginDeprecated());
 
@@ -240,6 +248,7 @@
       GetPageWorldWebFramesManager().GetFrameWithId(frame_2_->GetFrameId());
   ASSERT_TRUE(frame_2);
   EXPECT_FALSE(frame_2->IsMainFrame());
+  EXPECT_EQ(frame_2_->GetSecurityOrigin(), frame_2->GetSecurityOrigin());
   EXPECT_EQ(frame_2_->GetSecurityOriginDeprecated(),
             frame_2->GetSecurityOriginDeprecated());
 
diff --git a/ios/web/navigation/crw_wk_navigation_handler.mm b/ios/web/navigation/crw_wk_navigation_handler.mm
index 0079305..62adda9 100644
--- a/ios/web/navigation/crw_wk_navigation_handler.mm
+++ b/ios/web/navigation/crw_wk_navigation_handler.mm
@@ -439,20 +439,20 @@
   if (action.sourceFrame && action.targetFrame &&
       action.sourceFrame.webView == action.targetFrame.webView &&
       action.sourceFrame != action.targetFrame) {
-    isCrossOriginTargetFrame = !url::IsSameOriginWith(
-        web::GURLOriginWithWKSecurityOrigin(action.sourceFrame.securityOrigin),
-        web::GURLOriginWithWKSecurityOrigin(action.targetFrame.securityOrigin));
+    isCrossOriginTargetFrame =
+        !web::OriginWithWKSecurityOrigin(action.sourceFrame.securityOrigin)
+             .IsSameOriginWith(web::OriginWithWKSecurityOrigin(
+                 action.targetFrame.securityOrigin));
   }
 
   BOOL isCrossOriginCrossWindow = NO;
   if (action.sourceFrame && action.targetFrame &&
       action.sourceFrame.webView != action.targetFrame.webView) {
-    GURL sourceOrigin =
-        web::GURLOriginWithWKSecurityOrigin(action.sourceFrame.securityOrigin);
-    GURL targetOrigin =
-        web::GURLOriginWithWKSecurityOrigin(action.targetFrame.securityOrigin);
-    isCrossOriginCrossWindow =
-        !url::IsSameOriginWith(sourceOrigin, targetOrigin);
+    url::Origin sourceOrigin =
+        web::OriginWithWKSecurityOrigin(action.sourceFrame.securityOrigin);
+    url::Origin targetOrigin =
+        web::OriginWithWKSecurityOrigin(action.targetFrame.securityOrigin);
+    isCrossOriginCrossWindow = !sourceOrigin.IsSameOriginWith(targetOrigin);
   }
 
   // Ref: crbug.com/1408799
@@ -1556,11 +1556,11 @@
           self.webStateImpl->GetBrowserState()) &&
       action.navigationType == WKNavigationTypeFormSubmitted) {
     if (action.sourceFrame) {
-      GURL source_url = web::GURLOriginWithWKSecurityOrigin(
-          action.sourceFrame.securityOrigin);
+      url::Origin source_origin =
+          web::OriginWithWKSecurityOrigin(action.sourceFrame.securityOrigin);
       GURL form_action_url = net::GURLWithNSURL(action.request.URL);
       if (security_interstitials::IsInsecureFormActionOnSecureSource(
-              source_url, form_action_url)) {
+              source_origin, form_action_url)) {
         return web::FormWarningType::kInsecureForm;
       }
     }
diff --git a/ios/web/test/fakes/fake_web_frame_impl.mm b/ios/web/test/fakes/fake_web_frame_impl.mm
index ceb4328..e20fb8b 100644
--- a/ios/web/test/fakes/fake_web_frame_impl.mm
+++ b/ios/web/test/fakes/fake_web_frame_impl.mm
@@ -37,8 +37,9 @@
 std::unique_ptr<FakeWebFrame> FakeWebFrame::Create(const std::string& frame_id,
                                                    bool is_main_frame,
                                                    GURL security_origin) {
-  return std::make_unique<FakeWebFrameImpl>(frame_id, is_main_frame,
-                                            url::Origin(), security_origin);
+  return std::make_unique<FakeWebFrameImpl>(
+      frame_id, is_main_frame, url::Origin::Create(security_origin),
+      security_origin);
 }
 
 // static
@@ -58,7 +59,8 @@
 std::unique_ptr<FakeWebFrame> FakeWebFrame::CreateMainWebFrame(
     GURL security_origin) {
   return std::make_unique<FakeWebFrameImpl>(
-      kMainFakeFrameId, /*is_main_frame=*/true, url::Origin(), security_origin);
+      kMainFakeFrameId, /*is_main_frame=*/true,
+      url::Origin::Create(security_origin), security_origin);
 }
 
 // static
@@ -77,9 +79,10 @@
 // static
 std::unique_ptr<FakeWebFrame> FakeWebFrame::CreateChildWebFrame(
     GURL security_origin) {
-  return std::make_unique<FakeWebFrameImpl>(kChildFakeFrameId,
-                                            /*is_main_frame=*/false,
-                                            url::Origin(), security_origin);
+  return std::make_unique<FakeWebFrameImpl>(
+      kChildFakeFrameId,
+      /*is_main_frame=*/false, url::Origin::Create(security_origin),
+      security_origin);
 }
 
 FakeWebFrameImpl::FakeWebFrameImpl(const std::string& frame_id,
diff --git a/ios_internal b/ios_internal
index 0ab8b51..3f2de6e 160000
--- a/ios_internal
+++ b/ios_internal
@@ -1 +1 @@
-Subproject commit 0ab8b51d63a6a0a658d209f18df69058aa201007
+Subproject commit 3f2de6eed730e6f96f37636ea84815c933f28496
diff --git a/mojo/core/embedder/scoped_ipc_support.cc b/mojo/core/embedder/scoped_ipc_support.cc
index 3c00956..442ce0b 100644
--- a/mojo/core/embedder/scoped_ipc_support.cc
+++ b/mojo/core/embedder/scoped_ipc_support.cc
@@ -45,6 +45,9 @@
 ScopedIPCSupport::~ScopedIPCSupport() {
   if (IsMojoIpczEnabled()) {
     // No extra shutdown required for mojo-ipcz.
+    // Suppress -Wunused-private-field warning, to not leak the buildflags
+    // include into the header.
+    (void)shutdown_policy_;
     return;
   }
 
diff --git a/mojo/core/embedder/scoped_ipc_support.h b/mojo/core/embedder/scoped_ipc_support.h
index 5dc4f21..b43be7b 100644
--- a/mojo/core/embedder/scoped_ipc_support.h
+++ b/mojo/core/embedder/scoped_ipc_support.h
@@ -23,6 +23,9 @@
   // ShutdownPolicy is a type for specifying the desired Mojo IPC support
   // shutdown behavior used during ScopedIPCSupport destruction.
   //
+  // It only has an effect if BUILDFLAG(MOJO_SUPPORT_LEGACY_CORE),
+  // which currently is on ChromeOS and in fuzzer builds.
+  //
   // What follows is a quick overview of why shutdown behavior is interesting
   // and how you might decide which behavior is right for your use case.
   //
diff --git a/mojo/public/cpp/bindings/remote_set.h b/mojo/public/cpp/bindings/remote_set.h
index 3b8fc30..2d051f3 100644
--- a/mojo/public/cpp/bindings/remote_set.h
+++ b/mojo/public/cpp/bindings/remote_set.h
@@ -202,8 +202,19 @@
   Iterator end() const { return Iterator(storage_.end()); }
 
   void FlushForTesting() {
-    for (auto& it : storage_) {
-      it.second.FlushForTesting();
+    // Avoid flushing while iterating over `storage_` because this map may be
+    // mutated during individual flush operations.  Instead, snapshot the
+    // RemoteSetElementId first, then iterate over them.
+    std::vector<RemoteSetElementId> ids;
+    for (const auto& entry : storage_) {
+      ids.push_back(entry.first);
+    }
+
+    for (auto& id : ids) {
+      auto it = storage_.find(id);
+      if (it != storage_.end()) {
+        it->second.FlushForTesting();
+      }
     }
   }
 
diff --git a/net/disk_cache/simple/simple_entry_format.h b/net/disk_cache/simple/simple_entry_format.h
index 7a95cd6..6997367 100644
--- a/net/disk_cache/simple/simple_entry_format.h
+++ b/net/disk_cache/simple/simple_entry_format.h
@@ -7,6 +7,8 @@
 
 #include <stdint.h>
 
+#include <type_traits>
+
 #include "net/base/net_export.h"
 
 namespace disk_cache {
@@ -55,7 +57,12 @@
   uint32_t version;
   uint32_t key_length;
   uint32_t key_hash;
+
+  // Avoid implicit padding so `std::has_unique_object_representations_v<>` will
+  // hold.
+  uint32_t unused_padding = 0;
 };
+static_assert(std::has_unique_object_representations_v<SimpleFileHeader>);
 
 struct NET_EXPORT_PRIVATE SimpleFileEOF {
   enum Flags {
diff --git a/net/disk_cache/simple/simple_version_upgrade.h b/net/disk_cache/simple/simple_version_upgrade.h
index e3d58d6..ecc9e5e7 100644
--- a/net/disk_cache/simple/simple_version_upgrade.h
+++ b/net/disk_cache/simple/simple_version_upgrade.h
@@ -11,6 +11,8 @@
 
 #include <stdint.h>
 
+#include <type_traits>
+
 #include "net/base/cache_type.h"
 #include "net/base/net_export.h"
 
@@ -68,7 +70,12 @@
   // valid value of 2), and the second was used for an experiment parameter.
   uint32_t zero;
   uint32_t zero2;
+
+  // Avoid implicit padding so `std::has_unique_object_representations_v<>` will
+  // hold.
+  uint32_t unused_padding = 0;
 };
+static_assert(std::has_unique_object_representations_v<FakeIndexData>);
 
 // Exposed for testing.
 NET_EXPORT_PRIVATE bool UpgradeIndexV5V6(BackendFileOperations* file_operations,
diff --git a/net/quic/quic_socket_data_provider.cc b/net/quic/quic_socket_data_provider.cc
index f928e2b8..de2f6d6 100644
--- a/net/quic/quic_socket_data_provider.cc
+++ b/net/quic/quic_socket_data_provider.cc
@@ -18,8 +18,161 @@
 #include "base/task/sequenced_task_runner.h"
 #include "net/base/hex_utils.h"
 #include "net/socket/socket_test_util.h"
+#include "net/third_party/quiche/src/quiche/quic/core/crypto/null_encrypter.h"
+#include "net/third_party/quiche/src/quiche/quic/core/crypto/quic_crypto_server_config.h"
+#include "net/third_party/quiche/src/quiche/quic/core/http/quic_spdy_session.h"
 #include "net/third_party/quiche/src/quiche/quic/core/quic_packets.h"
-#include "testing/gtest/include/gtest/gtest.h"
+#include "net/third_party/quiche/src/quiche/quic/core/quic_time.h"
+#include "net/third_party/quiche/src/quiche/quic/core/quic_versions.h"
+#include "net/third_party/quiche/src/quiche/quic/test_tools/crypto_test_utils.h"
+#include "net/third_party/quiche/src/quiche/quic/test_tools/quic_test_utils.h"
+#include "net/third_party/quiche/src/quiche/quic/tools/quic_simple_server_session.h"
+
+namespace quic {
+
+namespace {
+
+class HttpStreamPrinter : public Http3DebugVisitor {
+ public:
+  explicit HttpStreamPrinter(std::ostream* output) : output_(output) {}
+
+  void OnControlStreamCreated(QuicStreamId stream_id) override {
+    if (output_) {
+      *output_ << "OnControlStreamCreated: " << stream_id << "\n";
+    }
+  }
+
+  void OnQpackEncoderStreamCreated(QuicStreamId stream_id) override {
+    if (output_) {
+      *output_ << "OnQpackEncoderStreamCreated: " << stream_id << "\n";
+    }
+  }
+
+  void OnQpackDecoderStreamCreated(QuicStreamId stream_id) override {
+    if (output_) {
+      *output_ << "OnQpackDecoderStreamCreated: " << stream_id << "\n";
+    }
+  }
+
+  void OnPeerControlStreamCreated(QuicStreamId stream_id) override {
+    if (output_) {
+      *output_ << "OnPeerControlStreamCreated: " << stream_id << "\n";
+    }
+  }
+
+  void OnPeerQpackEncoderStreamCreated(QuicStreamId stream_id) override {
+    if (output_) {
+      *output_ << "OnPeerQpackEncoderStreamCreated: " << stream_id << "\n";
+    }
+  }
+
+  void OnPeerQpackDecoderStreamCreated(QuicStreamId stream_id) override {
+    if (output_) {
+      *output_ << "OnPeerQpackDecoderStreamCreated: " << stream_id << "\n";
+    }
+  }
+
+  void OnSettingsFrameReceived(const SettingsFrame& frame) override {
+    if (output_) {
+      *output_ << "OnSettingsFrameReceived: " << frame << "\n";
+    }
+  }
+
+  void OnGoAwayFrameReceived(const GoAwayFrame& frame) override {
+    if (output_) {
+      *output_ << "OnGoAwayFrameReceived" << "\n";
+    }
+  }
+
+  void OnPriorityUpdateFrameReceived(
+      const PriorityUpdateFrame& frame) override {
+    if (output_) {
+      *output_ << "OnPriorityUpdateFrameReceived: " << frame << "\n";
+    }
+  }
+
+  void OnDataFrameReceived(QuicStreamId stream_id,
+                           QuicByteCount payload_length) override {
+    if (output_) {
+      *output_ << "OnDataFrameReceived: " << stream_id << ", "
+               << "received: " << payload_length << " bytes" << "\n";
+    }
+  }
+
+  void OnHeadersFrameReceived(
+      QuicStreamId stream_id,
+      QuicByteCount compressed_headers_length) override {
+    if (output_) {
+      *output_ << "OnHeadersFrameReceived: " << stream_id << ", "
+               << "received: " << compressed_headers_length << " bytes" << "\n";
+    }
+  }
+
+  void OnHeadersDecoded(QuicStreamId stream_id,
+                        QuicHeaderList headers) override {
+    if (output_) {
+      *output_ << "OnHeadersDecoded: " << stream_id << ", "
+               << "received: " << headers.DebugString() << "\n";
+    }
+  }
+
+  void OnUnknownFrameReceived(QuicStreamId stream_id,
+                              uint64_t frame_type,
+                              QuicByteCount payload_length) override {
+    if (output_) {
+      *output_ << "OnUnknownFrameReceived: " << stream_id << ", "
+               << "frame_type: " << frame_type << ","
+               << "received: " << payload_length << "bytes " << "\n ";
+    }
+  }
+
+  void OnSettingsFrameSent(const SettingsFrame& frame) override {
+    if (output_) {
+      *output_ << "OnSettingsFrameSent: " << frame << "\n";
+    }
+  }
+
+  void OnSettingsFrameResumed(const SettingsFrame& frame) override {
+    if (output_) {
+      *output_ << "OnSettingsFrameResumed: " << frame << "\n";
+    }
+  }
+
+  void OnGoAwayFrameSent(QuicStreamId stream_id) override {
+    if (output_) {
+      *output_ << "OnGoAwayFrameSent: " << stream_id << "\n";
+    }
+  }
+
+  void OnPriorityUpdateFrameSent(const PriorityUpdateFrame& frame) override {
+    if (output_) {
+      *output_ << "OnPriorityUpdateFrameSent: " << frame << "\n";
+    }
+  }
+
+  void OnDataFrameSent(QuicStreamId stream_id,
+                       QuicByteCount payload_length) override {
+    if (output_) {
+      *output_ << "OnDataFrameSent: " << stream_id << ", "
+               << "sent: " << payload_length << " bytes" << "\n";
+    }
+  }
+
+  void OnHeadersFrameSent(
+      QuicStreamId stream_id,
+      const quiche::HttpHeaderBlock& header_block) override {
+    if (output_) {
+      *output_ << "OnHeadersFrameSent: " << stream_id << ", "
+               << "sent: " << header_block.DebugString() << "\n";
+    }
+  }
+
+ private:
+  mutable raw_ptr<std::ostream> output_ = nullptr;
+};
+}  // namespace
+
+}  // namespace quic
 
 namespace net::test {
 
@@ -64,10 +217,49 @@
 }
 
 QuicSocketDataProvider::QuicSocketDataProvider(quic::ParsedQuicVersion version)
-    : printer_(version) {}
+    : printer_(version),
+      crypto_config_(quic::QuicCryptoServerConfig::TESTING,
+                     quic::QuicRandom::GetInstance(),
+                     quic::test::crypto_test_utils::ProofSourceForTesting(),
+                     quic::KeyExchangeSource::Default()),
+      compressed_certs_cache_(
+          quic::QuicCompressedCertsCache::kQuicCompressedCertsCacheSize) {
+  session_for_actual_ = GenSimpleServerSession();
+  session_for_expected_ = GenSimpleServerSession();
+}
 
 QuicSocketDataProvider::~QuicSocketDataProvider() = default;
 
+std::unique_ptr<quic::QuicSimpleServerSession>
+QuicSocketDataProvider::GenSimpleServerSession() {
+  quic::test::MockQuicConnection* connection =
+      new quic::test::MockQuicConnection(  // IN-TEST
+          &helper_, &alarm_factory_, quic::Perspective::IS_SERVER);
+  connection->AdvanceTime(quic::QuicTime::Delta::FromSeconds(1));
+  connection->SetEncrypter(
+      quic::ENCRYPTION_FORWARD_SECURE,
+      std::make_unique<quic::NullEncrypter>(connection->perspective()));
+
+  std::unique_ptr<quic::QuicSimpleServerSession> session =
+      std::make_unique<quic::QuicSimpleServerSession>(
+          config_, quic::CurrentSupportedVersions(), connection, &owner_,
+          &stream_helper_, &crypto_config_, &compressed_certs_cache_,
+          &memory_cache_backend_);
+  session->Initialize();
+  return session;
+}
+
+std::string QuicSocketDataProvider::PrintWithQuicSession(
+    quic::QuicSimpleServerSession* session,
+    std::string data) {
+  std::ostringstream output;
+  quic::HttpStreamPrinter printer(&output);
+  session->set_debug_visitor(&printer);
+  std::string res = printer_.PrintWithQuicSession(data, output, session);
+  session->set_debug_visitor(nullptr);
+  return res;
+}
+
 QuicSocketDataProvider::Expectation& QuicSocketDataProvider::AddRead(
     std::string name,
     std::unique_ptr<quic::QuicEncryptedPacket> packet) {
@@ -184,8 +376,8 @@
   write_pending_ = data;
   std::optional<MockWriteResult> next_write = ConsumeNextWrite();
   if (!next_write.has_value()) {
-    // If Write() was called when no corresponding expectation exists, that's an
-    // error unless execution is currently paused, in which case it's just
+    // If Write() was called when no corresponding expectation exists, that's
+    // an error unless execution is currently paused, in which case it's just
     // pending. This rarely occurs because the only other type of expectation
     // that might be blocking a WRITE is a READ, and QUIC implementations
     // typically eagerly consume READs.
@@ -227,14 +419,14 @@
                     << " exists.";
   }
 
-  // Calculate `dependencies_` mapping indices in `expectations_` to indices of
-  // the expectations they depend on.
+  // Calculate `dependencies_` mapping indices in `expectations_` to indices
+  // of the expectations they depend on.
   dependencies_.clear();
   for (size_t i = 0; i < expectations_.size(); i++) {
     Expectation& expectation = expectations_[i];
     if (expectation.after().empty()) {
-      // If no other dependencies are given, make the expectation depend on the
-      // previous expectation.
+      // If no other dependencies are given, make the expectation depend on
+      // the previous expectation.
       if (i > 0) {
         dependencies_[i].insert(i - 1);
       }
@@ -311,8 +503,8 @@
     return std::nullopt;
   }
 
-  // If there's exactly one matching expectation, check if it matches the write
-  // and return it.
+  // If there's exactly one matching expectation, check if it matches the
+  // write and return it.
   Expectation& ready_expectation = expectations_[*ready];
   if (ready_expectation.packet()) {
     if (!VerifyWriteData(ready_expectation)) {
@@ -374,8 +566,8 @@
   pending_maybe_consume_expectations_ = true;
 
   // Call `MaybeConsumeExpectations` in a task. That method may trigger
-  // consumption of other expectations, and that consumption must happen _after_
-  // the current call to `Read` or `Write` has finished.
+  // consumption of other expectations, and that consumption must happen
+  // _after_ the current call to `Read` or `Write` has finished.
   base::SequencedTaskRunner::GetCurrentDefault()->PostTask(
       FROM_HERE,
       base::BindOnce(&QuicSocketDataProvider::MaybeConsumeExpectations,
@@ -387,13 +579,18 @@
   std::string expected_data(expectation.packet()->data(),
                             expectation.packet()->length());
   std::string& actual_data = *write_pending_;
+  actual_log_.append(
+      PrintWithQuicSession(session_for_actual_.get(), actual_data));
+  expected_log_.append(
+      PrintWithQuicSession(session_for_expected_.get(), expected_data));
+
   bool write_matches = actual_data == expected_data;
   EXPECT_TRUE(write_matches)
       << "Expectation '" << expectation.name()
       << "' not met. Actual formatted write data:\n"
-      << printer_.PrintWrite(actual_data) << "But expectation '"
-      << expectation.name() << "' expected formatted write data:\n"
-      << printer_.PrintWrite(expected_data) << "Actual raw write data:\n"
+      << actual_log_ << "But expectation '" << expectation.name()
+      << "' expected formatted write data:\n"
+      << expected_log_ << "Actual raw write data:\n"
       << HexDump(actual_data) << "Expected raw write data:\n"
       << HexDump(expected_data);
   return write_matches;
diff --git a/net/quic/quic_socket_data_provider.h b/net/quic/quic_socket_data_provider.h
index ffaa911a..15b5c71 100644
--- a/net/quic/quic_socket_data_provider.h
+++ b/net/quic/quic_socket_data_provider.h
@@ -15,7 +15,17 @@
 #include "base/run_loop.h"
 #include "net/quic/quic_test_packet_printer.h"
 #include "net/socket/socket_test_util.h"
+#include "net/third_party/quiche/src/quiche/quic/core/crypto/quic_compressed_certs_cache.h"
+#include "net/third_party/quiche/src/quiche/quic/core/crypto/quic_crypto_server_config.h"
+#include "net/third_party/quiche/src/quiche/quic/core/quic_config.h"
+#include "net/third_party/quiche/src/quiche/quic/core/quic_crypto_server_stream_base.h"
 #include "net/third_party/quiche/src/quiche/quic/core/quic_packets.h"
+#include "net/third_party/quiche/src/quiche/quic/core/quic_session.h"
+#include "net/third_party/quiche/src/quiche/quic/core/quic_types.h"
+#include "net/third_party/quiche/src/quiche/quic/test_tools/mock_quic_session_visitor.h"
+#include "net/third_party/quiche/src/quiche/quic/test_tools/quic_test_utils.h"
+#include "net/third_party/quiche/src/quiche/quic/tools/quic_memory_cache_backend.h"
+#include "net/third_party/quiche/src/quiche/quic/tools/quic_simple_server_session.h"
 
 namespace net::test {
 
@@ -45,6 +55,10 @@
 // for cases where the order is unimportant or might vary. For example, an ACK
 // might be written before or after a read of stream data.
 //
+// To decode HTTP packets, two server sessions are created, one for the
+// expected packets and one for the actual packets. If VerifyWriteData() failed
+// the accumulated logs from both sessions will be printed.
+//
 // When a Write expectation is not met, such as write data not matching the
 // expected packet, the Write call will result in `ERR_UNEXPECTED`.
 //
@@ -217,6 +231,12 @@
   // Generate a comma-separated list of expectation names.
   std::string ExpectationList(const std::vector<size_t>& indices);
 
+  // Generate a `QuicSimpleServerSession` for decrypting HTTP packets.
+  std::unique_ptr<quic::QuicSimpleServerSession> GenSimpleServerSession();
+  // Helper to print packet data with `QuicSimpleServerSession`.
+  std::string PrintWithQuicSession(quic::QuicSimpleServerSession* session,
+                         std::string data);
+
   std::vector<Expectation> expectations_;
   bool pending_maybe_consume_expectations_ = false;
   std::map<size_t, std::set<size_t>> dependencies_;
@@ -226,6 +246,19 @@
   std::optional<size_t> paused_at_;
   std::unique_ptr<base::RunLoop> run_until_run_loop_;
 
+  quic::test::MockQuicSessionVisitor owner_;
+  quic::test::MockQuicCryptoServerStreamHelper stream_helper_;
+  quic::QuicConfig config_;
+  quic::test::MockQuicConnectionHelper helper_;
+  quic::test::MockAlarmFactory alarm_factory_;
+  quic::QuicCryptoServerConfig crypto_config_;
+  quic::QuicCompressedCertsCache compressed_certs_cache_;
+  quic::QuicMemoryCacheBackend memory_cache_backend_;
+  std::unique_ptr<quic::QuicSimpleServerSession> session_for_actual_;
+  std::unique_ptr<quic::QuicSimpleServerSession> session_for_expected_;
+  std::string actual_log_;
+  std::string expected_log_;
+
   base::WeakPtrFactory<QuicSocketDataProvider> weak_factory_{this};
 };
 
diff --git a/net/quic/quic_socket_data_provider_unittest.cc b/net/quic/quic_socket_data_provider_unittest.cc
index 8407af9..e22a3e93 100644
--- a/net/quic/quic_socket_data_provider_unittest.cc
+++ b/net/quic/quic_socket_data_provider_unittest.cc
@@ -11,7 +11,9 @@
 #include "base/test/bind.h"
 #include "base/test/gtest_util.h"
 #include "net/base/io_buffer.h"
+#include "net/base/request_priority.h"
 #include "net/quic/mock_quic_context.h"
+#include "net/quic/quic_http_utils.h"
 #include "net/quic/quic_test_packet_maker.h"
 #include "net/socket/datagram_client_socket.h"
 #include "net/socket/diff_serv_code_point.h"
@@ -43,6 +45,22 @@
         .Build();
   }
 
+  // Create a simple request header packet.
+  std::unique_ptr<quic::QuicReceivedPacket>
+  TestHeadersPacket(uint64_t packet_number, std::string path, bool fin) {
+    quiche::HttpHeaderBlock headers;
+    headers[":scheme"] = "https";
+    headers[":path"] = path;
+    spdy::SpdyPriority priority =
+        ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY);
+    size_t spdy_headers_frame_len;
+    // Headers frame should be sent with stream 0.
+    auto rv = packet_maker_->MakeRequestHeadersPacket(
+        packet_number, 0, fin, priority, std::move(headers),
+        &spdy_headers_frame_len, /*should_include_priority_frame=*/false);
+    return rv;
+  }
+
  protected:
   NetLogWithSource net_log_with_source_{
       NetLogWithSource::Make(NetLogSourceType::NONE)};
@@ -474,4 +492,30 @@
       socket->Read(buffer.get(), buffer->size(), base::DoNothing()));
 }
 
+// Test an HTTP header packet is decoded by the server session.
+TEST_F(QuicSocketDataProviderTest, PrintHTTPHeadersPacket) {
+  QuicSocketDataProvider socket_data(version_);
+  MockClientSocketFactory socket_factory;
+
+  const std::string path = "/.well-known/masque/udp/www.example.org/443/";
+  socket_data.AddWrite("connect-udp", TestHeadersPacket(2, path, false));
+
+  socket_factory.AddSocketDataProvider(&socket_data);
+  std::unique_ptr<DatagramClientSocket> socket =
+      socket_factory.CreateDatagramClientSocket(
+          DatagramSocket::BindType::DEFAULT_BIND, nullptr,
+          net_log_with_source_.source());
+  socket->Connect(IPEndPoint());
+  std::unique_ptr<quic::QuicReceivedPacket> packet = TestPacket(999);
+  scoped_refptr<StringIOBuffer> buffer = base::MakeRefCounted<StringIOBuffer>(
+      std::string(packet->data(), packet->length()));
+
+  EXPECT_NONFATAL_FAILURE(
+      EXPECT_EQ(ERR_UNEXPECTED,
+                socket->Write(buffer.get(), packet->length(), base::DoNothing(),
+                              TRAFFIC_ANNOTATION_FOR_TESTS)),
+      // Path should be decoded by the server session and appear in the output.
+      std::format(":path={0}", path));
+}
+
 }  // namespace net::test
diff --git a/net/quic/quic_test_packet_printer.cc b/net/quic/quic_test_packet_printer.cc
index b19e7a6..0e58694 100644
--- a/net/quic/quic_test_packet_printer.cc
+++ b/net/quic/quic_test_packet_printer.cc
@@ -3,15 +3,16 @@
 // found in the LICENSE file.
 
 #include "net/quic/quic_test_packet_printer.h"
-#include "base/memory/raw_ptr.h"
 
 #include <ostream>
 
+#include "base/memory/raw_ptr.h"
 #include "base/strings/string_number_conversions.h"
 #include "net/third_party/quiche/src/quiche/quic/core/quic_framer.h"
 #include "net/third_party/quiche/src/quiche/quic/core/quic_utils.h"
 #include "net/third_party/quiche/src/quiche/quic/platform/api/quic_flags.h"
 #include "net/third_party/quiche/src/quiche/quic/test_tools/quic_test_utils.h"
+#include "net/third_party/quiche/src/quiche/quic/tools/quic_simple_server_session.h"
 
 namespace quic {
 
@@ -20,7 +21,12 @@
 class QuicPacketPrinter : public QuicFramerVisitorInterface {
  public:
   explicit QuicPacketPrinter(QuicFramer* framer, std::ostream* output)
-      : framer_(framer), output_(output) {}
+      : framer_(framer), session_(nullptr), output_(output) {}
+
+  explicit QuicPacketPrinter(QuicFramer* framer,
+                             std::ostream* output,
+                             raw_ptr<quic::QuicSimpleServerSession> session)
+      : framer_(framer), session_(session), output_(output) {}
 
   // QuicFramerVisitorInterface implementation.
   void OnError(QuicFramer* framer) override {
@@ -73,6 +79,12 @@
     *output_ << "OnStreamFrame: " << frame;
     *output_ << "         data: { "
              << base::HexEncode(frame.data_buffer, frame.data_length) << " }\n";
+    if (session_) {
+      *output_ << "If this is an HTTP frame, headers and body "
+                  "will be printed out by HTTP decoder."
+               << "\n";
+      session_->OnStreamFrame(frame);
+    }
     return true;
   }
   bool OnCryptoFrame(const QuicCryptoFrame& frame) override {
@@ -217,17 +229,25 @@
   }
 
  private:
-  raw_ptr<QuicFramer> framer_;  // Unowned.
+  raw_ptr<QuicFramer> framer_;                      // Unowned.
+  raw_ptr<quic::QuicSimpleServerSession> session_;  // Unowned.
   mutable raw_ptr<std::ostream> output_;
 };
 
 }  // namespace
-
 }  // namespace quic
 
 namespace net {
 
 std::string QuicPacketPrinter::PrintWrite(const std::string& data) {
+  std::ostringstream output;
+  return PrintWithQuicSession(data, output, nullptr);
+}
+
+std::string QuicPacketPrinter::PrintWithQuicSession(
+    const std::string& data,
+    std::ostringstream& stream,
+    quic::QuicSimpleServerSession* session) {
   quic::ParsedQuicVersionVector versions = {version_};
   // Fake a time since we're not actually generating acks.
   quic::QuicTime start(quic::QuicTime::Zero());
@@ -235,8 +255,8 @@
   // the client.
   quic::QuicFramer framer(versions, start, quic::Perspective::IS_SERVER,
                           quic::kQuicDefaultConnectionIdLength);
-  std::ostringstream stream;
-  quic::QuicPacketPrinter visitor(&framer, &stream);
+
+  quic::QuicPacketPrinter visitor(&framer, &stream, session);
   framer.set_visitor(&visitor);
 
   if (version_.KnowsWhichDecrypterToUse()) {
diff --git a/net/quic/quic_test_packet_printer.h b/net/quic/quic_test_packet_printer.h
index 9ae574e..722c2e0 100644
--- a/net/quic/quic_test_packet_printer.h
+++ b/net/quic/quic_test_packet_printer.h
@@ -8,6 +8,7 @@
 #include <string>
 
 #include "net/socket/socket_test_util.h"
+#include "net/third_party/quiche/src/quiche/quic/tools/quic_simple_server_session.h"
 
 namespace net {
 
@@ -22,6 +23,12 @@
 
   std::string PrintWrite(const std::string& data) override;
 
+  // Print HTTP packet with a `QuicSimpleServerSession`.
+  // The session could accumulate frames from multiple packets to decrypt.
+  std::string PrintWithQuicSession(const std::string& data,
+                                        std::ostringstream& stream,
+                                        quic::QuicSimpleServerSession* session);
+
  private:
   quic::ParsedQuicVersion version_;
 };
diff --git a/pdf/pdf_ink_module.cc b/pdf/pdf_ink_module.cc
index 14c6421..e55c13e 100644
--- a/pdf/pdf_ink_module.cc
+++ b/pdf/pdf_ink_module.cc
@@ -163,16 +163,10 @@
     return false;
   }
 
-  // Since thumbnails are always drawn without any rotation, `transform` only
-  // needs to perform scaling.
-  const SkImageInfo canvas_info = canvas.imageInfo();
-  const gfx::Rect content_rect = client_->GetPageContentsRect(page_index);
-  const float ratio =
-      client_->GetZoom() *
-      std::min(
-          static_cast<float>(canvas_info.width()) / content_rect.width(),
-          static_cast<float>(canvas_info.height()) / content_rect.height());
-  const ink::AffineTransform transform = {ratio, 0, 0, 0, ratio, 0};
+  const ink::AffineTransform transform = GetInkThumbnailTransform(
+      gfx::SkISizeToSize(canvas.imageInfo().dimensions()),
+      client_->GetOrientation(), client_->GetPageContentsRect(page_index),
+      client_->GetZoom());
 
   ink::SkiaRenderer skia_renderer;
   for (const FinishedStrokeState& finished_stroke : it->second) {
diff --git a/pdf/pdf_ink_transform.cc b/pdf/pdf_ink_transform.cc
index c08dc063..3ee518af 100644
--- a/pdf/pdf_ink_transform.cc
+++ b/pdf/pdf_ink_transform.cc
@@ -16,6 +16,7 @@
 #include "ui/gfx/geometry/rect.h"
 #include "ui/gfx/geometry/rect_conversions.h"
 #include "ui/gfx/geometry/rect_f.h"
+#include "ui/gfx/geometry/size.h"
 #include "ui/gfx/geometry/vector2d_f.h"
 
 namespace chrome_pdf {
@@ -124,6 +125,29 @@
   NOTREACHED();
 }
 
+ink::AffineTransform GetInkThumbnailTransform(
+    const gfx::Size& canvas_size,
+    PageOrientation orientation,
+    const gfx::Rect& page_content_rect,
+    float scale_factor) {
+  // Since thumbnails are always drawn without any rotation, the transform only
+  // needs to perform scaling.
+  //
+  // However, `page_content_rect` may be rotated, so normalize it as needed.
+  gfx::Size content_size = page_content_rect.size();
+  if (orientation == PageOrientation::kClockwise90 ||
+      orientation == PageOrientation::kClockwise270) {
+    content_size.Transpose();
+  }
+
+  const float ratio =
+      scale_factor *
+      std::min(
+          static_cast<float>(canvas_size.width()) / content_size.width(),
+          static_cast<float>(canvas_size.height()) / content_size.height());
+  return {ratio, 0, 0, 0, ratio, 0};
+}
+
 gfx::Rect CanonicalInkEnvelopeToInvalidationScreenRect(
     const ink::Envelope& envelope,
     PageOrientation orientation,
diff --git a/pdf/pdf_ink_transform.h b/pdf/pdf_ink_transform.h
index 87d6da6..69bd0cd 100644
--- a/pdf/pdf_ink_transform.h
+++ b/pdf/pdf_ink_transform.h
@@ -15,6 +15,7 @@
 static_assert(BUILDFLAG(ENABLE_PDF_INK2), "ENABLE_PDF_INK2 not set to true");
 
 namespace gfx {
+class Size;
 class Vector2dF;
 }  // namespace gfx
 
@@ -100,6 +101,17 @@
     const gfx::Rect& page_content_rect,
     float scale_factor);
 
+// Returns the transform used when rendering a thumbnail on a canvas of
+// `canvas_size`, given the other parameters. Compared to
+// GetInkRenderTransform(), the transformation is simpler because there is no
+// origin offset, and the thumbnail canvas is never rotated. Note that the
+// thumbnail content may be rotated.
+ink::AffineTransform GetInkThumbnailTransform(
+    const gfx::Size& canvas_size,
+    PageOrientation orientation,
+    const gfx::Rect& page_content_rect,
+    float scale_factor);
+
 // Converts `ink::Envelope` to screen coordinates as needed for invalidation.
 // Uses the same `orientation`, `page_content_rect`, and `scale_factor`
 // parameters as used in `EventPositionToCanonicalPosition()`.  This function
diff --git a/pdf/pdf_ink_transform_unittest.cc b/pdf/pdf_ink_transform_unittest.cc
index b04d83f..c5aec9f0f 100644
--- a/pdf/pdf_ink_transform_unittest.cc
+++ b/pdf/pdf_ink_transform_unittest.cc
@@ -287,6 +287,130 @@
               InkAffineTransformEq(0.0f, -2.0f, 137.0f, 2.0f, 0.0f, -4.0f));
 }
 
+TEST(PdfInkTransformTest, ThumbnailTransformNoZoom) {
+  {
+    ink::AffineTransform transform = GetInkThumbnailTransform(
+        /*canvas_size=*/{50, 60}, PageOrientation::kOriginal,
+        kPageContentAreaPortraitNoOffset, kScaleFactor1x);
+    EXPECT_THAT(transform,
+                InkAffineTransformEq(1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f));
+  }
+  {
+    ink::AffineTransform transform = GetInkThumbnailTransform(
+        /*canvas_size=*/{120, 100}, PageOrientation::kOriginal,
+        kPageContentAreaPortraitNoOffset, kScaleFactor1x);
+    EXPECT_THAT(transform, InkAffineTransformEq(1.6666666f, 0.0f, 0.0f, 0.0f,
+                                                1.6666666f, 0.0f));
+  }
+}
+
+TEST(PdfInkTransformTest, ThumbnailTransformZoom) {
+  {
+    ink::AffineTransform transform = GetInkThumbnailTransform(
+        /*canvas_size=*/{50, 60}, PageOrientation::kOriginal,
+        kPageContentAreaPortraitNoOffset, kScaleFactor2x);
+    EXPECT_THAT(transform,
+                InkAffineTransformEq(2.0f, 0.0f, 0.0f, 0.0f, 2.0f, 0.0f));
+  }
+  {
+    ink::AffineTransform transform = GetInkThumbnailTransform(
+        /*canvas_size=*/{120, 100}, PageOrientation::kOriginal,
+        kPageContentAreaPortraitNoOffset, kScaleFactor2x);
+    EXPECT_THAT(transform, InkAffineTransformEq(3.333333f, 0.0f, 0.0f, 0.0f,
+                                                3.333333f, 0.0f));
+  }
+}
+
+TEST(PdfInkTransformTest, ThumbnailTransformRotate) {
+  {
+    ink::AffineTransform transform = GetInkThumbnailTransform(
+        /*canvas_size=*/{50, 60}, PageOrientation::kClockwise90,
+        kPageContentAreaPortraitNoOffset, kScaleFactor1x);
+    EXPECT_THAT(transform, InkAffineTransformEq(0.8333333f, 0.0f, 0.0f, 0.0f,
+                                                0.8333333f, 0.0f));
+  }
+  {
+    ink::AffineTransform transform = GetInkThumbnailTransform(
+        /*canvas_size=*/{120, 100}, PageOrientation::kClockwise90,
+        kPageContentAreaPortraitNoOffset, kScaleFactor1x);
+    EXPECT_THAT(transform,
+                InkAffineTransformEq(2.0f, 0.0f, 0.0f, 0.0f, 2.0f, 0.0f));
+  }
+  {
+    ink::AffineTransform transform = GetInkThumbnailTransform(
+        /*canvas_size=*/{50, 60}, PageOrientation::kClockwise180,
+        kPageContentAreaPortraitNoOffset, kScaleFactor1x);
+    EXPECT_THAT(transform,
+                InkAffineTransformEq(1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f));
+  }
+  {
+    ink::AffineTransform transform = GetInkThumbnailTransform(
+        /*canvas_size=*/{120, 100}, PageOrientation::kClockwise180,
+        kPageContentAreaPortraitNoOffset, kScaleFactor1x);
+    EXPECT_THAT(transform, InkAffineTransformEq(1.6666666f, 0.0f, 0.0f, 0.0f,
+                                                1.6666666f, 0.0f));
+  }
+  {
+    ink::AffineTransform transform = GetInkThumbnailTransform(
+        /*canvas_size=*/{50, 60}, PageOrientation::kClockwise270,
+        kPageContentAreaPortraitNoOffset, kScaleFactor1x);
+    EXPECT_THAT(transform, InkAffineTransformEq(0.8333333f, 0.0f, 0.0f, 0.0f,
+                                                0.8333333f, 0.0f));
+  }
+  {
+    ink::AffineTransform transform = GetInkThumbnailTransform(
+        /*canvas_size=*/{120, 100}, PageOrientation::kClockwise270,
+        kPageContentAreaPortraitNoOffset, kScaleFactor1x);
+    EXPECT_THAT(transform,
+                InkAffineTransformEq(2.0f, 0.0f, 0.0f, 0.0f, 2.0f, 0.0f));
+  }
+}
+
+TEST(PdfInkTransformTest, ThumbnailTransformRotateAndZoom) {
+  {
+    ink::AffineTransform transform = GetInkThumbnailTransform(
+        /*canvas_size=*/{50, 60}, PageOrientation::kClockwise90,
+        kPageContentAreaPortraitNoOffset, kScaleFactor2x);
+    EXPECT_THAT(transform, InkAffineTransformEq(1.6666666f, 0.0f, 0.0f, 0.0f,
+                                                1.6666666f, 0.0f));
+  }
+  {
+    ink::AffineTransform transform = GetInkThumbnailTransform(
+        /*canvas_size=*/{120, 100}, PageOrientation::kClockwise90,
+        kPageContentAreaPortraitNoOffset, kScaleFactor2x);
+    EXPECT_THAT(transform,
+                InkAffineTransformEq(4.0f, 0.0f, 0.0f, 0.0f, 4.0f, 0.0f));
+  }
+  {
+    ink::AffineTransform transform = GetInkThumbnailTransform(
+        /*canvas_size=*/{50, 60}, PageOrientation::kClockwise180,
+        kPageContentAreaPortraitNoOffset, kScaleFactor2x);
+    EXPECT_THAT(transform,
+                InkAffineTransformEq(2.0f, 0.0f, 0.0f, 0.0f, 2.0f, 0.0f));
+  }
+  {
+    ink::AffineTransform transform = GetInkThumbnailTransform(
+        /*canvas_size=*/{120, 100}, PageOrientation::kClockwise180,
+        kPageContentAreaPortraitNoOffset, kScaleFactor2x);
+    EXPECT_THAT(transform, InkAffineTransformEq(3.333333f, 0.0f, 0.0f, 0.0f,
+                                                3.333333f, 0.0f));
+  }
+  {
+    ink::AffineTransform transform = GetInkThumbnailTransform(
+        /*canvas_size=*/{50, 60}, PageOrientation::kClockwise270,
+        kPageContentAreaPortraitNoOffset, kScaleFactor2x);
+    EXPECT_THAT(transform, InkAffineTransformEq(1.6666666f, 0.0f, 0.0f, 0.0f,
+                                                1.6666666f, 0.0f));
+  }
+  {
+    ink::AffineTransform transform = GetInkThumbnailTransform(
+        /*canvas_size=*/{120, 100}, PageOrientation::kClockwise270,
+        kPageContentAreaPortraitNoOffset, kScaleFactor2x);
+    EXPECT_THAT(transform,
+                InkAffineTransformEq(4.0f, 0.0f, 0.0f, 0.0f, 4.0f, 0.0f));
+  }
+}
+
 TEST(PdfInkTransformTest,
      CanonicalInkEnvelopeToInvalidationScreenRectIdentity) {
   // Representation of page contents in screen coordinates without scale or
diff --git a/pdf/pdfium/pdfium_font_win.cc b/pdf/pdfium/pdfium_font_win.cc
index 18558a12..c612660e 100644
--- a/pdf/pdfium/pdfium_font_win.cc
+++ b/pdf/pdfium/pdfium_font_win.cc
@@ -13,6 +13,7 @@
 #include "base/containers/contains.h"
 #include "base/containers/fixed_flat_map.h"
 #include "base/containers/flat_map.h"
+#include "base/feature_list.h"
 #include "base/logging.h"
 #include "base/no_destructor.h"
 #include "base/sequence_checker.h"
@@ -59,6 +60,13 @@
   return face;
 }
 
+// Kill switch in case this goes horribly wrong.
+// TODO(crbug.com/381126164): Remove after this lands safely in a Stable
+// release.
+BASE_FEATURE(kPdfEnumFontsWin,
+             "PdfEnumFontsWin",
+             base::FEATURE_ENABLED_BY_DEFAULT);
+
 // Maps font description and charset to `FontId` as requested by PDFium, with
 // `FontId` as an opaque type that PDFium works with. Based on the `FontId`,
 // PDFium can read from the font files using GetFontData(). Properly frees the
@@ -73,6 +81,28 @@
 
   ~SkiaFontMapper() = delete;
 
+  void EnumFonts(FPDF_SYSFONTINFO* sysfontinfo, void* mapper) {
+    if (!base::FeatureList::IsEnabled(kPdfEnumFontsWin)) {
+      return;
+    }
+
+    const int count = manager_->countFamilies();
+    for (int i = 0; i < count; ++i) {
+      SkString family;
+      manager_->getFamilyName(i, &family);
+      // Skia does not make any guarantees about whether `family` can be empty
+      // or not.
+      // PDFium does not check if FPDF_AddInstalledFont() got an empty string.
+      // Do an explicit check here to make sure the two sides play nicely
+      // together.
+      if (!family.isEmpty()) {
+        // It may be better to pick a more accurate character set value, but
+        // this is good enough for now.
+        FPDF_AddInstalledFont(mapper, family.c_str(), FXFONT_DEFAULT_CHARSET);
+      }
+    }
+  }
+
   // Returns a handle to the font mapped based on `desc`, for use
   // as the `font_id` in GetFontData() and DeleteFont() below. Returns nullptr
   // on failure.
@@ -316,6 +346,16 @@
   return *mapper;
 }
 
+void EnumFonts(FPDF_SYSFONTINFO* sysfontinfo, void* mapper) {
+  // Exit early if PDFium was specifically configured in `kNoMapping` mode.
+  if (PDFiumEngine::GetFontMappingMode() != FontMappingMode::kBlink) {
+    CHECK_EQ(PDFiumEngine::GetFontMappingMode(), FontMappingMode::kNoMapping);
+    return;
+  }
+
+  GetSkiaFontMapper().EnumFonts(sysfontinfo, mapper);
+}
+
 // Note: `exact` is obsolete.
 void* MapFont(FPDF_SYSFONTINFO*,
               int weight,
@@ -349,7 +389,7 @@
 
 FPDF_SYSFONTINFO g_font_info = {.version = 1,
                                 .Release = nullptr,
-                                .EnumFonts = nullptr,
+                                .EnumFonts = EnumFonts,
                                 .MapFont = MapFont,
                                 .GetFont = nullptr,
                                 .GetFontData = GetFontData,
diff --git a/remoting/host/installer/linux/BUILD.gn b/remoting/host/installer/linux/BUILD.gn
index 2808be91..0bd1057 100644
--- a/remoting/host/installer/linux/BUILD.gn
+++ b/remoting/host/installer/linux/BUILD.gn
@@ -68,6 +68,7 @@
     "//remoting/host/linux/pipewire.conf.template",
     "//remoting/host/linux/pipewire-media-session.conf.template",
     "//remoting/host/linux/pipewire-pulse.conf.template",
+    "//remoting/host/linux/wireplumber.conf.fragment",
     "//remoting/host/linux/wireplumber.conf.template",
     "$root_gen_dir/remoting/CREDITS.txt",
     "$root_out_dir/icudtl.dat",
diff --git a/remoting/host/installer/linux/Makefile b/remoting/host/installer/linux/Makefile
index c49ec590..f31aa9c 100644
--- a/remoting/host/installer/linux/Makefile
+++ b/remoting/host/installer/linux/Makefile
@@ -19,6 +19,7 @@
 CHROME_NATIVE_MESSAGING_DIR = $(DESTDIR)/etc/opt/chrome/native-messaging-hosts
 FIREFOX_NATIVE_MESSAGING_DIR = $(DESTDIR)/usr/lib/mozilla/native-messaging-hosts
 SYSTEM_WIDE_DESKTOP_ENTRIES_DIR = $(DESTDIR)/usr/share/applications
+WIREPLUMBER_CONFIG_DIR = $(DESTDIR)/usr/share/wireplumber/wireplumber.conf.d
 
 CORE_LIBNAME = $(BUILD_DIR)/libremoting_core.so
 CORE_DEBUGFILE = $(CORE_LIBNAME).debug
@@ -53,6 +54,7 @@
 	install -d "$(CHROME_NATIVE_MESSAGING_DIR)"
 	install -d "$(FIREFOX_NATIVE_MESSAGING_DIR)"
 	install -d "$(SYSTEM_WIDE_DESKTOP_ENTRIES_DIR)"
+	install -d "$(WIREPLUMBER_CONFIG_DIR)"
 
 	install "$(SRC_DIR)/remoting/host/linux/linux_me2me_host.py" \
 	  "$(INSTALL_DIR)/chrome-remote-desktop"
@@ -152,3 +154,7 @@
 
 	install -m 0644 \
           "$(BUILD_DIR)/gen/remoting/CREDITS.txt" "$(DOC_DIR)/CREDITS.txt"
+
+	install -m 0644 \
+          "$(SRC_DIR)/remoting/host/linux/wireplumber.conf.fragment" \
+	  "$(WIREPLUMBER_CONFIG_DIR)/chrome-remote-desktop.conf"
diff --git a/remoting/host/linux/linux_me2me_host.py b/remoting/host/linux/linux_me2me_host.py
index 7e297af..51dabeb 100755
--- a/remoting/host/linux/linux_me2me_host.py
+++ b/remoting/host/linux/linux_me2me_host.py
@@ -340,6 +340,31 @@
   return session_manager
 
 
+def get_wireplumber_version():
+  """Returns the WirePlumber version installed on this system, or None if the
+  version could not be obtained."""
+
+  try:
+    version_output = subprocess.check_output(["wireplumber", "--version"],
+                                             universal_newlines=True)
+  except subprocess.CalledProcessError as e:
+    logging.warning("Failed to execute wireplumber: "  + str(e))
+    return None
+
+  match = re.search(r"wireplumber (\S+)$", version_output, re.MULTILINE)
+  if not match:
+    logging.warning("Failed to determine wireplumber version.")
+    return None
+
+  try:
+    wireplumber_version = version.parse(match[1])
+  except version.InvalidVersion as e:
+    logging.warning("Failed to parse wireplumber version: " + str(e))
+    return None
+
+  return wireplumber_version
+
+
 def terminate_process(pid, name):
   """Terminates the process with the given |pid|. Initially sends SIGTERM, but
   falls back to SIGKILL if the process fails to exit after 10 seconds. |name|
@@ -679,6 +704,20 @@
           self.pipewire_session_manager, "-c",
           os.path.join(runtime_path, self.pipewire_session_manager + ".conf")]
 
+      # The WirePlumber config template does not work with versions 0.5 or
+      # later. Instead, launch it with the system config, and use the
+      # customized "chrome-remote-desktop" profile from the installed config
+      # fragment.
+      if self.pipewire_session_manager.endswith("wireplumber"):
+        wireplumber_version = get_wireplumber_version()
+        if wireplumber_version is None:
+          logging.error("Failed to get WirePlumber version.")
+          return False
+        if wireplumber_version >= version.parse("0.5"):
+          session_manager_cmd = [
+              self.pipewire_session_manager,
+              "--profile", "chrome-remote-desktop"]
+
       # Terminate any stale processes before relaunching.
       for command in [pipewire_cmd, pipewire_pulse_cmd, session_manager_cmd]:
         terminate_command_if_running(command)
@@ -686,14 +725,15 @@
       self.pipewire_proc = subprocess.Popen(pipewire_cmd, env=self.child_env)
       self.pipewire_pulse_proc = subprocess.Popen(pipewire_pulse_cmd,
                                                   env=self.child_env)
+
+      # Directs native PipeWire clients to the correct instance.
+      self.child_env["PIPEWIRE_REMOTE"] = instance_name
+
       # MEDIA_SESSION_CONFIG_DIR is needed to use an absolute path with
       # pipewire-media-session.
       self.pipewire_session_manager_proc = subprocess.Popen(session_manager_cmd,
           env={**self.child_env, "MEDIA_SESSION_CONFIG_DIR": "/"})
 
-      # Directs native PipeWire clients to the correct instance
-      self.child_env["PIPEWIRE_REMOTE"] = instance_name
-
       return True
     except (IOError, OSError) as e:
       logging.error("Failed to start PipeWire: " + str(e))
diff --git a/remoting/host/linux/wireplumber.conf.fragment b/remoting/host/linux/wireplumber.conf.fragment
new file mode 100644
index 0000000..99d917fc
--- /dev/null
+++ b/remoting/host/linux/wireplumber.conf.fragment
@@ -0,0 +1,18 @@
+wireplumber.profiles = {
+  ## Syntax:
+  ## <profile> = {
+  ##   # optional is the default
+  ##   <feature name> = [ required | optional | disabled ]
+  ##   ...
+  ## }
+
+  chrome-remote-desktop = {
+    check.no-media-session = required
+    support.log-settings = required
+    metadata.sm-objects = required
+    hardware.audio = disabled
+    hardware.bluetooth = disabled
+    hardware.video-capture = disabled
+    policy.standard = required
+  }
+}
diff --git a/services/device/geolocation/location_provider_manager.cc b/services/device/geolocation/location_provider_manager.cc
index ff3eeed..329788d 100644
--- a/services/device/geolocation/location_provider_manager.cc
+++ b/services/device/geolocation/location_provider_manager.cc
@@ -13,6 +13,7 @@
 #include "base/functional/callback_helpers.h"
 #include "base/memory/ptr_util.h"
 #include "base/metrics/histogram_functions.h"
+#include "base/strings/stringprintf.h"
 #include "base/task/single_thread_task_runner.h"
 #include "build/build_config.h"
 #include "components/device_event_log/device_event_log.h"
@@ -38,6 +39,8 @@
       return "kCustomOnly";
     case mojom::LocationProviderManagerMode::kHybridPlatform:
       return "kHybridPlatform";
+    case mojom::LocationProviderManagerMode::kHybridPlatform2:
+      return "kHybridPlatform2";
     case mojom::LocationProviderManagerMode::kHybridFallbackNetwork:
       return "kHybridFallbackNetwork";
   }
@@ -49,6 +52,7 @@
 using ::device::mojom::LocationProviderManagerMode::kCustomOnly;
 using ::device::mojom::LocationProviderManagerMode::kHybridFallbackNetwork;
 using ::device::mojom::LocationProviderManagerMode::kHybridPlatform;
+using ::device::mojom::LocationProviderManagerMode::kHybridPlatform2;
 using ::device::mojom::LocationProviderManagerMode::kNetworkOnly;
 using ::device::mojom::LocationProviderManagerMode::kPlatformOnly;
 
@@ -146,6 +150,7 @@
         break;
       case kPlatformOnly:
       case kHybridPlatform:
+      case kHybridPlatform2:
         platform_location_provider_->StartProvider(enable_high_accuracy_);
     }
   }
@@ -217,6 +222,7 @@
       break;
     case kPlatformOnly:
     case kHybridPlatform:
+    case kHybridPlatform2:
       platform_location_provider_ = NewSystemLocationProvider();
       if (!platform_location_provider_) {
         return false;
@@ -237,26 +243,34 @@
 
   switch (provider_manager_mode_) {
     case kHybridPlatform:
+    case kHybridPlatform2:
       platform_location_provider_result_ = new_result.Clone();
-      // Currently, the fallback mechanism only triggers on macOS when Wi-Fi is
-      // disabled (either before or during position watching).
-      if (new_result->is_error() &&
-          new_result->get_error()->error_code ==
-              device::mojom::GeopositionErrorCode::kWifiDisabled) {
-        provider_manager_mode_ = kHybridFallbackNetwork;
-        platform_location_provider_->StopProvider();
-        platform_location_provider_.reset();
-        network_location_provider_ =
-            NewNetworkLocationProvider(url_loader_factory_, api_key_);
-        RegisterProvider(*network_location_provider_.get());
-        network_location_provider_->StartProvider(enable_high_accuracy_);
-        GEOLOCATION_LOG(DEBUG)
-            << "LocationProviderManager::OnLocationUpdate: kWifiDisabled error "
-               "code received, switch provider_manager_mode_ to "
-            << LocationProviderManagerModeAsString(provider_manager_mode_);
-        // Skip location update and wait for the network location provider to
-        // provide an update.
-        return;
+      if (new_result->is_error()) {
+        GEOLOCATION_LOG(DEBUG) << base::StringPrintf(
+            "LocationProviderManager::OnLocationUpdate: Error code %d is "
+            "received when in %s mode.",
+            (int)new_result->get_error()->error_code,
+            LocationProviderManagerModeAsString(provider_manager_mode_));
+
+        // Initiate fallback to network provider if:
+        // 1. The current mode is `kHybridPlatform2`, OR
+        // 2. The current mode is `kHybridPlatform` and the error is
+        // `kWifiDisabled`.
+        if (provider_manager_mode_ == kHybridPlatform2 ||
+            (provider_manager_mode_ == kHybridPlatform &&
+             new_result->get_error()->error_code ==
+                 device::mojom::GeopositionErrorCode::kWifiDisabled)) {
+          provider_manager_mode_ = kHybridFallbackNetwork;
+          platform_location_provider_->StopProvider();
+          platform_location_provider_.reset();
+          network_location_provider_ =
+              NewNetworkLocationProvider(url_loader_factory_, api_key_);
+          RegisterProvider(*network_location_provider_.get());
+          network_location_provider_->StartProvider(enable_high_accuracy_);
+          // Skip location update and wait for the network location provider to
+          // provide an update.
+          return;
+        }
       }
       break;
     case kPlatformOnly:
@@ -295,6 +309,7 @@
 const mojom::GeopositionResult* LocationProviderManager::GetPosition() {
   switch (provider_manager_mode_) {
     case kHybridPlatform:
+    case kHybridPlatform2:
     case kPlatformOnly:
       return platform_location_provider_result_.get();
     case kNetworkOnly:
@@ -314,6 +329,7 @@
   }
   switch (provider_manager_mode_) {
     case kHybridPlatform:
+    case kHybridPlatform2:
     case kPlatformOnly:
       return platform_location_provider_->FillDiagnostics(diagnostics);
     case kNetworkOnly:
diff --git a/services/device/geolocation/location_provider_manager.h b/services/device/geolocation/location_provider_manager.h
index c60f573..aacb2254 100644
--- a/services/device/geolocation/location_provider_manager.h
+++ b/services/device/geolocation/location_provider_manager.h
@@ -76,6 +76,8 @@
   friend class GeolocationLocationProviderManagerTest;
   FRIEND_TEST_ALL_PREFIXES(GeolocationLocationProviderManagerTest,
                            HybridPlatformFallback);
+  FRIEND_TEST_ALL_PREFIXES(GeolocationLocationProviderManagerTest,
+                           HybridPlatformFallback2);
   void RegisterProvider(LocationProvider& provider);
 
   // Initializes the appropriate LocationProvider based on the configured mode
diff --git a/services/device/geolocation/location_provider_manager_unittest.cc b/services/device/geolocation/location_provider_manager_unittest.cc
index 788e147..65f5bbf2 100644
--- a/services/device/geolocation/location_provider_manager_unittest.cc
+++ b/services/device/geolocation/location_provider_manager_unittest.cc
@@ -50,6 +50,8 @@
 
   const mojom::GeopositionResult* last_result() { return last_result_.get(); }
 
+  void ResetLastResult() { last_result_.reset(); }
+
  private:
   mojom::GeopositionResultPtr last_result_;
 };
@@ -381,9 +383,9 @@
 #endif  // !BUILDFLAG(IS_ANDROID)
 
 #if BUILDFLAG(IS_MAC)
-// This test fallback mechanism by simulating a `kWifiDisabled` error code
-// reported from platform location provider. Fallback is currently only
-// supported on macOS.
+// For `kHybridPlatform` mode, the fallback mechanism should only be initiated
+// by `kWifiDisabled` error code. When any other error code reported from
+// platform location provider, the error should be reported directly.
 TEST_F(GeolocationLocationProviderManagerTest, HybridPlatformFallback) {
   ASSERT_TRUE(
       SetExperimentMode(mojom::LocationProviderManagerMode::kHybridPlatform));
@@ -401,6 +403,19 @@
             platform_location_provider()->state());
   EXPECT_FALSE(observer_->last_result());
 
+  // Simulate a `kPositionUnavailable` error which will NOT initiate fallback
+  // mode.
+  SetErrorPosition(platform_location_provider(),
+                   mojom::GeopositionErrorCode::kPositionUnavailable);
+  EXPECT_EQ(mojom::LocationProviderManagerMode::kHybridPlatform,
+            location_provider_manager_->provider_manager_mode_);
+  ASSERT_TRUE(observer_->last_result()->is_error());
+  EXPECT_TRUE(platform_location_provider());
+  EXPECT_FALSE(network_location_provider());
+  EXPECT_EQ(mojom::GeolocationDiagnostics::ProviderState::kLowAccuracy,
+            platform_location_provider()->state());
+  observer_->ResetLastResult();
+
   // Simulate a `kWifiDisabled` error which will initiate fallback mode.
   SetErrorPosition(platform_location_provider(),
                    mojom::GeopositionErrorCode::kWifiDisabled);
@@ -419,6 +434,45 @@
             location_provider_manager_->provider_manager_mode_);
 }
 
+// For `kHybridPlatform2` mode, the fallback mechanism should be initiated by
+// any error code report from platform location provider. This test simulates a
+// `kPositionUnavailable` error code reported from platform location provider to
+// initiate the fallback mechanism.
+TEST_F(GeolocationLocationProviderManagerTest, HybridPlatformFallback2) {
+  ASSERT_TRUE(
+      SetExperimentMode(mojom::LocationProviderManagerMode::kHybridPlatform2));
+  InitializeLocationProviderManager(base::BindRepeating(&NullLocationProvider),
+                                    url_loader_factory_);
+  ASSERT_TRUE(location_provider_manager_);
+
+  EXPECT_FALSE(network_location_provider());
+  EXPECT_FALSE(platform_location_provider());
+  location_provider_manager_->StartProvider(false);
+
+  EXPECT_FALSE(network_location_provider());
+  ASSERT_TRUE(platform_location_provider());
+  EXPECT_EQ(mojom::GeolocationDiagnostics::ProviderState::kLowAccuracy,
+            platform_location_provider()->state());
+  EXPECT_FALSE(observer_->last_result());
+
+  // Simulate a `kPositionUnavailable` error which will initiate fallback mode.
+  SetErrorPosition(platform_location_provider(),
+                   mojom::GeopositionErrorCode::kPositionUnavailable);
+
+  EXPECT_EQ(mojom::LocationProviderManagerMode::kHybridFallbackNetwork,
+            location_provider_manager_->provider_manager_mode_);
+  ASSERT_FALSE(observer_->last_result());
+  EXPECT_FALSE(platform_location_provider());
+  EXPECT_TRUE(network_location_provider());
+  EXPECT_EQ(mojom::GeolocationDiagnostics::ProviderState::kLowAccuracy,
+            network_location_provider()->state());
+
+  // Stop provider and ensure that provider manager mode is reset.
+  location_provider_manager_->StopProvider();
+  EXPECT_EQ(mojom::LocationProviderManagerMode::kHybridPlatform2,
+            location_provider_manager_->provider_manager_mode_);
+}
+
 #endif  // BUILDFLAG(IS_MAC)
 
 }  // namespace device
diff --git a/services/device/public/cpp/device_features.cc b/services/device/public/cpp/device_features.cc
index cdcd094..d3ddf7d 100644
--- a/services/device/public/cpp/device_features.cc
+++ b/services/device/public/cpp/device_features.cc
@@ -83,6 +83,8 @@
          "PlatformOnly"},
         {device::mojom::LocationProviderManagerMode::kHybridPlatform,
          "HybridPlatform"},
+        {device::mojom::LocationProviderManagerMode::kHybridPlatform2,
+         "HybridPlatform2"},
 };
 
 const base::FeatureParam<device::mojom::LocationProviderManagerMode>
diff --git a/services/device/public/mojom/geolocation_internals.mojom b/services/device/public/mojom/geolocation_internals.mojom
index 71ab8163..9fdcfce 100644
--- a/services/device/public/mojom/geolocation_internals.mojom
+++ b/services/device/public/mojom/geolocation_internals.mojom
@@ -134,15 +134,32 @@
   double? accuracy;
 };
 
-// Determines which type of location provider LocationProviderManager should
-// create and use for geolocation.
+// Defines the operational mode of the LocationProviderManager, determining
+// which location provider to use for geolocation. This influences provider
+// initialization, fallback behavior, and error handling.
 enum LocationProviderManagerMode {
+  // Always use NetworkLocationProvider, regardless of errors.
   kNetworkOnly = 0,
+
+  // Always use PlatformLocationProvider, regardless of errors.
   kPlatformOnly = 1,
+
+  // Always use CustomLocationProvider, regardless of errors.
   kCustomOnly = 2,
+
+  // Start with PlatformLocationProvider. If a `kWifiDisabledError` is
+  // encountered, fall back to NetworkLocationProvider. Currently used only on
+  // macOS.
   kHybridPlatform = 3,
+
+  // Indicates that NetworkLocationProvider is being used after a fallback has
+  // occurred.
   kHybridFallbackNetwork = 4,
 
+  // Start with PlatformLocationProvider. If any error is encountered, fall
+  // back to NetworkLocationProvider. Currently used only on macOS for
+  // MacPlatformLocationProvider studies.
+  kHybridPlatform2 = 5,
   // NOTE: Do not renumber these as that would confuse interpretation of
   // previously logged data. When making changes, also update the enum list
   // in tools/metrics/histograms/metadata/geolocation/enums.xml to keep it in
diff --git a/services/network/public/cpp/sri_message_signatures.cc b/services/network/public/cpp/sri_message_signatures.cc
index 0daa2044..60a9161 100644
--- a/services/network/public/cpp/sri_message_signatures.cc
+++ b/services/network/public/cpp/sri_message_signatures.cc
@@ -372,6 +372,13 @@
   // Loop through the signatures, validating each. Validation fails if any
   // given signature fails to validate.
   for (const auto& message_signature : message_signatures) {
+    // Ensure the signature hasn't expired.
+    if (message_signature->expires.has_value() &&
+        message_signature->expires.value() <
+            base::Time::Now().InMillisecondsSinceUnixEpoch() / 1000) {
+      return false;
+    }
+
     // Generate the signature base:
     std::optional<std::string> signature_base =
         ConstructSignatureBase(message_signature, headers).value_or("");
diff --git a/services/network/public/cpp/sri_message_signatures_unittest.cc b/services/network/public/cpp/sri_message_signatures_unittest.cc
index f2a57a6..0d56772 100644
--- a/services/network/public/cpp/sri_message_signatures_unittest.cc
+++ b/services/network/public/cpp/sri_message_signatures_unittest.cc
@@ -4,10 +4,13 @@
 
 #include "services/network/public/cpp/sri_message_signatures.h"
 
+#include <stdint.h>
+
 #include "base/base64.h"
 #include "base/strings/strcat.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/test/scoped_feature_list.h"
+#include "base/test/task_environment.h"
 #include "net/http/http_response_headers.h"
 #include "services/network/public/cpp/features.h"
 #include "services/network/public/mojom/sri_message_signature.mojom.h"
@@ -48,17 +51,32 @@
     "H7AqWWgo1DJ7VdyF9DKotG/4hvatKDfRTq2mpuY/hvJupSn+EYzus"
     "5p24qPK7DtVQcxJFhzSYDj4RBq9grZTAQ==";
 
+const char* kValidDigestHeader =
+    "sha-256=:X48E9qOokqqrvdts8nOJRJN3OWDUoyWxBf7kbu9DBPE=:";
+const char* kValidDigestHeader512 =
+    "sha-512=:WZDPaVn/7XgHaAy8pmojAkGWoRx2UFChF41A2svX+TaPm+AbwAgBWnrIiYllu7BNN"
+    "yealdVLvRwEmTHWXvJwew==:";
+
+// A basic signature header set with no expiration.
 const char* kValidSignatureInputHeader =
     "signature=(\"identity-digest\";sf);alg=\"ed25519\";keyid=\"JrQLj5P/"
     "89iXES9+vFgrIy29clF9CC/oPPsw3c5D0bs=\";tag=\"sri\"";
 const char* kValidSignatureHeader =
     "signature=:H7AqWWgo1DJ7VdyF9DKotG/4hvatKDfRTq2mpuY/hvJupSn+EYzus5p24qPK7Dt"
     "VQcxJFhzSYDj4RBq9grZTAQ==:";
-const char* kValidDigestHeader =
-    "sha-256=:X48E9qOokqqrvdts8nOJRJN3OWDUoyWxBf7kbu9DBPE=:";
-const char* kValidDigestHeader512 =
-    "sha-512=:WZDPaVn/7XgHaAy8pmojAkGWoRx2UFChF41A2svX+TaPm+AbwAgBWnrIiYllu7BNN"
-    "yealdVLvRwEmTHWXvJwew==:";
+
+// The following signature was generated using test-key-ed25519 from RFC 9421
+// (https://datatracker.ietf.org/doc/html/rfc9421#appendix-B.1.4),
+// the same key used for generating the constants above.
+//
+// A valid signature header set with expiration in the future (2142-12-30).
+const char* kValidExpiringSignatureInputHeader =
+    "signature=(\"identity-digest\";sf);alg=\"ed25519\";expires=5459212800;"
+    "keyid=\"JrQLj5P/89iXES9+vFgrIy29clF9CC/oPPsw3c5D0bs=\";tag=\"sri\"";
+const char* kValidExpiringSignatureHeader =
+    "signature=:oVJa+A12xhF1hJz1IMLY6e8fap3uFVJbnhNi6vSYSVnYpZtUUGjtYtNZpqm"
+    "VnflfJAbkqCV7Llh842pv8SBIAg==:";
+const int64_t kValidExpiringSignatureExpiresAt = 5459212800;
 
 }  // namespace
 
@@ -741,6 +759,9 @@
   std::string SignatureHeader(std::string name, std::string_view sig) {
     return base::StrCat({name, "=:", sig, ":"});
   }
+
+  base::test::TaskEnvironment task_environment_{
+      base::test::TaskEnvironment::TimeSource::MOCK_TIME};
 };
 
 TEST_F(SRIMessageSignatureValidationTest, NoSignatures) {
@@ -794,6 +815,25 @@
   EXPECT_TRUE(ValidateSRIMessageSignaturesOverHeaders(signatures, *headers));
 }
 
+TEST_F(SRIMessageSignatureValidationTest, ValidSignatureExpires) {
+  auto headers = Headers(kValidDigestHeader, kValidExpiringSignatureHeader,
+                         kValidExpiringSignatureInputHeader);
+  auto signatures = ParseSRIMessageSignaturesFromHeaders(*headers);
+  ASSERT_EQ(1u, signatures.size());
+
+  // Signature should validate at the moment before and of expiration.
+  auto diff = kValidExpiringSignatureExpiresAt -
+              base::Time::Now().InMillisecondsSinceUnixEpoch() / 1000 - 1;
+  task_environment_.AdvanceClock(base::Seconds(diff));
+  EXPECT_TRUE(ValidateSRIMessageSignaturesOverHeaders(signatures, *headers));
+  task_environment_.AdvanceClock(base::Seconds(1));
+  EXPECT_TRUE(ValidateSRIMessageSignaturesOverHeaders(signatures, *headers));
+
+  // ...but not after expiration.
+  task_environment_.AdvanceClock(base::Seconds(1));
+  EXPECT_FALSE(ValidateSRIMessageSignaturesOverHeaders(signatures, *headers));
+}
+
 TEST_F(SRIMessageSignatureValidationTest, ValidSignatureDigestHeaderMismatch) {
   const char* cases[] = {
       "",
diff --git a/services/viz/public/cpp/compositing/begin_frame_args_mojom_traits.cc b/services/viz/public/cpp/compositing/begin_frame_args_mojom_traits.cc
index b12729d3..e721278 100644
--- a/services/viz/public/cpp/compositing/begin_frame_args_mojom_traits.cc
+++ b/services/viz/public/cpp/compositing/begin_frame_args_mojom_traits.cc
@@ -45,17 +45,25 @@
 }
 
 // static
+bool StructTraits<viz::mojom::BeginFrameIdDataView, viz::BeginFrameId>::Read(
+    viz::mojom::BeginFrameIdDataView data,
+    viz::BeginFrameId* out) {
+  out->source_id = data.source_id();
+  out->sequence_number = data.sequence_number();
+  return true;
+}
+
+// static
 bool StructTraits<viz::mojom::BeginFrameArgsDataView, viz::BeginFrameArgs>::
     Read(viz::mojom::BeginFrameArgsDataView data, viz::BeginFrameArgs* out) {
   if (!data.ReadFrameTime(&out->frame_time) ||
       !data.ReadDeadline(&out->deadline) ||
-      !data.ReadInterval(&out->interval) || !data.ReadType(&out->type) ||
+      !data.ReadInterval(&out->interval) || !data.ReadFrameId(&out->frame_id) ||
+      !data.ReadType(&out->type) ||
       !data.ReadDispatchTime(&out->dispatch_time) ||
       !data.ReadClientArrivalTime(&out->client_arrival_time)) {
     return false;
   }
-  out->frame_id.source_id = data.source_id();
-  out->frame_id.sequence_number = data.sequence_number();
   out->frames_throttled_since_last = data.frames_throttled_since_last();
   out->trace_id = data.trace_id();
   out->on_critical_path = data.on_critical_path();
diff --git a/services/viz/public/cpp/compositing/begin_frame_args_mojom_traits.h b/services/viz/public/cpp/compositing/begin_frame_args_mojom_traits.h
index bcc9f025..8c16a7a 100644
--- a/services/viz/public/cpp/compositing/begin_frame_args_mojom_traits.h
+++ b/services/viz/public/cpp/compositing/begin_frame_args_mojom_traits.h
@@ -21,6 +21,20 @@
 };
 
 template <>
+struct StructTraits<viz::mojom::BeginFrameIdDataView, viz::BeginFrameId> {
+  static uint64_t source_id(const viz::BeginFrameId& frame_id) {
+    return frame_id.source_id;
+  }
+
+  static uint64_t sequence_number(const viz::BeginFrameId& frame_id) {
+    return frame_id.sequence_number;
+  }
+
+  static bool Read(viz::mojom::BeginFrameIdDataView data,
+                   viz::BeginFrameId* out);
+};
+
+template <>
 struct StructTraits<viz::mojom::BeginFrameArgsDataView, viz::BeginFrameArgs> {
   static base::TimeTicks frame_time(const viz::BeginFrameArgs& args) {
     return args.frame_time;
@@ -34,12 +48,8 @@
     return args.interval;
   }
 
-  static uint64_t sequence_number(const viz::BeginFrameArgs& args) {
-    return args.frame_id.sequence_number;
-  }
-
-  static uint64_t source_id(const viz::BeginFrameArgs& args) {
-    return args.frame_id.source_id;
+  static viz::BeginFrameId frame_id(const viz::BeginFrameArgs& args) {
+    return args.frame_id;
   }
 
   static uint64_t frames_throttled_since_last(const viz::BeginFrameArgs& args) {
diff --git a/services/viz/public/cpp/compositing/frame_timing_details_mojom_traits.cc b/services/viz/public/cpp/compositing/frame_timing_details_mojom_traits.cc
index 9489b32..9d936f41 100644
--- a/services/viz/public/cpp/compositing/frame_timing_details_mojom_traits.cc
+++ b/services/viz/public/cpp/compositing/frame_timing_details_mojom_traits.cc
@@ -4,6 +4,7 @@
 
 #include "services/viz/public/cpp/compositing/frame_timing_details_mojom_traits.h"
 
+#include "services/viz/public/cpp/compositing/begin_frame_args_mojom_traits.h"
 #include "ui/gfx/mojom/presentation_feedback_mojom_traits.h"
 #include "ui/gfx/mojom/swap_timings_mojom_traits.h"
 
@@ -19,7 +20,8 @@
          data.ReadEmbeddedFrameTimestamp(&out->embedded_frame_timestamp) &&
          data.ReadDrawStartTimestamp(&out->draw_start_timestamp) &&
          data.ReadSwapTimings(&out->swap_timings) &&
-         data.ReadPresentationFeedback(&out->presentation_feedback);
+         data.ReadPresentationFeedback(&out->presentation_feedback) &&
+         data.ReadFrameId(&out->frame_id);
 }
 
 }  // namespace mojo
diff --git a/services/viz/public/cpp/compositing/frame_timing_details_mojom_traits.h b/services/viz/public/cpp/compositing/frame_timing_details_mojom_traits.h
index 0a726b56..501d816 100644
--- a/services/viz/public/cpp/compositing/frame_timing_details_mojom_traits.h
+++ b/services/viz/public/cpp/compositing/frame_timing_details_mojom_traits.h
@@ -40,6 +40,11 @@
     return frame_timing_details.presentation_feedback;
   }
 
+  static viz::BeginFrameId frame_id(
+      const viz::FrameTimingDetails& frame_timing_details) {
+    return frame_timing_details.frame_id;
+  }
+
   static bool Read(viz::mojom::FrameTimingDetailsDataView data,
                    viz::FrameTimingDetails* out);
 };
diff --git a/services/viz/public/mojom/compositing/begin_frame_args.mojom b/services/viz/public/mojom/compositing/begin_frame_args.mojom
index 8ca380a0f..21906c18 100644
--- a/services/viz/public/mojom/compositing/begin_frame_args.mojom
+++ b/services/viz/public/mojom/compositing/begin_frame_args.mojom
@@ -12,13 +12,18 @@
   MISSED
 };
 
+// viz::BeginFrameId
+struct BeginFrameId {
+  uint64 source_id;
+  uint64 sequence_number;
+};
+
 // See components/viz/common/frame_sinks/begin_frame_args.h.
 struct BeginFrameArgs {
   mojo_base.mojom.TimeTicks frame_time;
   mojo_base.mojom.TimeTicks deadline;
   mojo_base.mojom.TimeDelta interval;
-  uint64 source_id;
-  uint64 sequence_number;
+  BeginFrameId frame_id;
   uint64 frames_throttled_since_last;
   int64 trace_id;
   mojo_base.mojom.TimeTicks dispatch_time;
diff --git a/services/viz/public/mojom/compositing/frame_timing_details.mojom b/services/viz/public/mojom/compositing/frame_timing_details.mojom
index cdd9da93..aeba69f5 100644
--- a/services/viz/public/mojom/compositing/frame_timing_details.mojom
+++ b/services/viz/public/mojom/compositing/frame_timing_details.mojom
@@ -5,6 +5,7 @@
 module viz.mojom;
 
 import "mojo/public/mojom/base/time.mojom";
+import "services/viz/public/mojom/compositing/begin_frame_args.mojom";
 import "ui/gfx/mojom/presentation_feedback.mojom";
 import "ui/gfx/mojom/swap_timings.mojom";
 
@@ -15,4 +16,5 @@
   mojo_base.mojom.TimeTicks draw_start_timestamp;
   gfx.mojom.SwapTimings swap_timings;
   gfx.mojom.PresentationFeedback presentation_feedback;
+  BeginFrameId frame_id;
 };
diff --git a/services/webnn/tflite/graph_builder_tflite.cc b/services/webnn/tflite/graph_builder_tflite.cc
index 4cd000d7..5f1b32e8 100644
--- a/services/webnn/tflite/graph_builder_tflite.cc
+++ b/services/webnn/tflite/graph_builder_tflite.cc
@@ -430,7 +430,7 @@
        /*max_input=*/kFloat16To32AndInt32To64,
        /*min_input=*/kFloat16To32AndInt32To64,
        /*pow_input=*/kFloat16To32AndInt32,
-       /*equal_input=*/kFloat16To32AndInt32To64AndUint8,
+       /*equal_input=*/kFloat16To32AndInt32To64,
        /*greater_input=*/kFloat16To32AndInt32To64,
        /*greater_or_equal_input=*/kFloat16To32AndInt32To64,
        /*lesser_input=*/kFloat16To32AndInt32To64,
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
index b894ba1..5c364d4 100644
--- a/testing/variations/fieldtrial_testing_config.json
+++ b/testing/variations/fieldtrial_testing_config.json
@@ -9321,6 +9321,28 @@
             ]
         }
     ],
+    "EventTimingIgnorePresentationTimeFromUnexpectedFrameSource": [
+        {
+            "platforms": [
+                "android",
+                "chromeos",
+                "chromeos_lacros",
+                "fuchsia",
+                "linux",
+                "mac",
+                "windows",
+                "android_webview"
+            ],
+            "experiments": [
+                {
+                    "name": "Enabled",
+                    "enable_features": [
+                        "EventTimingIgnorePresentationTimeFromUnexpectedFrameSource"
+                    ]
+                }
+            ]
+        }
+    ],
     "EventTimingSelectionAutoScrollNoInteractionId": [
         {
             "platforms": [
@@ -16593,7 +16615,6 @@
                         "EstablishGpuChannelAsync",
                         "ExpandedPrefetchRange",
                         "FledgeEnableWALForInterestGroupStorage",
-                        "GpuInfoCollectionSeparatePrefetch",
                         "LevelDBProtoAsyncWrite",
                         "MojoBindingsInlineSLS",
                         "ReduceCpuUtilization2",
@@ -24314,6 +24335,26 @@
             ]
         }
     ],
+    "V8MinorGcTaskWithLowerPriority": [
+        {
+            "platforms": [
+                "android",
+                "android_webview",
+                "chromeos",
+                "linux",
+                "mac",
+                "windows"
+            ],
+            "experiments": [
+                {
+                    "name": "Enabled",
+                    "enable_features": [
+                        "V8Flag_minor_gc_task_with_lower_priority"
+                    ]
+                }
+            ]
+        }
+    ],
     "V8ScavengerHigherCapacityAndroid": [
         {
             "platforms": [
diff --git a/third_party/angle b/third_party/angle
index 95756ae..ccf65c8 160000
--- a/third_party/angle
+++ b/third_party/angle
@@ -1 +1 @@
-Subproject commit 95756ae2acbe88a57cc33cff02eeb5e7eb127876
+Subproject commit ccf65c8be1900e218b8df6aba22268449525d836
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
index cea49de..088d918 100644
--- a/third_party/blink/common/features.cc
+++ b/third_party/blink/common/features.cc
@@ -779,6 +779,10 @@
              "EnforceNoopenerOnBlobURLNavigation",
              base::FEATURE_DISABLED_BY_DEFAULT);
 
+BASE_FEATURE(kEventTimingIgnorePresentationTimeFromUnexpectedFrameSource,
+             "EventTimingIgnorePresentationTimeFromUnexpectedFrameSource",
+             base::FEATURE_DISABLED_BY_DEFAULT);
+
 // Controls whether LCP calculations should exclude low-entropy images. If
 // enabled, then the associated parameter sets the cutoff, expressed as the
 // minimum number of bits of encoded image data used to encode each rendered
diff --git a/third_party/blink/common/messaging/accelerated_static_bitmap_image_mojom_traits.cc b/third_party/blink/common/messaging/accelerated_static_bitmap_image_mojom_traits.cc
index e3fc6e4..acf4a02f 100644
--- a/third_party/blink/common/messaging/accelerated_static_bitmap_image_mojom_traits.cc
+++ b/third_party/blink/common/messaging/accelerated_static_bitmap_image_mojom_traits.cc
@@ -65,7 +65,6 @@
     return false;
   }
 
-  out->is_origin_top_left = data.is_origin_top_left();
   out->supports_display_compositing = data.supports_display_compositing();
   out->is_overlay_candidate = data.is_overlay_candidate();
 
diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h
index 1180b50..81362c1 100644
--- a/third_party/blink/public/common/features.h
+++ b/third_party/blink/public/common/features.h
@@ -430,6 +430,9 @@
     EnableLazyLoadImageForInvisiblePageType,
     kEnableLazyLoadImageForInvisiblePageTypeParam);
 
+BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(
+    kEventTimingIgnorePresentationTimeFromUnexpectedFrameSource);
+
 BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kExcludeLowEntropyImagesFromLCP);
 BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE_PARAM(double, kMinimumEntropyForLCP);
 
diff --git a/third_party/blink/public/common/messaging/accelerated_image_info.h b/third_party/blink/public/common/messaging/accelerated_image_info.h
index 31a5b7f..a69906c 100644
--- a/third_party/blink/public/common/messaging/accelerated_image_info.h
+++ b/third_party/blink/public/common/messaging/accelerated_image_info.h
@@ -23,7 +23,6 @@
   gpu::ExportedSharedImage shared_image;
   gpu::SyncToken sync_token;
   SkImageInfo image_info;
-  bool is_origin_top_left;
   bool supports_display_compositing;
   bool is_overlay_candidate;
   base::OnceCallback<void(const gpu::SyncToken& sync_token)> release_callback;
diff --git a/third_party/blink/public/common/messaging/accelerated_static_bitmap_image_mojom_traits.h b/third_party/blink/public/common/messaging/accelerated_static_bitmap_image_mojom_traits.h
index 345dfa8..e0c0f8d 100644
--- a/third_party/blink/public/common/messaging/accelerated_static_bitmap_image_mojom_traits.h
+++ b/third_party/blink/public/common/messaging/accelerated_static_bitmap_image_mojom_traits.h
@@ -40,10 +40,6 @@
     return input.image_info;
   }
 
-  static bool is_origin_top_left(const blink::AcceleratedImageInfo& input) {
-    return input.is_origin_top_left;
-  }
-
   static bool supports_display_compositing(
       const blink::AcceleratedImageInfo& input) {
     return input.supports_display_compositing;
diff --git a/third_party/blink/public/mojom/content_extraction/ai_page_content.mojom b/third_party/blink/public/mojom/content_extraction/ai_page_content.mojom
index 991d9062..97970df 100644
--- a/third_party/blink/public/mojom/content_extraction/ai_page_content.mojom
+++ b/third_party/blink/public/mojom/content_extraction/ai_page_content.mojom
@@ -32,6 +32,16 @@
   kFigure,
   kTable,
   kTableCell,
+
+  // Landmark/section chunks.
+  kHeader,
+  kNav,
+  kSearch,
+  kMain,
+  kArticle,
+  kSection,
+  kAside,
+  kFooter,
 };
 
 struct AIPageContentGeometry {
diff --git a/third_party/blink/public/mojom/messaging/static_bitmap_image.mojom b/third_party/blink/public/mojom/messaging/static_bitmap_image.mojom
index 3b08e9a1..3f4054e 100644
--- a/third_party/blink/public/mojom/messaging/static_bitmap_image.mojom
+++ b/third_party/blink/public/mojom/messaging/static_bitmap_image.mojom
@@ -41,8 +41,6 @@
   gpu.mojom.SyncToken sync_token;
   // Common image metadata.
   skia.mojom.ImageInfo image_info;
-  // Indicates the orientation of the image.
-  bool is_origin_top_left;
   // Indicates if the display compositing may be used with this image.
   bool supports_display_compositing;
   // Indicates if the image is an overlay candidate.
diff --git a/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom b/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom
index 9ff7fc0..bdde3c8b 100644
--- a/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom
+++ b/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom
@@ -4600,6 +4600,7 @@
   kV8AuthenticatorAttestationResponse_GetPublicKey_Method = 5214,
   kCloseWatcherScriptConstructor = 5215,
   kCanvas2DImageSmoothingQuality2 = 5216,
+  kNonNoneTouchActionWouldLoseEditableHandwriting = 5217,
 
   // Add new features immediately above this line. Don't change assigned
   // numbers of any item, and don't reuse removed slots. Also don't add extra
diff --git a/third_party/blink/renderer/bindings/core/v8/idl_types.h b/third_party/blink/renderer/bindings/core/v8/idl_types.h
index 859a516..8e411c7 100644
--- a/third_party/blink/renderer/bindings/core/v8/idl_types.h
+++ b/third_party/blink/renderer/bindings/core/v8/idl_types.h
@@ -20,6 +20,7 @@
 
 class BigInt;
 class EventListener;
+class ScriptObject;
 template <typename T>
 class MemberScriptPromise;
 template <typename T>
@@ -202,7 +203,7 @@
         bindings::IDLStringConvMode::kDefault>;
 
 // object
-struct IDLObject final : public IDLBaseHelper<ScriptValue> {};
+struct IDLObject final : public IDLBaseHelper<ScriptObject> {};
 
 // Promise types
 template <typename T>
@@ -269,9 +270,6 @@
       std::optional<typename NativeValueTraits<T>::ImplType>>;
 };
 
-// Date
-struct IDLDate final : public IDLBaseHelper<base::Time> {};
-
 // EventHandler types
 struct IDLEventHandler final : public IDLBaseHelper<EventListener*> {};
 struct IDLOnBeforeUnloadEventHandler final
diff --git a/third_party/blink/renderer/bindings/core/v8/is_return_type_compatible.h b/third_party/blink/renderer/bindings/core/v8/is_return_type_compatible.h
index 904a6d5..780d795 100644
--- a/third_party/blink/renderer/bindings/core/v8/is_return_type_compatible.h
+++ b/third_party/blink/renderer/bindings/core/v8/is_return_type_compatible.h
@@ -16,7 +16,6 @@
 namespace blink {
 
 class KURL;
-class ScriptObject;
 
 namespace bindings {
 
@@ -178,16 +177,6 @@
 inline constexpr bool IsReturnTypeCompatible<IDLObject, v8::Local<v8::Object>> =
     true;
 
-// TODO(japhet): This will be unnecessary once IDLObject's ImplType switches to
-// ScriptObject.
-template <>
-inline constexpr bool IsReturnTypeCompatible<IDLObject, ScriptObject> = true;
-
-// TODO(caseq): this shouldn't really be allowed, as ScriptValue may carry
-// values that are not objects, but keep it for now.
-template <>
-inline constexpr bool IsReturnTypeCompatible<IDLObject, ScriptValue> = true;
-
 // TODO(caseq): this shouldn't really be allowed, as v8::Value may carry
 // values that are not objects, but keep it for now.
 template <>
diff --git a/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h b/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h
index 758f60d..266a8ae 100644
--- a/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h
+++ b/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h
@@ -866,54 +866,60 @@
 template <>
 struct CORE_EXPORT NativeValueTraits<IDLObject>
     : public NativeValueTraitsBase<IDLObject> {
-  static ScriptValue NativeValue(v8::Isolate* isolate,
-                                 v8::Local<v8::Value> value,
-                                 ExceptionState& exception_state) {
-    if (value->IsObject())
-      return ScriptValue(isolate, value);
+  static ScriptObject NativeValue(v8::Isolate* isolate,
+                                  v8::Local<v8::Value> value,
+                                  ExceptionState& exception_state) {
+    if (value->IsObject()) [[likely]] {
+      return ScriptObject(isolate, value);
+    }
     exception_state.ThrowTypeError(
         ExceptionMessages::FailedToConvertJSValue("object"));
-    return ScriptValue();
+    return ScriptObject();
   }
 
-  static ScriptValue ArgumentValue(v8::Isolate* isolate,
-                                   int argument_index,
-                                   v8::Local<v8::Value> value,
-                                   ExceptionState& exception_state) {
-    if (value->IsObject())
-      return ScriptValue(isolate, value);
+  static ScriptObject ArgumentValue(v8::Isolate* isolate,
+                                    int argument_index,
+                                    v8::Local<v8::Value> value,
+                                    ExceptionState& exception_state) {
+    if (value->IsObject()) [[likely]] {
+      return ScriptObject(isolate, value);
+    }
     exception_state.ThrowTypeError(
         ExceptionMessages::ArgumentNotOfType(argument_index, "object"));
-    return ScriptValue();
+    return ScriptObject();
   }
 };
 
 template <>
 struct CORE_EXPORT NativeValueTraits<IDLNullable<IDLObject>>
     : public NativeValueTraitsBase<IDLNullable<IDLObject>> {
-  static ScriptValue NativeValue(v8::Isolate* isolate,
-                                 v8::Local<v8::Value> value,
-                                 ExceptionState& exception_state) {
-    if (value->IsObject())
-      return ScriptValue(isolate, value);
-    if (value->IsNullOrUndefined())
-      return ScriptValue(isolate, v8::Null(isolate));
+  static ScriptObject NativeValue(v8::Isolate* isolate,
+                                  v8::Local<v8::Value> value,
+                                  ExceptionState& exception_state) {
+    if (value->IsObject()) {
+      return ScriptObject(isolate, value);
+    }
+    if (value->IsNullOrUndefined()) {
+      return ScriptObject::CreateNull(isolate);
+    }
     exception_state.ThrowTypeError(
         ExceptionMessages::FailedToConvertJSValue("object"));
-    return ScriptValue();
+    return ScriptObject();
   }
 
-  static ScriptValue ArgumentValue(v8::Isolate* isolate,
-                                   int argument_index,
-                                   v8::Local<v8::Value> value,
-                                   ExceptionState& exception_state) {
-    if (value->IsObject())
-      return ScriptValue(isolate, value);
-    if (value->IsNullOrUndefined())
-      return ScriptValue(isolate, v8::Null(isolate));
+  static ScriptObject ArgumentValue(v8::Isolate* isolate,
+                                    int argument_index,
+                                    v8::Local<v8::Value> value,
+                                    ExceptionState& exception_state) {
+    if (value->IsObject()) {
+      return ScriptObject(isolate, value);
+    }
+    if (value->IsNullOrUndefined()) {
+      return ScriptObject::CreateNull(isolate);
+    }
     exception_state.ThrowTypeError(
         ExceptionMessages::ArgumentNotOfType(argument_index, "object"));
-    return ScriptValue();
+    return ScriptObject();
   }
 };
 
@@ -1722,28 +1728,6 @@
   }
 };
 
-// Date
-template <>
-struct CORE_EXPORT NativeValueTraits<IDLDate>
-    : public NativeValueTraitsBase<IDLDate> {
-  // IDLDate must be always used as IDLNullable<IDLDate>.
-  static std::optional<base::Time> NativeValue(
-      v8::Isolate* isolate,
-      v8::Local<v8::Value> value,
-      ExceptionState& exception_state) = delete;
-};
-
-template <>
-struct CORE_EXPORT NativeValueTraits<IDLNullable<IDLDate>>
-    : public NativeValueTraitsBase<IDLNullable<IDLDate>> {
-  static std::optional<base::Time> NativeValue(
-      v8::Isolate* isolate,
-      v8::Local<v8::Value> value,
-      ExceptionState& exception_state) {
-    return ToCoreNullableDate(isolate, value, exception_state);
-  }
-};
-
 // EventHandler
 template <>
 struct CORE_EXPORT NativeValueTraits<IDLEventHandler>
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 51e7dab..f5dd6d4 100644
--- a/third_party/blink/renderer/bindings/core/v8/script_value.h
+++ b/third_party/blink/renderer/bindings/core/v8/script_value.h
@@ -176,6 +176,15 @@
   DISALLOW_NEW();
 
  public:
+  // ScriptObject::From() is restricted to certain types that are unambiguous in
+  // how they are exposed to V8 and that are known to be objects.
+  template <typename T>
+    requires std::derived_from<T, bindings::DictionaryBase> ||
+             std::derived_from<T, ScriptWrappable>
+  static ScriptObject From(ScriptState* script_state, T* value) {
+    return ScriptObject(script_state->GetIsolate(), value->ToV8(script_state));
+  }
+
   ScriptObject() = default;
   ScriptObject(v8::Isolate* isolate, v8::Local<v8::Value> value)
       : object_(isolate, value) {
@@ -192,6 +201,15 @@
     return object_.V8Value().As<v8::Object>();
   }
 
+  v8::Local<v8::Object> V8ObjectFor(ScriptState* script_state) const {
+    CHECK(object_.IsObject());
+    return object_.V8ValueFor(script_state).As<v8::Object>();
+  }
+
+  bool IsNull() const { return object_.IsNull(); }
+
+  void Clear() { object_.Clear(); }
+
   // NOLINTNEXTLINE(google-explicit-constructor)
   operator const ScriptValue&() const { return object_; }
   // NOLINTNEXTLINE(google-explicit-constructor)
diff --git a/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.cc b/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.cc
index 14a9f87b..1899089 100644
--- a/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.cc
+++ b/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.cc
@@ -507,23 +507,22 @@
 
 bool SerializedScriptValue::ExtractTransferables(
     v8::Isolate* isolate,
-    const HeapVector<ScriptValue>& object_sequence,
+    const HeapVector<ScriptObject>& object_sequence,
     Transferables& transferables,
     ExceptionState& exception_state) {
   auto& factory = SerializedScriptValueFactory::Instance();
   wtf_size_t i = 0;
-  for (const auto& script_value : object_sequence) {
-    v8::Local<v8::Value> value = script_value.V8Value();
+  for (const auto& script_object : object_sequence) {
     // Validation of non-null objects, per HTML5 spec 10.3.3.
-    if (IsUndefinedOrNull(value)) {
-      exception_state.ThrowDOMException(
-          DOMExceptionCode::kDataCloneError,
-          "Value at index " + String::Number(i) + " is an untransferable " +
-              (value->IsUndefined() ? "'undefined'" : "'null'") + " value.");
+    if (script_object.IsNull()) {
+      exception_state.ThrowDOMException(DOMExceptionCode::kDataCloneError,
+                                        "Value at index " + String::Number(i) +
+                                            " is an untransferable " +
+                                            "'null' value.");
       return false;
     }
-    if (!factory.ExtractTransferable(isolate, value, i, transferables,
-                                     exception_state)) {
+    if (!factory.ExtractTransferable(isolate, script_object.V8Object(), i,
+                                     transferables, exception_state)) {
       if (!exception_state.HadException()) {
         exception_state.ThrowDOMException(
             DOMExceptionCode::kDataCloneError,
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 d4873e6..95949d2 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
@@ -66,7 +66,7 @@
 class ExceptionState;
 class ExecutionContext;
 class MessagePort;
-class ScriptValue;
+class ScriptObject;
 class StaticBitmapImage;
 class Transferables;
 class UnpackedSerializedScriptValue;
@@ -237,7 +237,7 @@
   // Returns true if the array was filled, or false if the passed value was not
   // of an appropriate type.
   static bool ExtractTransferables(v8::Isolate*,
-                                   const HeapVector<ScriptValue>&,
+                                   const HeapVector<ScriptObject>&,
                                    Transferables&,
                                    ExceptionState&);
 
diff --git a/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_serializer_test.cc b/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_serializer_test.cc
index 0a08ee1..2def74e 100644
--- a/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_serializer_test.cc
+++ b/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_serializer_test.cc
@@ -2090,7 +2090,8 @@
   auto* rs = ReadableStream::Create(script_state, ASSERT_NO_EXCEPTION);
   v8::Local<v8::Value> wrapper =
       ToV8Traits<ReadableStream>::ToV8(scope.GetScriptState(), rs);
-  HeapVector<ScriptValue> transferable_array = {ScriptValue(isolate, wrapper)};
+  HeapVector<ScriptObject> transferable_array = {
+      ScriptObject(isolate, wrapper)};
   Transferables transferables;
   ASSERT_TRUE(SerializedScriptValue::ExtractTransferables(
       isolate, transferable_array, transferables, ASSERT_NO_EXCEPTION));
@@ -2115,7 +2116,8 @@
   auto* ts = TransformStream::Create(script_state, ASSERT_NO_EXCEPTION);
   v8::Local<v8::Value> wrapper =
       ToV8Traits<TransformStream>::ToV8(scope.GetScriptState(), ts);
-  HeapVector<ScriptValue> transferable_array = {ScriptValue(isolate, wrapper)};
+  HeapVector<ScriptObject> transferable_array = {
+      ScriptObject(isolate, wrapper)};
   Transferables transferables;
   ASSERT_TRUE(SerializedScriptValue::ExtractTransferables(
       isolate, transferable_array, transferables, ASSERT_NO_EXCEPTION));
diff --git a/third_party/blink/renderer/bindings/core/v8/to_v8_traits.h b/third_party/blink/renderer/bindings/core/v8/to_v8_traits.h
index 69502ef9..6f4d01c2 100644
--- a/third_party/blink/renderer/bindings/core/v8/to_v8_traits.h
+++ b/third_party/blink/renderer/bindings/core/v8/to_v8_traits.h
@@ -219,11 +219,8 @@
 
   [[nodiscard]] static v8::Local<v8::Value> ToV8(
       ScriptState* script_state,
-      const ScriptValue& script_value) {
-    DCHECK(!script_value.IsEmpty());
-    v8::Local<v8::Value> v8_value = script_value.V8ValueFor(script_state);
-    DCHECK(v8_value->IsObject());
-    return v8_value;
+      const ScriptObject& script_object) {
+    return script_object.V8ObjectFor(script_state);
   }
 };
 
@@ -318,7 +315,7 @@
 
 // Helper function for IDLSequence
 template <typename ElementIDLType, typename ContainerType>
-[[nodiscard]] inline v8::Local<v8::Value> ToV8HelperSequence(
+[[nodiscard]] inline v8::Local<v8::Object> ToV8HelperSequence(
     ScriptState* script_state,
     const ContainerType& sequence) {
   auto current_it = sequence.begin();
@@ -335,7 +332,7 @@
   };
   return v8::Array::New(script_state->GetContext(),
                         base::checked_cast<size_t>(sequence.size()), callback)
-      .template As<v8::Value>()
+      .template As<v8::Object>()
       .ToLocalChecked();
 }
 
@@ -348,7 +345,7 @@
 //
 // This hack reduces the APK size by 4 Kbytes as of 2021 March.
 template <typename BaseClassOfT, typename T>
-[[nodiscard]] inline v8::Local<v8::Value> ToV8HelperSequenceWithMemberUpcast(
+[[nodiscard]] inline v8::Local<v8::Object> ToV8HelperSequenceWithMemberUpcast(
     ScriptState* script_state,
     const HeapVector<Member<T>>& sequence) {
   static_assert(std::is_base_of_v<BaseClassOfT, T>);
@@ -358,7 +355,7 @@
 }
 
 template <typename BaseClassOfT, typename T>
-[[nodiscard]] inline v8::Local<v8::Value> ToV8HelperSequenceWithMemberUpcast(
+[[nodiscard]] inline v8::Local<v8::Object> ToV8HelperSequenceWithMemberUpcast(
     ScriptState* script_state,
     const HeapDeque<Member<T>>& sequence) {
   static_assert(std::is_base_of_v<BaseClassOfT, T>);
@@ -405,14 +402,14 @@
 struct ToV8Traits<
     IDLSequence<T>,
     std::enable_if_t<std::is_base_of<bindings::DictionaryBase, T>::value>> {
-  [[nodiscard]] static v8::Local<v8::Value> ToV8(
+  [[nodiscard]] static v8::Local<v8::Object> ToV8(
       ScriptState* script_state,
       const HeapVector<Member<T>>& value) {
     return bindings::ToV8HelperSequenceWithMemberUpcast<
         bindings::DictionaryBase>(script_state, value);
   }
 
-  [[nodiscard]] static v8::Local<v8::Value> ToV8(
+  [[nodiscard]] static v8::Local<v8::Object> ToV8(
       ScriptState* script_state,
       const HeapVector<Member<const T>>& value) {
     return bindings::ToV8HelperSequenceWithMemberUpcast<
@@ -420,7 +417,7 @@
   }
 
   // TODO(crbug.com/1185046): Remove this overload.
-  [[nodiscard]] static v8::Local<v8::Value> ToV8(
+  [[nodiscard]] static v8::Local<v8::Object> ToV8(
       ScriptState* script_state,
       const v8::LocalVector<v8::Value>& value) {
     return bindings::ToV8HelperSequence<IDLAny>(script_state, value);
@@ -431,21 +428,21 @@
 struct ToV8Traits<
     IDLSequence<T>,
     std::enable_if_t<std::is_base_of<ScriptWrappable, T>::value>> {
-  [[nodiscard]] static v8::Local<v8::Value> ToV8(
+  [[nodiscard]] static v8::Local<v8::Object> ToV8(
       ScriptState* script_state,
       const HeapVector<Member<T>>& value) {
     return bindings::ToV8HelperSequenceWithMemberUpcast<ScriptWrappable>(
         script_state, value);
   }
 
-  [[nodiscard]] static v8::Local<v8::Value> ToV8(
+  [[nodiscard]] static v8::Local<v8::Object> ToV8(
       ScriptState* script_state,
       const HeapVector<Member<const T>>& value) {
     return bindings::ToV8HelperSequenceWithMemberUpcast<ScriptWrappable>(
         script_state, value);
   }
 
-  [[nodiscard]] static v8::Local<v8::Value> ToV8(
+  [[nodiscard]] static v8::Local<v8::Object> ToV8(
       ScriptState* script_state,
       const HeapDeque<Member<T>>& value) {
     return bindings::ToV8HelperSequenceWithMemberUpcast<ScriptWrappable>(
@@ -459,8 +456,8 @@
     std::enable_if_t<!std::is_base_of<bindings::DictionaryBase, T>::value &&
                      !std::is_base_of<ScriptWrappable, T>::value>> {
   template <typename ContainerType>
-  [[nodiscard]] static v8::Local<v8::Value> ToV8(ScriptState* script_state,
-                                                 const ContainerType& value) {
+  [[nodiscard]] static v8::Local<v8::Object> ToV8(ScriptState* script_state,
+                                                  const ContainerType& value) {
     return bindings::ToV8HelperSequence<T>(script_state, value);
   }
 };
@@ -478,22 +475,22 @@
   template <typename ContainerType>
   [[nodiscard]] static v8::Local<v8::Value> ToV8(ScriptState* script_state,
                                                  const ContainerType& value) {
-    v8::Local<v8::Value> v8_value =
+    v8::Local<v8::Object> v8_object =
         ToV8Traits<IDLSequence<T>>::ToV8(script_state, value);
-    v8_value.As<v8::Object>()->SetIntegrityLevel(script_state->GetContext(),
-                                                 v8::IntegrityLevel::kFrozen);
-    return v8_value;
+    v8_object->SetIntegrityLevel(script_state->GetContext(),
+                                 v8::IntegrityLevel::kFrozen);
+    return v8_object;
   }
 
   // TODO(crbug.com/1185046): Remove this overload.
   [[nodiscard]] static v8::Local<v8::Value> ToV8(
       ScriptState* script_state,
       const v8::LocalVector<v8::Value>& value) {
-    v8::Local<v8::Value> v8_value =
+    v8::Local<v8::Object> v8_object =
         ToV8Traits<IDLSequence<IDLAny>>::ToV8(script_state, value);
-    v8_value.As<v8::Object>()->SetIntegrityLevel(script_state->GetContext(),
-                                                 v8::IntegrityLevel::kFrozen);
-    return v8_value;
+    v8_object->SetIntegrityLevel(script_state->GetContext(),
+                                 v8::IntegrityLevel::kFrozen);
+    return v8_object;
   }
 };
 
@@ -592,11 +589,11 @@
 struct ToV8Traits<IDLNullable<IDLObject>> {
   [[nodiscard]] static v8::Local<v8::Value> ToV8(
       ScriptState* script_state,
-      const ScriptValue& script_value) {
-    DCHECK(!script_value.IsEmpty());
-    v8::Local<v8::Value> v8_value = script_value.V8ValueFor(script_state);
-    DCHECK(v8_value->IsNull() || v8_value->IsObject());
-    return v8_value;
+      const ScriptObject& script_object) {
+    if (script_object.IsNull()) {
+      return v8::Null(script_state->GetIsolate());
+    }
+    return script_object.V8ObjectFor(script_state);
   }
 };
 
@@ -775,21 +772,6 @@
   }
 };
 
-// Nullable Date
-// IDLDate must be used as IDLNullable<IDLDate>.
-template <>
-struct ToV8Traits<IDLNullable<IDLDate>> {
-  [[nodiscard]] static v8::Local<v8::Value> ToV8(
-      ScriptState* script_state,
-      const std::optional<base::Time> date) {
-    if (!date)
-      return v8::Null(script_state->GetIsolate());
-    return v8::Date::New(script_state->GetContext(),
-                         date->InMillisecondsFSinceUnixEpochIgnoringNull())
-        .ToLocalChecked();
-  }
-};
-
 // Union types
 
 template <typename T>
diff --git a/third_party/blink/renderer/bindings/core/v8/to_v8_traits_test.cc b/third_party/blink/renderer/bindings/core/v8/to_v8_traits_test.cc
index 55f27e4b..66ed45f 100644
--- a/third_party/blink/renderer/bindings/core/v8/to_v8_traits_test.cc
+++ b/third_party/blink/renderer/bindings/core/v8/to_v8_traits_test.cc
@@ -270,12 +270,12 @@
   Vector<String> string_vector;
   string_vector.push_back("hello");
   string_vector.push_back("world");
-  ScriptValue value(scope.GetIsolate(),
-                    ToV8Traits<IDLSequence<IDLString>>::ToV8(
-                        scope.GetScriptState(), string_vector));
-  TEST_TOV8_TRAITS(scope, IDLObject, "hello,world", value);
+  ScriptObject object(scope.GetIsolate(),
+                      ToV8Traits<IDLSequence<IDLString>>::ToV8(
+                          scope.GetScriptState(), string_vector));
+  TEST_TOV8_TRAITS(scope, IDLObject, "hello,world", object);
   v8::Local<v8::Value> actual =
-      ToV8Traits<IDLObject>::ToV8(scope.GetScriptState(), value);
+      ToV8Traits<IDLObject>::ToV8(scope.GetScriptState(), object);
   EXPECT_TRUE(actual->IsObject());
 }
 
@@ -569,17 +569,17 @@
   const V8TestingScope scope;
   TEST_TOV8_TRAITS(
       scope, IDLNullable<IDLObject>, "null",
-      ScriptValue(scope.GetIsolate(), v8::Null(scope.GetIsolate())));
+      ScriptObject(scope.GetIsolate(), v8::Null(scope.GetIsolate())));
 
   Vector<uint8_t> uint8_vector;
   uint8_vector.push_back(static_cast<uint8_t>(0));
   uint8_vector.push_back(static_cast<uint8_t>(255));
-  ScriptValue value(scope.GetIsolate(),
-                    ToV8Traits<IDLNullable<IDLSequence<IDLOctet>>>::ToV8(
-                        scope.GetScriptState(), uint8_vector));
-  TEST_TOV8_TRAITS(scope, IDLNullable<IDLObject>, "0,255", value);
+  ScriptObject object(scope.GetIsolate(),
+                      ToV8Traits<IDLNullable<IDLSequence<IDLOctet>>>::ToV8(
+                          scope.GetScriptState(), uint8_vector));
+  TEST_TOV8_TRAITS(scope, IDLNullable<IDLObject>, "0,255", object);
   v8::Local<v8::Value> actual =
-      ToV8Traits<IDLNullable<IDLObject>>::ToV8(scope.GetScriptState(), value);
+      ToV8Traits<IDLNullable<IDLObject>>::ToV8(scope.GetScriptState(), object);
   EXPECT_TRUE(actual->IsObject());
 }
 
@@ -649,25 +649,6 @@
                    "[object Object],[object Object]", dom_point_init_vector);
 }
 
-TEST(ToV8TraitsTest, NullableDate) {
-  test::TaskEnvironment task_environment;
-  const V8TestingScope scope;
-  TEST_TOV8_TRAITS(scope, IDLNullable<IDLDate>, "null", std::nullopt);
-
-  base::Time expected_date;
-  EXPECT_TRUE(
-      base::Time::FromString("Fri, 01 Jan 2021 00:00:00 GMT", &expected_date));
-  v8::Local<v8::Value> result = ToV8Traits<IDLNullable<IDLDate>>::ToV8(
-      scope.GetScriptState(), std::optional<base::Time>(expected_date));
-  String actual_string =
-      ToCoreString(scope.GetIsolate(),
-                   result->ToString(scope.GetContext()).ToLocalChecked());
-  base::Time actual_date;
-  EXPECT_TRUE(
-      base::Time::FromString(actual_string.Ascii().c_str(), &actual_date));
-  EXPECT_EQ(expected_date, actual_date);
-}
-
 TEST(ToV8TraitsTest, Union) {
   test::TaskEnvironment task_environment;
   const V8TestingScope scope;
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h b/third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h
index 37640c0..a43a8ea 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h
+++ b/third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h
@@ -332,15 +332,17 @@
                                     ExceptionState&);
 
 inline std::optional<base::Time> ToCoreNullableDate(
-    v8::Isolate* isolate,
-    v8::Local<v8::Value> object,
+    const ScriptObject& script_object,
     ExceptionState& exception_state) {
   // https://html.spec.whatwg.org/C/#common-input-element-apis:dom-input-valueasdate-2
   //   ... otherwise if the new value is null or a Date object representing the
   //   NaN time value, then set the value of the element to the empty string;
   // We'd like to return same values for |null| and an invalid Date object.
-  if (object->IsNull())
+  if (script_object.IsNull()) {
     return std::nullopt;
+  }
+
+  v8::Local<v8::Object> object = script_object.V8Object();
   if (!object->IsDate()) {
     exception_state.ThrowTypeError("The provided value is not a Date.");
     return std::nullopt;
@@ -351,6 +353,18 @@
   return base::Time::FromMillisecondsSinceUnixEpoch(time_value);
 }
 
+inline ScriptObject ToV8FromDate(ScriptState* script_state,
+                                 const std::optional<base::Time>& date) {
+  if (!date) {
+    return ScriptObject::CreateNull(script_state->GetIsolate());
+  }
+  return ScriptObject(
+      script_state->GetIsolate(),
+      v8::Date::New(script_state->GetContext(),
+                    date->InMillisecondsFSinceUnixEpochIgnoringNull())
+          .ToLocalChecked());
+}
+
 // USVString conversion helper.
 CORE_EXPORT String ReplaceUnmatchedSurrogates(String);
 
diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py b/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py
index fe3c4dd..ad1e245 100644
--- a/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py
+++ b/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py
@@ -271,13 +271,20 @@
     if real_type.is_symbol:
         assert False, "Blink does not support/accept IDL symbol type."
 
-    if real_type.is_any or real_type.is_object:
+    if real_type.is_any:
         return TypeInfo("ScriptValue",
                         ref_fmt="{}&",
                         const_ref_fmt="const {}&",
                         has_null_value=True,
                         is_traceable=True)
 
+    if real_type.is_object:
+        return TypeInfo("ScriptObject",
+                        ref_fmt="{}&",
+                        const_ref_fmt="const {}&",
+                        has_null_value=True,
+                        is_traceable=True)
+
     if real_type.is_undefined:
         return TypeInfo("ToV8UndefinedGenerator",
                         ref_fmt="{}&",
@@ -701,6 +708,11 @@
             initializer_deps = ["isolate"]
             assignment_value = "ScriptValue::CreateNull(${isolate})"
             assignment_deps = ["isolate"]
+        elif type_info.typename == "ScriptObject":
+            initializer_expr = "${isolate}, v8::Null(${isolate})"
+            initializer_deps = ["isolate"]
+            assignment_value = "ScriptObject::CreateNull(${isolate})"
+            assignment_deps = ["isolate"]
         elif idl_type.unwrap().is_union:
             initializer_expr = "nullptr"
             is_initialization_lightweight = True
diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/dictionary.py b/third_party/blink/renderer/bindings/scripts/bind_gen/dictionary.py
index a4f0fa7..5391a9b 100644
--- a/third_party/blink/renderer/bindings/scripts/bind_gen/dictionary.py
+++ b/third_party/blink/renderer/bindings/scripts/bind_gen/dictionary.py
@@ -389,8 +389,6 @@
 
     def make_check_assigned_value(member):
         idl_type = member.idl_type.unwrap(typedef=True)
-        if idl_type.is_object:
-            return F("DCHECK({}.IsObject());", member.value_var)
         if (member.type_info.is_gc_type and not idl_type.is_nullable):
             return F("DCHECK({});", member.value_var)
         return None
diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/union.py b/third_party/blink/renderer/bindings/scripts/bind_gen/union.py
index 5171660..7e60cf5 100644
--- a/third_party/blink/renderer/bindings/scripts/bind_gen/union.py
+++ b/third_party/blink/renderer/bindings/scripts/bind_gen/union.py
@@ -203,8 +203,6 @@
     assert isinstance(union_member, _UnionMember)
     assert isinstance(assignment_value, str)
 
-    if union_member.idl_type and union_member.idl_type.is_object:
-        return TextNode("DCHECK({}.IsObject());".format(assignment_value))
     if union_member.type_info.is_gc_type:
         return TextNode("DCHECK({});".format(assignment_value))
 
@@ -481,7 +479,7 @@
             # Shortcut to reduce the binary size
             S("blink_value",
               (_format("auto&& ${blink_value} = "
-                       "ScriptValue(${isolate}, ${v8_value});"))))
+                       "ScriptObject(${isolate}, ${v8_value});"))))
 
     # 11. If Type(V) is Boolean, then:
     # 11.1. If types includes boolean, ...
diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_party/blink/renderer/core/css/css_properties.json5
index 1acb9367..0a27db1 100644
--- a/third_party/blink/renderer/core/css/css_properties.json5
+++ b/third_party/blink/renderer/core/css/css_properties.json5
@@ -5770,7 +5770,7 @@
       name: "touch-action",
       property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
       field_group: "*",
-      field_size: 8, // FIXME: Make this use "kTouchActionBits".
+      field_size: 9, // FIXME: Make this use "kTouchActionBits".
       field_template: "primitive",
       include_paths: ["third_party/blink/renderer/platform/graphics/touch_action.h"],
       default_value: "TouchAction::kAuto",
diff --git a/third_party/blink/renderer/core/css/element_rule_collector_test.cc b/third_party/blink/renderer/core/css/element_rule_collector_test.cc
index c2d2a6f6e..698da1dd 100644
--- a/third_party/blink/renderer/core/css/element_rule_collector_test.cc
+++ b/third_party/blink/renderer/core/css/element_rule_collector_test.cc
@@ -323,7 +323,7 @@
       "<default xmlns='http://example.org/default'/>"
       "</body></html>";
   SegmentedBuffer data;
-  data.Append(markup.Utf8().data(), markup.length());
+  data.Append(markup.Utf8());
   GetFrame().ForceSynchronousDocumentInstall(AtomicString("text/xml"),
                                              std::move(data));
 
diff --git a/third_party/blink/renderer/core/css/properties/computed_style_utils.cc b/third_party/blink/renderer/core/css/properties/computed_style_utils.cc
index 178f7e8..9b3a4b7 100644
--- a/third_party/blink/renderer/core/css/properties/computed_style_utils.cc
+++ b/third_party/blink/renderer/core/css/properties/computed_style_utils.cc
@@ -2308,11 +2308,19 @@
 CSSValue* ComputedStyleUtils::TouchActionFlagsToCSSValue(
     TouchAction touch_action) {
   CSSValueList* list = CSSValueList::CreateSpaceSeparated();
-  if (touch_action == TouchAction::kAuto) {
+  // Until handwriting is a web exposed feature, the combination of
+  // non-handwriting bits should result in values of auto / manipulation in the
+  // exposed CSS value.
+  // TODO(crbug.com/382525574): Launch or clean up kHandwriting.
+  touch_action &= ~TouchAction::kInternalHandwriting;
+
+  if (touch_action ==
+      (TouchAction::kAuto & ~TouchAction::kInternalHandwriting)) {
     list->Append(*CSSIdentifierValue::Create(CSSValueID::kAuto));
   } else if (touch_action == TouchAction::kNone) {
     list->Append(*CSSIdentifierValue::Create(CSSValueID::kNone));
-  } else if (touch_action == TouchAction::kManipulation) {
+  } else if (touch_action == (TouchAction::kManipulation &
+                              ~TouchAction::kInternalHandwriting)) {
     list->Append(*CSSIdentifierValue::Create(CSSValueID::kManipulation));
   } else {
     if ((touch_action & TouchAction::kPanX) == TouchAction::kPanX) {
diff --git a/third_party/blink/renderer/core/css/resolver/style_adjuster.cc b/third_party/blink/renderer/core/css/resolver/style_adjuster.cc
index b91832bf..8739015 100644
--- a/third_party/blink/renderer/core/css/resolver/style_adjuster.cc
+++ b/third_party/blink/renderer/core/css/resolver/style_adjuster.cc
@@ -900,18 +900,34 @@
     element_touch_action &= ~TouchAction::kInternalPanXScrolls;
   }
 
-  // TODO(crbug.com/1346169): Full style invalidation is needed when this
+  const bool is_writable = IsEditableElement(element, builder) &&
+                           !IsPasswordFieldWithUnrevealedPassword(element);
+  // TODO(crbug.com/40232387): Full style invalidation is needed when this
   // feature status changes at runtime as it affects the computed style.
   if (RuntimeEnabledFeatures::StylusHandwritingEnabled() &&
       (element_touch_action & TouchAction::kPan) == TouchAction::kPan &&
-      IsEditableElement(element, builder) &&
-      !IsPasswordFieldWithUnrevealedPassword(element)) {
+      is_writable) {
     element_touch_action &= ~TouchAction::kInternalNotWritable;
   }
 
+  const TouchAction effective_touch_action =
+      (element_touch_action & inherited_action) | enforced_by_policy;
   // Apply the adjusted parent effective touch actions.
-  builder.SetEffectiveTouchAction((element_touch_action & inherited_action) |
-                                  enforced_by_policy);
+  builder.SetEffectiveTouchAction(effective_touch_action);
+
+  // crbug.com/378027646 : This use counter counts how many pages would lose
+  // handwriting capabilities on platforms that support it if the handwriting
+  // keyword were implemented on this CSS attribute. Please see the linked bug
+  // for more information.
+  const bool would_lose_handwriting =
+      is_writable && effective_touch_action != TouchAction::kNone &&
+      (effective_touch_action & TouchAction::kInternalHandwriting) !=
+          TouchAction::kInternalHandwriting;
+  if (would_lose_handwriting) {
+    UseCounter::Count(
+        element->GetDocument(),
+        WebFeature::kNonNoneTouchActionWouldLoseEditableHandwriting);
+  }
 
   // Propagate touch action to child frames.
   if (auto* frame_owner = DynamicTo<HTMLFrameOwnerElement>(element)) {
diff --git a/third_party/blink/renderer/core/css/resolver/style_adjuster_test.cc b/third_party/blink/renderer/core/css/resolver/style_adjuster_test.cc
index 9d91402..5844d404 100644
--- a/third_party/blink/renderer/core/css/resolver/style_adjuster_test.cc
+++ b/third_party/blink/renderer/core/css/resolver/style_adjuster_test.cc
@@ -58,7 +58,8 @@
   UpdateAllLifecyclePhasesForTest();
 
   Element* target = GetDocument().getElementById(AtomicString("target"));
-  EXPECT_EQ(TouchAction::kManipulation | TouchAction::kInternalPanXScrolls |
+  EXPECT_EQ((TouchAction::kManipulation & ~TouchAction::kInternalHandwriting) |
+                TouchAction::kInternalPanXScrolls |
                 TouchAction::kInternalNotWritable,
             target->GetComputedStyle()->EffectiveTouchAction());
 }
@@ -283,6 +284,81 @@
             target->GetComputedStyle()->EffectiveTouchAction());
 }
 
+// Non-writable elements shouldn't signal that they would lose handwriting
+// capabilities.
+TEST_F(StyleAdjusterTest, TouchActionHandwriting_NotWritable) {
+  SetBodyInnerHTML(R"HTML(
+    <div style="width: 100px; height: 100px;"/>
+  )HTML");
+  EXPECT_FALSE(GetDocument().IsUseCounted(
+      WebFeature::kNonNoneTouchActionWouldLoseEditableHandwriting));
+}
+
+// Non-writable elements shouldn't signal that they would lose handwriting
+// capabilities even if `touch-action` is specified.
+TEST_F(StyleAdjusterTest, TouchActionHandwriting_NotWritableTouchAction) {
+  SetBodyInnerHTML(R"HTML(
+    <div style="touch-action: pan-x; width: 100px; height: 100px;"/>
+  )HTML");
+  EXPECT_FALSE(GetDocument().IsUseCounted(
+      WebFeature::kNonNoneTouchActionWouldLoseEditableHandwriting));
+}
+
+// Writable elements shouldn't signal that they would lose handwriting
+// capabilities if `touch-action` is not specified.
+TEST_F(StyleAdjusterTest, TouchActionHandwriting_NoTouchAction) {
+  SetBodyInnerHTML(R"HTML(
+    <input type="text" style="width: 100px; height: 100px;"></input>
+  )HTML");
+  EXPECT_FALSE(GetDocument().IsUseCounted(
+      WebFeature::kNonNoneTouchActionWouldLoseEditableHandwriting));
+}
+
+// Writable elements shouldn't signal that they would lose handwriting
+// capabilities if `touch-action: auto` is specified.
+TEST_F(StyleAdjusterTest, TouchActionHandwriting_Auto) {
+  SetBodyInnerHTML(R"HTML(
+    <input style="touch-action:auto; height:100px; width:100px" type="text"/>
+  )HTML");
+  EXPECT_FALSE(GetDocument().IsUseCounted(
+      WebFeature::kNonNoneTouchActionWouldLoseEditableHandwriting));
+}
+
+// Writable elements shouldn't signal that they would lose handwriting
+// capabilities if `touch-action: manipulation` is specified.
+TEST_F(StyleAdjusterTest, TouchActionHandwriting_Manipulation) {
+  SetBodyInnerHTML(R"HTML(
+    <input style="touch-action:manipulation; height:100px; width:100px"
+      type="text"/>
+  )HTML");
+  EXPECT_FALSE(GetDocument().IsUseCounted(
+      WebFeature::kNonNoneTouchActionWouldLoseEditableHandwriting));
+}
+
+// Writable elements shouldn't signal that they would lose handwriting
+// capabilities if `touch-action: none` is specified, as handwriting would be
+// intentionally disabled.
+TEST_F(StyleAdjusterTest, TouchActionHandwriting_TouchActionNone) {
+  SetBodyInnerHTML(R"HTML(
+    <input style="touch-action:none; height:100px; width:100px"
+      type="text"/>
+  )HTML");
+  EXPECT_FALSE(GetDocument().IsUseCounted(
+      WebFeature::kNonNoneTouchActionWouldLoseEditableHandwriting));
+}
+
+// Writable elements should signal that they would lose handwriting
+// capabilities if `touch-action` is specified with a value other than
+// `manipulation` or `auto`.
+TEST_F(StyleAdjusterTest, TouchActionHandwriting_TouchActionDeclared) {
+  SetBodyInnerHTML(R"HTML(
+    <input style="touch-action:pan-x pan-y pinch-zoom; height:100px; width:100px"
+      type="text"/>
+  )HTML");
+  EXPECT_TRUE(GetDocument().IsUseCounted(
+      WebFeature::kNonNoneTouchActionWouldLoseEditableHandwriting));
+}
+
 TEST_F(StyleAdjusterTest, OverflowClipUseCount) {
   GetDocument().SetBaseURLOverride(KURL("http://test.com"));
   SetBodyInnerHTML(R"HTML(
diff --git a/third_party/blink/renderer/core/dom/static_range.h b/third_party/blink/renderer/core/dom/static_range.h
index 29a18d3..5d372d1 100644
--- a/third_party/blink/renderer/core/dom/static_range.h
+++ b/third_party/blink/renderer/core/dom/static_range.h
@@ -48,7 +48,7 @@
     return start_container_ == end_container_ && start_offset_ == end_offset_;
   }
 
-  Range* toRange(ExceptionState& = ASSERT_NO_EXCEPTION) const;
+  Range* toRange(ExceptionState&) const;
 
   bool IsValid() const;
   bool IsStaticRange() const override { return true; }
diff --git a/third_party/blink/renderer/core/events/input_event.cc b/third_party/blink/renderer/core/events/input_event.cc
index 5f0d0b4..c7c2fa7 100644
--- a/third_party/blink/renderer/core/events/input_event.cc
+++ b/third_party/blink/renderer/core/events/input_event.cc
@@ -108,8 +108,27 @@
 
 }  // anonymous namespace
 
+/* static */ InputEvent* InputEvent::Create(const AtomicString& type,
+                                            const InputEventInit* initializer,
+                                            ExceptionState& exception_state) {
+  InputEvent* result;
+  if (RuntimeEnabledFeatures::InputEventConstructorThrowsEnabled()) {
+    CHECK(!exception_state.HadException());
+    result =
+        MakeGarbageCollected<InputEvent>(type, initializer, exception_state);
+    if (exception_state.HadException()) {
+      return nullptr;
+    }
+  } else {
+    result =
+        MakeGarbageCollected<InputEvent>(type, initializer, IGNORE_EXCEPTION);
+  }
+  return result;
+}
+
 InputEvent::InputEvent(const AtomicString& type,
-                       const InputEventInit* initializer)
+                       const InputEventInit* initializer,
+                       ExceptionState& exception_state)
     : UIEvent(type, initializer) {
   // TODO(ojan): We should find a way to prevent conversion like
   // String->enum->String just in order to use initializer.
@@ -125,7 +144,7 @@
   if (!initializer->hasTargetRanges())
     return;
   for (const auto& range : initializer->targetRanges())
-    ranges_.push_back(range->toRange());
+    ranges_.push_back(range->toRange(exception_state));
 }
 
 InputEvent::InputEvent(const AtomicString& type,
@@ -142,7 +161,7 @@
       is_composing_(is_composing == kIsComposing) {
   if (ranges) {
     for (const auto& range : *ranges) {
-      ranges_.push_back(range->toRange());
+      ranges_.push_back(range->toRange(ASSERT_NO_EXCEPTION));
     }
   }
 }
diff --git a/third_party/blink/renderer/core/events/input_event.h b/third_party/blink/renderer/core/events/input_event.h
index 3dfb9381..6291d23 100644
--- a/third_party/blink/renderer/core/events/input_event.h
+++ b/third_party/blink/renderer/core/events/input_event.h
@@ -19,9 +19,8 @@
 
  public:
   static InputEvent* Create(const AtomicString& type,
-                            const InputEventInit* initializer) {
-    return MakeGarbageCollected<InputEvent>(type, initializer);
-  }
+                            const InputEventInit* initializer,
+                            ExceptionState& exception_state);
 
   // https://w3c.github.io/input-events/#h-interface-inputevent-attributes
   enum class InputType {
@@ -92,7 +91,7 @@
                                  EventIsComposing,
                                  const StaticRangeVector*);
 
-  InputEvent(const AtomicString&, const InputEventInit*);
+  InputEvent(const AtomicString&, const InputEventInit*, ExceptionState&);
   // This variant of the constructor is more efficient than the InputEventInit
   // variant.
   InputEvent(const AtomicString& type,
diff --git a/third_party/blink/renderer/core/events/input_event.idl b/third_party/blink/renderer/core/events/input_event.idl
index 9834428..5440ecb41 100644
--- a/third_party/blink/renderer/core/events/input_event.idl
+++ b/third_party/blink/renderer/core/events/input_event.idl
@@ -8,7 +8,7 @@
 [
     Exposed=Window
 ] interface InputEvent : UIEvent {
-    constructor(DOMString type, optional InputEventInit eventInitDict = {});
+    [RaisesException] constructor(DOMString type, optional InputEventInit eventInitDict = {});
     readonly attribute DOMString? data;
     readonly attribute boolean isComposing;
 
diff --git a/third_party/blink/renderer/core/exported/test_web_frame_content_dumper.cc b/third_party/blink/renderer/core/exported/test_web_frame_content_dumper.cc
index 2e9b4144..b8610ce 100644
--- a/third_party/blink/renderer/core/exported/test_web_frame_content_dumper.cc
+++ b/third_party/blink/renderer/core/exported/test_web_frame_content_dumper.cc
@@ -29,10 +29,11 @@
 
   WebViewImpl* web_view_impl = To<WebViewImpl>(web_view);
   DCHECK(web_view_impl->MainFrameViewWidget());
+  const viz::BeginFrameArgs args;
   // Updating the document lifecycle isn't enough, the BeginFrame() step
   // should come first which runs events such as notifying of media query
   // changes or raf-based events.
-  web_view_impl->MainFrameViewWidget()->BeginMainFrame(base::TimeTicks::Now());
+  web_view_impl->MainFrameViewWidget()->BeginMainFrame(args);
   web_view_impl->MainFrameViewWidget()->UpdateAllLifecyclePhases(
       DocumentUpdateReason::kTest);
 
diff --git a/third_party/blink/renderer/core/exported/web_page_popup_impl.cc b/third_party/blink/renderer/core/exported/web_page_popup_impl.cc
index 1b442112..038e786 100644
--- a/third_party/blink/renderer/core/exported/web_page_popup_impl.cc
+++ b/third_party/blink/renderer/core/exported/web_page_popup_impl.cc
@@ -709,7 +709,7 @@
   }
 }
 
-void WebPagePopupImpl::BeginMainFrame(base::TimeTicks last_frame_time) {
+void WebPagePopupImpl::BeginMainFrame(const viz::BeginFrameArgs& args) {
   if (!page_)
     return;
   // FIXME: This should use lastFrameTimeMonotonic but doing so
diff --git a/third_party/blink/renderer/core/exported/web_page_popup_impl.h b/third_party/blink/renderer/core/exported/web_page_popup_impl.h
index 4f3092d..24856bd 100644
--- a/third_party/blink/renderer/core/exported/web_page_popup_impl.h
+++ b/third_party/blink/renderer/core/exported/web_page_popup_impl.h
@@ -137,7 +137,7 @@
  private:
   // WidgetBaseClient overrides:
   void OnCommitRequested() override;
-  void BeginMainFrame(base::TimeTicks last_frame_time) override;
+  void BeginMainFrame(const viz::BeginFrameArgs& args) override;
   void SetSuppressFrameRequestsWorkaroundFor704763Only(bool) final;
   WebInputEventResult DispatchBufferedTouchEvents() override;
   void WillHandleGestureEvent(const WebGestureEvent& event,
diff --git a/third_party/blink/renderer/core/fileapi/file.cc b/third_party/blink/renderer/core/fileapi/file.cc
index ff2675d..3c6c049 100644
--- a/third_party/blink/renderer/core/fileapi/file.cc
+++ b/third_party/blink/renderer/core/fileapi/file.cc
@@ -326,10 +326,7 @@
 ScriptObject File::lastModifiedDate(ScriptState* script_state) const {
   // lastModifiedDate returns a Date instance,
   // http://www.w3.org/TR/FileAPI/#dfn-lastModifiedDate
-  return ScriptObject(
-      script_state->GetIsolate(),
-      ToV8Traits<IDLNullable<IDLDate>>::ToV8(
-          script_state, std::optional<base::Time>(LastModifiedTime())));
+  return ToV8FromDate(script_state, std::make_optional(LastModifiedTime()));
 }
 
 std::optional<base::Time> File::LastModifiedTimeForSerialization() const {
diff --git a/third_party/blink/renderer/core/frame/animation_frame_timing_monitor.cc b/third_party/blink/renderer/core/frame/animation_frame_timing_monitor.cc
index 39037f68..8f97cab0 100644
--- a/third_party/blink/renderer/core/frame/animation_frame_timing_monitor.cc
+++ b/third_party/blink/renderer/core/frame/animation_frame_timing_monitor.cc
@@ -66,7 +66,11 @@
 }
 
 void AnimationFrameTimingMonitor::BeginMainFrame(
-    LocalDOMWindow& local_root_window) {
+    LocalDOMWindow& local_root_window,
+    viz::BeginFrameId frame_id) {
+  DOMWindowPerformance::performance(local_root_window)
+      ->OnBeginMainFrame(frame_id);
+
   base::TimeTicks now = base::TimeTicks::Now();
   if (!current_frame_timing_info_) {
     current_frame_timing_info_ =
diff --git a/third_party/blink/renderer/core/frame/animation_frame_timing_monitor.h b/third_party/blink/renderer/core/frame/animation_frame_timing_monitor.h
index 287bad4..415a7a77 100644
--- a/third_party/blink/renderer/core/frame/animation_frame_timing_monitor.h
+++ b/third_party/blink/renderer/core/frame/animation_frame_timing_monitor.h
@@ -52,7 +52,8 @@
 
   void Shutdown();
 
-  void BeginMainFrame(LocalDOMWindow& local_root_window);
+  void BeginMainFrame(LocalDOMWindow& local_root_window,
+                      viz::BeginFrameId frame_id);
   void WillPerformStyleAndLayoutCalculation();
   AnimationFrameTimingInfo* RecordRenderingUpdateEndTime(
       LocalDOMWindow& local_root_window,
diff --git a/third_party/blink/renderer/core/frame/deprecation/deprecation_report_body.cc b/third_party/blink/renderer/core/frame/deprecation/deprecation_report_body.cc
index 8e99e6d..4b1afe33 100644
--- a/third_party/blink/renderer/core/frame/deprecation/deprecation_report_body.cc
+++ b/third_party/blink/renderer/core/frame/deprecation/deprecation_report_body.cc
@@ -12,9 +12,7 @@
 
 ScriptObject DeprecationReportBody::anticipatedRemoval(
     ScriptState* script_state) const {
-  return ScriptObject(script_state->GetIsolate(),
-                      ToV8Traits<IDLNullable<IDLDate>>::ToV8(
-                          script_state, anticipated_removal_));
+  return ToV8FromDate(script_state, anticipated_removal_);
 }
 
 std::optional<base::Time> DeprecationReportBody::AnticipatedRemoval() const {
diff --git a/third_party/blink/renderer/core/frame/dom_window.cc b/third_party/blink/renderer/core/frame/dom_window.cc
index c971bec..8458075c 100644
--- a/third_party/blink/renderer/core/frame/dom_window.cc
+++ b/third_party/blink/renderer/core/frame/dom_window.cc
@@ -285,7 +285,7 @@
 void DOMWindow::postMessage(v8::Isolate* isolate,
                             const ScriptValue& message,
                             const String& target_origin,
-                            HeapVector<ScriptValue> transfer,
+                            HeapVector<ScriptObject> transfer,
                             ExceptionState& exception_state) {
   WindowPostMessageOptions* options = WindowPostMessageOptions::Create();
   options->setTargetOrigin(target_origin);
diff --git a/third_party/blink/renderer/core/frame/dom_window.h b/third_party/blink/renderer/core/frame/dom_window.h
index d67c587e..4a800734 100644
--- a/third_party/blink/renderer/core/frame/dom_window.h
+++ b/third_party/blink/renderer/core/frame/dom_window.h
@@ -29,6 +29,7 @@
 class InputDeviceCapabilitiesConstants;
 class LocalDOMWindow;
 class Location;
+class ScriptObject;
 class ScriptValue;
 class SecurityOrigin;
 class SerializedScriptValue;
@@ -114,7 +115,7 @@
   void postMessage(v8::Isolate*,
                    const ScriptValue& message,
                    const String& target_origin,
-                   HeapVector<ScriptValue> transfer,
+                   HeapVector<ScriptObject> transfer,
                    ExceptionState&);
 
   void postMessage(v8::Isolate*,
diff --git a/third_party/blink/renderer/core/frame/history.h b/third_party/blink/renderer/core/frame/history.h
index 262e327..2f6c12a 100644
--- a/third_party/blink/renderer/core/frame/history.h
+++ b/third_party/blink/renderer/core/frame/history.h
@@ -44,6 +44,7 @@
 class ExceptionState;
 class HistoryItem;
 class ScriptState;
+class ScriptValue;
 class V8ScrollRestoration;
 
 // This class corresponds to the History interface.
diff --git a/third_party/blink/renderer/core/frame/local_frame_test.cc b/third_party/blink/renderer/core/frame/local_frame_test.cc
index 91e9e872..4dc9d03 100644
--- a/third_party/blink/renderer/core/frame/local_frame_test.cc
+++ b/third_party/blink/renderer/core/frame/local_frame_test.cc
@@ -91,10 +91,9 @@
   auto page_holder = std::make_unique<DummyPageHolder>(gfx::Size(800, 600));
 
   SegmentedBuffer data;
-  data.Append(
+  data.Append(base::span_from_cstring(
       "<html xmlns='http://www.w3.org/1999/xhtml'><body><style>div { color: "
-      "green }</style><div id='div'></div></body></html>",
-      static_cast<size_t>(118));
+      "green }</style><div id='div'></div></body></html>"));
   page_holder->GetFrame().ForceSynchronousDocumentInstall(
       AtomicString("text/xml"), data);
   TestGreenDiv(*page_holder);
@@ -104,11 +103,10 @@
   auto page_holder = std::make_unique<DummyPageHolder>(gfx::Size(800, 600));
 
   SegmentedBuffer data;
-  data.Append(
+  data.Append(base::span_from_cstring(
       "<html xmlns='http://www.w3.org/1999/xhtml'><body><link rel='stylesheet' "
       "href='data:text/css,div{color:green}' /><div "
-      "id='div'></div></body></html>",
-      static_cast<size_t>(146));
+      "id='div'></div></body></html>"));
   page_holder->GetFrame().ForceSynchronousDocumentInstall(
       AtomicString("text/xml"), data);
   TestGreenDiv(*page_holder);
@@ -118,10 +116,9 @@
   auto page_holder = std::make_unique<DummyPageHolder>(gfx::Size(800, 600));
 
   SegmentedBuffer data;
-  data.Append(
+  data.Append(base::span_from_cstring(
       "<html xmlns='http://www.w3.org/1999/xhtml'><head><style>div { color: "
-      "green }</style></head><body><div id='div'></div></body></html>",
-      static_cast<size_t>(131));
+      "green }</style></head><body><div id='div'></div></body></html>"));
   page_holder->GetFrame().ForceSynchronousDocumentInstall(
       AtomicString("text/xml"), data);
   TestGreenDiv(*page_holder);
@@ -131,11 +128,10 @@
   auto page_holder = std::make_unique<DummyPageHolder>(gfx::Size(800, 600));
 
   SegmentedBuffer data;
-  data.Append(
+  data.Append(base::span_from_cstring(
       "<html xmlns='http://www.w3.org/1999/xhtml'><head><link rel='stylesheet' "
       "href='data:text/css,div{color:green}' /></head><body><div "
-      "id='div'></div></body></html>",
-      static_cast<size_t>(159));
+      "id='div'></div></body></html>"));
   page_holder->GetFrame().ForceSynchronousDocumentInstall(
       AtomicString("text/xml"), data);
   TestGreenDiv(*page_holder);
@@ -146,11 +142,10 @@
 
   SegmentedBuffer data;
   data.Append(
-      "<?xml-stylesheet type='text/css' "
-      "href='data:text/css,div{color:green}'?><html "
-      "xmlns='http://www.w3.org/1999/xhtml'><body><div "
-      "id='div'></div></body></html>",
-      static_cast<size_t>(155));
+      base::span_from_cstring("<?xml-stylesheet type='text/css' "
+                              "href='data:text/css,div{color:green}'?><html "
+                              "xmlns='http://www.w3.org/1999/xhtml'><body><div "
+                              "id='div'></div></body></html>"));
   page_holder->GetFrame().ForceSynchronousDocumentInstall(
       AtomicString("text/xml"), data);
   TestGreenDiv(*page_holder);
diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
index 967628ac..6925a591 100644
--- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
+++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
@@ -2614,7 +2614,8 @@
     view->OnCommitRequested();
 }
 
-void WebFrameWidgetImpl::BeginMainFrame(base::TimeTicks last_frame_time) {
+void WebFrameWidgetImpl::BeginMainFrame(const viz::BeginFrameArgs& args) {
+  base::TimeTicks last_frame_time = args.frame_time;
   TRACE_EVENT1("blink", "WebFrameWidgetImpl::BeginMainFrame", "frameTime",
                last_frame_time);
   DCHECK(!last_frame_time.is_null());
@@ -2622,7 +2623,7 @@
 
   if (animation_frame_timing_monitor_) {
     animation_frame_timing_monitor_->BeginMainFrame(
-        *LocalRootImpl()->GetFrame()->DomWindow());
+        *LocalRootImpl()->GetFrame()->DomWindow(), args.frame_id);
   }
 
   // Dirty bit on MouseEventManager is not cleared in OOPIFs after scroll
diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.h b/third_party/blink/renderer/core/frame/web_frame_widget_impl.h
index e3e0fc1c..34b0de73 100644
--- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.h
+++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.h
@@ -451,7 +451,7 @@
 
   // WidgetBaseClient overrides:
   void OnCommitRequested() override;
-  void BeginMainFrame(base::TimeTicks last_frame_time) override;
+  void BeginMainFrame(const viz::BeginFrameArgs& args) override;
   void UpdateLifecycle(WebLifecycleUpdate requested_update,
                        DocumentUpdateReason reason) override;
   void ShowContextMenu(ui::mojom::blink::MenuSourceType source_type,
diff --git a/third_party/blink/renderer/core/html/canvas/text_cluster.h b/third_party/blink/renderer/core/html/canvas/text_cluster.h
index 2613d0c..f50a546a 100644
--- a/third_party/blink/renderer/core/html/canvas/text_cluster.h
+++ b/third_party/blink/renderer/core/html/canvas/text_cluster.h
@@ -48,9 +48,6 @@
   TextBaseline GetTextBaseline() const { return baseline_; }
   const Member<TextMetrics> textMetrics() const { return text_metrics_; }
 
-  void setX(double x) { x_ = x; }
-  void setY(double y) { y_ = y; }
-
   void OffsetPosition(double x_offset, double y_offset);
   void OffsetCharacters(unsigned offset);
 
diff --git a/third_party/blink/renderer/core/html/canvas/text_cluster.idl b/third_party/blink/renderer/core/html/canvas/text_cluster.idl
index ead609e..8f971df 100644
--- a/third_party/blink/renderer/core/html/canvas/text_cluster.idl
+++ b/third_party/blink/renderer/core/html/canvas/text_cluster.idl
@@ -3,8 +3,8 @@
     Exposed=(Window,Worker)
 ]
 interface TextCluster {
-    attribute double x;
-    attribute double y;
+    readonly attribute double x;
+    readonly attribute double y;
     readonly attribute unsigned long begin;
     readonly attribute unsigned long end;
     readonly attribute DOMString align;
diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.cc b/third_party/blink/renderer/core/html/canvas/text_metrics.cc
index 6af47dc..8454356 100644
--- a/third_party/blink/renderer/core/html/canvas/text_metrics.cc
+++ b/third_party/blink/renderer/core/html/canvas/text_metrics.cc
@@ -519,7 +519,7 @@
   return clusters_for_range;
 }
 
-unsigned TextMetrics::caretPositionFromPoint(double x) {
+unsigned TextMetrics::getIndexFromOffset(double x) {
   if (runs_with_offset_.empty()) {
     return 0;
   }
diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.h b/third_party/blink/renderer/core/html/canvas/text_metrics.h
index a5742481..4fdd28c 100644
--- a/third_party/blink/renderer/core/html/canvas/text_metrics.h
+++ b/third_party/blink/renderer/core/html/canvas/text_metrics.h
@@ -69,7 +69,7 @@
 
   static float GetFontBaseline(const TextBaseline&, const SimpleFontData&);
 
-  unsigned caretPositionFromPoint(double x);
+  unsigned getIndexFromOffset(double x);
 
   const HeapVector<Member<DOMRectReadOnly>> getSelectionRects(
       uint32_t start,
diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.idl b/third_party/blink/renderer/core/html/canvas/text_metrics.idl
index 326128fb..f8cc9a5d 100644
--- a/third_party/blink/renderer/core/html/canvas/text_metrics.idl
+++ b/third_party/blink/renderer/core/html/canvas/text_metrics.idl
@@ -26,8 +26,10 @@
 // https://html.spec.whatwg.org/C/#textmetrics
 
 dictionary TextClusterOptions {
-  DOMString? align = null;
-  DOMString? baseline = null;
+  DOMString align;
+  DOMString baseline;
+  double x;
+  double y;
 };
 
 [Exposed=(Window,Worker)]
@@ -49,7 +51,7 @@
     [RuntimeEnabled=ExtendedTextMetrics] readonly attribute double emHeightDescent;
 
     // For editing, to get the text offset at a point
-    [RuntimeEnabled=ExtendedTextMetrics] unsigned long caretPositionFromPoint(double x);
+    [RuntimeEnabled=ExtendedTextMetrics] unsigned long getIndexFromOffset(double x);
 
     // For selection
     [RuntimeEnabled=ExtendedTextMetrics, RaisesException] sequence<DOMRectReadOnly> getSelectionRects([EnforceRange] unsigned long start, [EnforceRange] unsigned long end);
diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics_test.cc b/third_party/blink/renderer/core/html/canvas/text_metrics_test.cc
index 81361de..f1d7ff0 100644
--- a/third_party/blink/renderer/core/html/canvas/text_metrics_test.cc
+++ b/third_party/blink/renderer/core/html/canvas/text_metrics_test.cc
@@ -232,7 +232,7 @@
 
   for (wtf_size_t i = 0; i < test_data.points.size(); ++i) {
     EXPECT_EQ(test_data.positions[i],
-              text_metrics->caretPositionFromPoint(test_data.points[i]))
+              text_metrics->getIndexFromOffset(test_data.points[i]))
         << "at index " << i;
   }
 }
diff --git a/third_party/blink/renderer/core/html/forms/html_input_element.cc b/third_party/blink/renderer/core/html/forms/html_input_element.cc
index 3300bcd..b72853b9 100644
--- a/third_party/blink/renderer/core/html/forms/html_input_element.cc
+++ b/third_party/blink/renderer/core/html/forms/html_input_element.cc
@@ -1347,27 +1347,23 @@
   input_type_view_->UpdateView();
 }
 
-ScriptValue HTMLInputElement::valueAsDate(ScriptState* script_state) const {
+ScriptObject HTMLInputElement::valueAsDate(ScriptState* script_state) const {
   UseCounter::Count(GetDocument(), WebFeature::kInputElementValueAsDateGetter);
   // TODO(crbug.com/988343): InputType::ValueAsDate() should return
   // std::optional<base::Time>.
   double date = input_type_->ValueAsDate();
-  v8::Isolate* isolate = script_state->GetIsolate();
-  if (!std::isfinite(date))
-    return ScriptValue::CreateNull(isolate);
-  return ScriptValue(
-      isolate,
-      ToV8Traits<IDLNullable<IDLDate>>::ToV8(
-          script_state, base::Time::FromMillisecondsSinceUnixEpoch(date)));
+  if (!std::isfinite(date)) {
+    return ScriptObject::CreateNull(script_state->GetIsolate());
+  }
+  return ToV8FromDate(script_state,
+                      base::Time::FromMillisecondsSinceUnixEpoch(date));
 }
 
 void HTMLInputElement::setValueAsDate(ScriptState* script_state,
-                                      const ScriptValue& value,
+                                      const ScriptObject& value,
                                       ExceptionState& exception_state) {
   UseCounter::Count(GetDocument(), WebFeature::kInputElementValueAsDateSetter);
-  std::optional<base::Time> date =
-      NativeValueTraits<IDLNullable<IDLDate>>::NativeValue(
-          script_state->GetIsolate(), value.V8Value(), exception_state);
+  std::optional<base::Time> date = ToCoreNullableDate(value, exception_state);
   if (exception_state.HadException())
     return;
   input_type_->SetValueAsDate(date, exception_state);
diff --git a/third_party/blink/renderer/core/html/forms/html_input_element.h b/third_party/blink/renderer/core/html/forms/html_input_element.h
index 7dab68f..fc9dac6 100644
--- a/third_party/blink/renderer/core/html/forms/html_input_element.h
+++ b/third_party/blink/renderer/core/html/forms/html_input_element.h
@@ -51,7 +51,7 @@
 class KURL;
 class ListAttributeTargetObserver;
 class RadioButtonGroupScope;
-class ScriptValue;
+class ScriptObject;
 struct DateTimeChooserParameters;
 
 class CORE_EXPORT HTMLInputElement
@@ -180,9 +180,9 @@
   // A null value indicates that the suggested value should be hidden.
   void SetSuggestedValue(const String& value) override;
 
-  ScriptValue valueAsDate(ScriptState* script_state) const;
+  ScriptObject valueAsDate(ScriptState* script_state) const;
   void setValueAsDate(ScriptState* script_state,
-                      const ScriptValue& value,
+                      const ScriptObject& value,
                       ExceptionState& exception_state);
 
   double valueAsNumber() const;
diff --git a/third_party/blink/renderer/core/html/resources/customizable_select.css b/third_party/blink/renderer/core/html/resources/customizable_select.css
index 62ae0df..f7e958f8 100644
--- a/third_party/blink/renderer/core/html/resources/customizable_select.css
+++ b/third_party/blink/renderer/core/html/resources/customizable_select.css
@@ -61,7 +61,6 @@
 
 select:not(:-internal-list-box)::picker(select) {
   box-sizing: border-box;
-  overflow: auto;
   border: 1px solid;
   padding: 0;
   color: CanvasText;
@@ -70,24 +69,20 @@
   inset: auto;
   min-inline-size: anchor-size(self-inline);
   min-block-size: 1lh;
+  /* Go to the edge of the viewport, and add scrollbars if needed. */
+  max-block-size: -webkit-fill-available; /* Can be removed when stretch ships */
+  max-block-size: stretch;
+  overflow: auto;
   /* Below and span-right, by default. */
   position-area: block-end span-inline-end;
+  position-try-order: most-block-size;
   position-try-fallbacks:
     /* First try above and span-right. */
     block-start span-inline-end,
     /* Then below but span-left. */
     block-end span-inline-start,
     /* Then above and span-left. */
-    block-start span-inline-start,
-    /* Then just go back to below/right, and add a scrollbar. */
-    --internal-select-below-right-scrollable;
-}
-
-@position-try --internal-select-below-right-scrollable {
-    position-area: block-end span-inline-end;
-    height: 100%;
-    overflow: auto;
-    align-self: stretch;
+    block-start span-inline-start;
 }
 
 /* This rule is here to ensure that we can get a ComputedStyle for
diff --git a/third_party/blink/renderer/core/layout/out_of_flow_layout_part.cc b/third_party/blink/renderer/core/layout/out_of_flow_layout_part.cc
index 2ef5c6f..7641514 100644
--- a/third_party/blink/renderer/core/layout/out_of_flow_layout_part.cc
+++ b/third_party/blink/renderer/core/layout/out_of_flow_layout_part.cc
@@ -1923,16 +1923,12 @@
 namespace {
 
 // The spec says:
-//
-// "
-// Implementations may choose to impose an implementation-defined limit on the
+// "Implementations may choose to impose an implementation-defined limit on the
 // length of position fallbacks lists, to limit the amount of excess layout work
-// that may be required. This limit must be at least five.
-// "
-//
-// We use 6 here because the first attempt is without anything from the
-// position fallbacks list applied.
-constexpr unsigned kMaxTryAttempts = 6;
+// that may be required. This limit must be at least five."
+// The "+1" is because the first attempt is without anything from the position
+// fallbacks list applied.
+constexpr unsigned kMaxTryAttempts = 5 + 1;
 
 // When considering multiple candidate styles (i.e. position-try-fallbacks),
 // we keep track of each successful placement as a NonOverflowingCandidate.
diff --git a/third_party/blink/renderer/core/loader/resource/image_resource_test.cc b/third_party/blink/renderer/core/loader/resource/image_resource_test.cc
index dc925ae5..b2f33611 100644
--- a/third_party/blink/renderer/core/loader/resource/image_resource_test.cc
+++ b/third_party/blink/renderer/core/loader/resource/image_resource_test.cc
@@ -148,7 +148,8 @@
   EXPECT_EQ(
       Image::kSizeAvailable,
       image->SetData(SharedBuffer::Create(
-                         kJpegImage, kJpegImageSubrangeWithDimensionsLength),
+                         base::span(kJpegImage)
+                             .first(kJpegImageSubrangeWithDimensionsLength)),
                      true));
   EXPECT_TRUE(IsA<BitmapImage>(image.get()));
   EXPECT_EQ(1, image->width());
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 2cdb8b54..d67125d 100644
--- a/third_party/blink/renderer/core/messaging/blink_transferable_message.cc
+++ b/third_party/blink/renderer/core/messaging/blink_transferable_message.cc
@@ -140,7 +140,7 @@
     AcceleratedImageInfo image) {
   return AcceleratedStaticBitmapImage::CreateFromExternalSharedImage(
       image.shared_image, image.sync_token, image.image_info,
-      image.is_origin_top_left, image.supports_display_compositing,
-      image.is_overlay_candidate, std::move(image.release_callback));
+      image.supports_display_compositing, image.is_overlay_candidate,
+      std::move(image.release_callback));
 }
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/messaging/blink_transferable_message_mojom_traits.cc b/third_party/blink/renderer/core/messaging/blink_transferable_message_mojom_traits.cc
index 58aad44f..014fc06 100644
--- a/third_party/blink/renderer/core/messaging/blink_transferable_message_mojom_traits.cc
+++ b/third_party/blink/renderer/core/messaging/blink_transferable_message_mojom_traits.cc
@@ -55,7 +55,7 @@
       blink::mojom::blink::SerializedStaticBitmapImage::NewAcceleratedImage(
           blink::AcceleratedImageInfo{
               shared_image->Export(), cloned_image->GetSyncToken(),
-              cloned_image->GetSkImageInfo(), cloned_image->IsOriginTopLeft(),
+              cloned_image->GetSkImageInfo(),
               cloned_image->SupportsDisplayCompositing(),
               cloned_image->IsOverlayCandidate(),
               WTF::BindOnce(&blink::StaticBitmapImage::UpdateSyncToken,
diff --git a/third_party/blink/renderer/core/messaging/message_port.cc b/third_party/blink/renderer/core/messaging/message_port.cc
index 6e724ca..bc147143 100644
--- a/third_party/blink/renderer/core/messaging/message_port.cc
+++ b/third_party/blink/renderer/core/messaging/message_port.cc
@@ -81,7 +81,7 @@
 
 void MessagePort::postMessage(ScriptState* script_state,
                               const ScriptValue& message,
-                              HeapVector<ScriptValue> transfer,
+                              HeapVector<ScriptObject> transfer,
                               ExceptionState& exception_state) {
   PostMessageOptions* options = PostMessageOptions::Create();
   if (!transfer.empty())
diff --git a/third_party/blink/renderer/core/messaging/message_port.h b/third_party/blink/renderer/core/messaging/message_port.h
index da4a3ef..6b986f5 100644
--- a/third_party/blink/renderer/core/messaging/message_port.h
+++ b/third_party/blink/renderer/core/messaging/message_port.h
@@ -53,7 +53,9 @@
 class ExceptionState;
 class ExecutionContext;
 class PostMessageOptions;
+class ScriptObject;
 class ScriptState;
+class ScriptValue;
 
 class CORE_EXPORT MessagePort : public EventTarget,
                                 public mojo::MessageReceiver,
@@ -69,7 +71,7 @@
 
   void postMessage(ScriptState*,
                    const ScriptValue& message,
-                   HeapVector<ScriptValue> transfer,
+                   HeapVector<ScriptObject> transfer,
                    ExceptionState&);
   void postMessage(ScriptState*,
                    const ScriptValue& message,
diff --git a/third_party/blink/renderer/core/paint/timing/paint_timing.cc b/third_party/blink/renderer/core/paint/timing/paint_timing.cc
index ab9ffc9..0fb82617c 100644
--- a/third_party/blink/renderer/core/paint/timing/paint_timing.cc
+++ b/third_party/blink/renderer/core/paint/timing/paint_timing.cc
@@ -258,7 +258,9 @@
   // (RecordRenderingUpdateEndTime resets the |current frame timing info| inside
   // AnimationFrameTimingMonitor, so it reads a bit different from the spec).
   AnimationFrameTimingInfo* frame_timing_info =
-      widget->RecordRenderingUpdateEndTime(last_rendering_update_end_time_);
+      GetFrame()->IsLocalRoot() ? widget->RecordRenderingUpdateEndTime(
+                                      last_rendering_update_end_time_)
+                                : nullptr;
 
   if (paint_timing_record.paint_events.empty() && !frame_timing_info) {
     return;
diff --git a/third_party/blink/renderer/core/streams/transferable_streams.cc b/third_party/blink/renderer/core/streams/transferable_streams.cc
index 369f9758..b42d123b 100644
--- a/third_party/blink/renderer/core/streams/transferable_streams.cc
+++ b/third_party/blink/renderer/core/streams/transferable_streams.cc
@@ -124,8 +124,9 @@
     // Here we set a non-empty transfer list: This is a non-standardized and
     // non-default behavior, and the one who set `allow_per_chunk_transferring`
     // to true must guarantee the validity.
-    HeapVector<ScriptValue> transfer;
-    transfer.push_back(ScriptValue(isolate, value));
+    CHECK(value->IsObject());
+    HeapVector<ScriptObject> transfer;
+    transfer.push_back(ScriptObject(isolate, value.As<v8::Object>()));
     options->setTransfer(transfer);
   }
 
diff --git a/third_party/blink/renderer/core/style/computed_style_extra_fields.json5 b/third_party/blink/renderer/core/style/computed_style_extra_fields.json5
index 8821245d..0a4d34cf 100644
--- a/third_party/blink/renderer/core/style/computed_style_extra_fields.json5
+++ b/third_party/blink/renderer/core/style/computed_style_extra_fields.json5
@@ -468,7 +468,7 @@
       field_template: "primitive",
       include_paths: ["third_party/blink/renderer/platform/graphics/touch_action.h"],
       type_name: "TouchAction",
-      field_size: 8,
+      field_size: 9,
       default_value: "TouchAction::kAuto",
       field_group: "*",
     },
diff --git a/third_party/blink/renderer/core/svg/graphics/svg_image_test.cc b/third_party/blink/renderer/core/svg/graphics/svg_image_test.cc
index 6bb2179..9c8b386 100644
--- a/third_party/blink/renderer/core/svg/graphics/svg_image_test.cc
+++ b/third_party/blink/renderer/core/svg/graphics/svg_image_test.cc
@@ -44,10 +44,10 @@
  public:
   SVGImage& GetImage() { return *image_; }
 
-  void Load(const char* data, bool should_pause) {
+  void Load(base::span<const char> data, bool should_pause) {
     observer_ = MakeGarbageCollected<PauseControlImageObserver>(should_pause);
     image_ = SVGImage::Create(observer_);
-    image_->SetData(SharedBuffer::Create(data, strlen(data)), true);
+    image_->SetData(SharedBuffer::Create(data), true);
     test::RunPendingTasks();
   }
 
@@ -121,7 +121,7 @@
 
 TEST_F(SVGImageTest, TimelineSuspendAndResume) {
   const bool kShouldPause = true;
-  Load(kAnimatedDocument, kShouldPause);
+  Load(base::span_from_cstring(kAnimatedDocument), kShouldPause);
   SVGImageChromeClient& chrome_client = GetImage().ChromeClientForTesting();
   DisallowNewWrapper<HeapTaskRunnerTimer<SVGImageChromeClient>>* timer =
       MakeGarbageCollected<
@@ -151,7 +151,7 @@
 
 TEST_F(SVGImageTest, ResetAnimation) {
   const bool kShouldPause = false;
-  Load(kAnimatedDocument, kShouldPause);
+  Load(base::span_from_cstring(kAnimatedDocument), kShouldPause);
   SVGImageChromeClient& chrome_client = GetImage().ChromeClientForTesting();
   DisallowNewWrapper<HeapTaskRunnerTimer<SVGImageChromeClient>>* timer =
       MakeGarbageCollected<
@@ -186,7 +186,7 @@
 
 TEST_F(SVGImageTest, SupportsSubsequenceCaching) {
   const bool kShouldPause = true;
-  Load(kAnimatedDocument, kShouldPause);
+  Load(base::span_from_cstring(kAnimatedDocument), kShouldPause);
   PumpFrame();
   LocalFrame* local_frame =
       To<LocalFrame>(GetImage().GetPageForTesting()->MainFrame());
@@ -200,7 +200,9 @@
 
 TEST_F(SVGImageTest, LayoutShiftTrackerDisabled) {
   const bool kDontPause = false;
-  Load("<svg xmlns='http://www.w3.org/2000/svg'></svg>", kDontPause);
+  Load(
+      base::span_from_cstring("<svg xmlns='http://www.w3.org/2000/svg'></svg>"),
+      kDontPause);
   LocalFrame* local_frame =
       To<LocalFrame>(GetImage().GetPageForTesting()->MainFrame());
   EXPECT_TRUE(local_frame->GetDocument()->IsSVGDocument());
@@ -210,11 +212,11 @@
 
 TEST_F(SVGImageTest, SetSizeOnVisualViewport) {
   const bool kDontPause = false;
-  Load(
-      "<svg xmlns='http://www.w3.org/2000/svg'>"
-      "   <rect id='green' width='100%' height='100%' fill='green' />"
-      "</svg>",
-      kDontPause);
+  Load(base::span_from_cstring(
+           "<svg xmlns='http://www.w3.org/2000/svg'>"
+           "   <rect id='green' width='100%' height='100%' fill='green' />"
+           "</svg>"),
+       kDontPause);
   PumpFrame();
   LocalFrame* local_frame =
       To<LocalFrame>(GetImage().GetPageForTesting()->MainFrame());
@@ -225,19 +227,23 @@
 
 TEST_F(SVGImageTest, IsSizeAvailable) {
   const bool kShouldPause = false;
-  Load("<svg xmlns='http://www.w3.org/2000/svg'></svg>", kShouldPause);
+  Load(
+      base::span_from_cstring("<svg xmlns='http://www.w3.org/2000/svg'></svg>"),
+      kShouldPause);
   EXPECT_TRUE(GetImage().IsSizeAvailable());
 
-  Load("<notsvg></notsvg>", kShouldPause);
+  Load(base::span_from_cstring("<notsvg></notsvg>"), kShouldPause);
   EXPECT_FALSE(GetImage().IsSizeAvailable());
 
-  Load("<notsvg xmlns='http://www.w3.org/2000/svg'></notsvg>", kShouldPause);
+  Load(base::span_from_cstring(
+           "<notsvg xmlns='http://www.w3.org/2000/svg'></notsvg>"),
+       kShouldPause);
   EXPECT_FALSE(GetImage().IsSizeAvailable());
 }
 
 TEST_F(SVGImageTest, DisablesSMILEvents) {
   const bool kShouldPause = true;
-  Load(kAnimatedDocument, kShouldPause);
+  Load(base::span_from_cstring(kAnimatedDocument), kShouldPause);
   LocalFrame* local_frame =
       To<LocalFrame>(GetImage().GetPageForTesting()->MainFrame());
   EXPECT_TRUE(local_frame->GetDocument()->IsSVGDocument());
@@ -249,11 +255,11 @@
 
 TEST_F(SVGImageTest, PaintFrameForCurrentFrameWithMQAndZoom) {
   const bool kShouldPause = false;
-  Load(R"SVG(
+  Load(base::span_from_cstring(R"SVG(
          <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'>
            <style>@media(max-width:50px){rect{fill:blue}}</style>
            <rect width='10' height='10' fill='red'/>
-         </svg>)SVG",
+         </svg>)SVG"),
        kShouldPause);
 
   auto container =
@@ -271,13 +277,13 @@
 
 TEST_F(SVGImageTest, SVGWithSmilAnimationIsAnimated) {
   const bool kShouldPause = true;
-  Load(R"SVG(
+  Load(base::span_from_cstring(R"SVG(
          <svg xmlns="http://www.w3.org/2000/svg">
            <rect width="10" height="10"/>
            <animateTransform attributeName="transform" type="rotate"
                              from="0 5 5" to="360 5 5" dur="1s"
                              repeatCount="indefinite"/>
-         </svg>)SVG",
+         </svg>)SVG"),
        kShouldPause);
 
   EXPECT_TRUE(GetImage().MaybeAnimated());
@@ -285,7 +291,7 @@
 
 TEST_F(SVGImageTest, NestedSVGWithSmilAnimationIsAnimated) {
   const bool kShouldPause = true;
-  Load(R"SVG(
+  Load(base::span_from_cstring(R"SVG(
          <svg xmlns="http://www.w3.org/2000/svg">
            <svg>
              <rect width="10" height="10"/>
@@ -293,7 +299,7 @@
                                from="0 5 5" to="360 5 5" dur="1s"
                                repeatCount="indefinite"/>
            </svg>
-         </svg>)SVG",
+         </svg>)SVG"),
        kShouldPause);
 
   EXPECT_TRUE(GetImage().MaybeAnimated());
diff --git a/third_party/blink/renderer/core/timing/performance_navigation_timing.cc b/third_party/blink/renderer/core/timing/performance_navigation_timing.cc
index 1b7e1ac..45ba577 100644
--- a/third_party/blink/renderer/core/timing/performance_navigation_timing.cc
+++ b/third_party/blink/renderer/core/timing/performance_navigation_timing.cc
@@ -51,6 +51,9 @@
                                 window.CrossOriginIsolatedCapability(),
                                 &window),
       ExecutionContextClient(&window),
+      navigation_delivery_type_(
+          window.document()->Loader()->GetNavigationDeliveryType()),
+      navigation_type_(window.document()->Loader()->GetNavigationType()),
       document_timing_values_(
           window.document()->GetTiming().GetDocumentTimingValues()),
       document_load_timing_values_(window.document()
@@ -185,20 +188,11 @@
 }
 
 V8NavigationTimingType PerformanceNavigationTiming::type() const {
-  if (DomWindow()) {
-    return V8NavigationTimingType(
-        GetNavigationTimingType(GetDocumentLoader()->GetNavigationType()));
-  }
-  return V8NavigationTimingType(V8NavigationTimingType::Enum::kNavigate);
+  return V8NavigationTimingType(GetNavigationTimingType(navigation_type_));
 }
 
 AtomicString PerformanceNavigationTiming::deliveryType() const {
-  DocumentLoader* loader = GetDocumentLoader();
-  if (!loader) {
-    return GetDeliveryType();
-  }
-
-  switch (loader->GetNavigationDeliveryType()) {
+  switch (navigation_delivery_type_) {
     case NavigationDeliveryType::kDefault:
       return GetDeliveryType();
     case NavigationDeliveryType::kNavigationalPrefetch:
diff --git a/third_party/blink/renderer/core/timing/performance_navigation_timing.h b/third_party/blink/renderer/core/timing/performance_navigation_timing.h
index c2b248cd..e8a42ec 100644
--- a/third_party/blink/renderer/core/timing/performance_navigation_timing.h
+++ b/third_party/blink/renderer/core/timing/performance_navigation_timing.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_TIMING_PERFORMANCE_NAVIGATION_TIMING_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_TIMING_PERFORMANCE_NAVIGATION_TIMING_H_
 
+#include "services/network/public/mojom/url_response_head.mojom.h"
 #include "third_party/blink/public/mojom/back_forward_cache_not_restored_reasons.mojom-blink.h"
 #include "third_party/blink/public/mojom/timing/resource_timing.mojom-blink-forward.h"
 #include "third_party/blink/public/web/web_navigation_type.h"
@@ -85,6 +86,9 @@
   NotRestoredReasons* BuildNotRestoredReasons(
       const mojom::blink::BackForwardCacheNotRestoredReasonsPtr& reasons) const;
 
+  const network::mojom::NavigationDeliveryType navigation_delivery_type_;
+  const WebNavigationType navigation_type_;
+
   Member<DocumentTimingValues> document_timing_values_;
   Member<DocumentLoadTimingValues> document_load_timing_values_;
 };
diff --git a/third_party/blink/renderer/core/timing/window_performance.cc b/third_party/blink/renderer/core/timing/window_performance.cc
index 7b8d543..12b5648 100644
--- a/third_party/blink/renderer/core/timing/window_performance.cc
+++ b/third_party/blink/renderer/core/timing/window_performance.cc
@@ -666,7 +666,13 @@
         *DomWindow()->GetFrame(),
         WTF::BindOnce(&WindowPerformance::OnPresentationPromiseResolved,
                       WrapWeakPersistent(this),
-                      ++event_presentation_promise_count_));
+                      ++event_presentation_promise_count_,
+                      // TODO(crbug.com/378647854): Current implementation uses
+                      // source id from previous BeginMainFrame as an
+                      // approximate. And this can be further improved to the
+                      // current BeginMainFrame if we could defer presentation
+                      // promise registering to align with each BeginMainFrame.
+                      begin_main_frame_source_id_));
     need_new_promise_for_event_presentation_time_ = false;
   }
 
@@ -709,8 +715,14 @@
   }
 }
 
+// Important details:
+// 1. presentation_index and expected_frame_source_id are "captured" at the
+// time the presentation is requested, and might have changed by the time
+// presentation time arrives.
+// 2. presentation time might be "fake" when broken swap promise.
 void WindowPerformance::OnPresentationPromiseResolved(
     uint64_t presentation_index,
+    uint64_t expected_frame_source_id,
     const viz::FrameTimingDetails& presentation_details) {
   if (!DomWindow() || !DomWindow()->document()) {
     return;
@@ -730,12 +742,17 @@
     return;
   }
 
+  uint64_t actual_frame_source_id = presentation_details.frame_id.source_id;
+
+  // We assume the presentation is for the expected source unless it's proven to
+  // be wrong.
+  bool is_presentation_for_expected_source =
+      !expected_frame_source_id || !actual_frame_source_id ||
+      expected_frame_source_id == actual_frame_source_id;
+
   for (auto entry : event_timing_entries_) {
     if (entry->GetEventTimingReportingInfo()->presentation_index ==
         presentation_index) {
-      entry->GetEventTimingReportingInfo()->presentation_time =
-          presentation_details.presentation_feedback.timestamp;
-
       // If page visibility was changed, add a fallback_time to the entry's
       // processingEnd. Because we already flush events in
       // `ReportAllPendingEventTimingsOnPageHidden`, this should only happen if
@@ -752,9 +769,17 @@
               entry->GetEventTimingReportingInfo()->creation_time &&
           last_hidden_timestamp_ <
               entry->GetEventTimingReportingInfo()->presentation_time;
-      if (was_page_visibility_changed) {
+
+      if ((base::FeatureList::IsEnabled(
+               features::
+                   kEventTimingIgnorePresentationTimeFromUnexpectedFrameSource) &&
+           !is_presentation_for_expected_source) ||
+          was_page_visibility_changed) {
         entry->UpdateFallbackTime(
             entry->GetEventTimingReportingInfo()->processing_end_time);
+      } else {
+        entry->GetEventTimingReportingInfo()->presentation_time =
+            presentation_details.presentation_feedback.timestamp;
       }
 
       // A javascript synchronous modal dialog might show before the event frame
@@ -1423,6 +1448,13 @@
   need_new_promise_for_event_presentation_time_ = true;
 }
 
+void WindowPerformance::OnBeginMainFrame(viz::BeginFrameId frame_id) {
+  const uint64_t source_id = frame_id.source_id;
+  if (source_id) {
+    begin_main_frame_source_id_ = source_id;
+  }
+}
+
 void WindowPerformance::NotifyPotentialDrag(PointerId pointer_id) {
   responsiveness_metrics_->NotifyPotentialDrag(pointer_id);
 }
diff --git a/third_party/blink/renderer/core/timing/window_performance.h b/third_party/blink/renderer/core/timing/window_performance.h
index 018fbfa..19d97877 100644
--- a/third_party/blink/renderer/core/timing/window_performance.h
+++ b/third_party/blink/renderer/core/timing/window_performance.h
@@ -114,6 +114,7 @@
   void SetRenderStartTimeForPendingEvents(base::TimeTicks render_start_time);
 
   void OnPaintFinished();
+  void OnBeginMainFrame(viz::BeginFrameId frame_id);
 
   void AddElementTiming(const AtomicString& name,
                         const String& url,
@@ -199,6 +200,7 @@
 
   void OnPresentationPromiseResolved(
       uint64_t presentation_index,
+      uint64_t expected_frame_source_id,
       const viz::FrameTimingDetails& presentation_details);
   // Report buffered events with presentation time following their registered
   // order; stop as soon as seeing an event with pending presentation promise.
@@ -231,6 +233,10 @@
   // timestamps right before start showing each dialog.
   Deque<base::TimeTicks> show_modal_dialog_timestamps_;
 
+  // Frame source id from BeginMainFrame args. Event Timing compares it with
+  // frame source id from presentation feedback to identify GPU crashes.
+  // crbug.com/324877581
+  uint64_t begin_main_frame_source_id_ = 0;
   // Controls if we register a new presentation promise upon events arrival.
   bool need_new_promise_for_event_presentation_time_ = true;
   // Counts the total number of presentation promises we've registered for
diff --git a/third_party/blink/renderer/core/timing/window_performance_test.cc b/third_party/blink/renderer/core/timing/window_performance_test.cc
index d80ac0c..2da0b65 100644
--- a/third_party/blink/renderer/core/timing/window_performance_test.cc
+++ b/third_party/blink/renderer/core/timing/window_performance_test.cc
@@ -13,6 +13,7 @@
 
 #include "base/numerics/safe_conversions.h"
 #include "base/test/metrics/histogram_tester.h"
+#include "base/test/scoped_feature_list.h"
 #include "base/test/test_mock_time_task_runner.h"
 #include "base/test/trace_event_analyzer.h"
 #include "base/time/time.h"
@@ -66,9 +67,15 @@
 
 }  // namespace
 
-class WindowPerformanceTest : public testing::Test {
+class WindowPerformanceTest : public testing::Test,
+                              public ::testing::WithParamInterface<bool> {
  protected:
   void SetUp() override {
+    if (GetParam()) {
+      features_.InitAndEnableFeature(
+          blink::features::
+              kEventTimingIgnorePresentationTimeFromUnexpectedFrameSource);
+    }
     test_task_runner_ = base::MakeRefCounted<base::TestMockTimeTaskRunner>();
     ResetPerformance();
   }
@@ -88,23 +95,31 @@
     performance_->SetCommitFinishTimeStampForPendingEvents(commit_time);
   }
   void SimulateResolvePresentationPromise(uint64_t presentation_index,
-                                          base::TimeTicks timestamp) {
+                                          base::TimeTicks timestamp,
+                                          uint64_t expected_frame_source_id = 1,
+                                          uint64_t actual_frame_source_id = 1) {
     viz::FrameTimingDetails presentation_details;
+    presentation_details.frame_id.source_id = actual_frame_source_id;
     presentation_details.presentation_feedback.timestamp = timestamp;
-    performance_->OnPresentationPromiseResolved(presentation_index,
-                                                presentation_details);
+    performance_->OnPresentationPromiseResolved(
+        presentation_index, expected_frame_source_id, presentation_details);
   }
 
   // Only use this function if you don't care about the time difference between
   // paint & frame presented. Otherwise, use SimulatePaint() &
   // SimulateResolvePresentationPromise() separately instead and perform actions
   // in between as needed.
-  void SimulatePaintAndResolvePresentationPromise(base::TimeTicks timestamp) {
+  void SimulatePaintAndResolvePresentationPromise(
+      base::TimeTicks timestamp,
+      uint64_t expected_frame_source_id = 1,
+      uint64_t actual_frame_source_id = 1) {
     uint64_t presentation_promise_index =
         performance_->event_presentation_promise_count_;
     SimulatePaint();
     SimulateCommit(timestamp);
-    SimulateResolvePresentationPromise(presentation_promise_index, timestamp);
+    SimulateResolvePresentationPromise(presentation_promise_index, timestamp,
+                                       expected_frame_source_id,
+                                       actual_frame_source_id);
   }
 
   void SimulateInteractionId(PerformanceEventTiming* entry) {
@@ -218,9 +233,10 @@
   scoped_refptr<base::TestMockTimeTaskRunner> test_task_runner_;
   ScopedFakeUkmRecorder scoped_fake_ukm_recorder_;
   base::HistogramTester histogram_tester_;
+  base::test::ScopedFeatureList features_;
 };
 
-TEST_F(WindowPerformanceTest, SanitizedLongTaskName) {
+TEST_P(WindowPerformanceTest, SanitizedLongTaskName) {
   // Unable to attribute, when no execution contents are available.
   EXPECT_EQ("unknown", SanitizedAttribution(nullptr, false, GetFrame()));
 
@@ -232,7 +248,7 @@
             SanitizedAttribution(GetWindow(), true, GetFrame()));
 }
 
-TEST_F(WindowPerformanceTest, SanitizedLongTaskName_CrossOrigin) {
+TEST_P(WindowPerformanceTest, SanitizedLongTaskName_CrossOrigin) {
   // Create another dummy page holder and pretend it is an iframe.
   DummyPageHolder another_page(gfx::Size(400, 300));
   another_page.GetDocument().SetURL(KURL("https://iframed.com/bar"));
@@ -249,7 +265,7 @@
 // https://crbug.com/706798: Checks that after navigation that have replaced the
 // window object, calls to not garbage collected yet WindowPerformance belonging
 // to the old window do not cause a crash.
-TEST_F(WindowPerformanceTest, NavigateAway) {
+TEST_P(WindowPerformanceTest, NavigateAway) {
   AddLongTaskObserver();
 
   // Simulate navigation commit.
@@ -304,7 +320,7 @@
 
 // Make sure the output entries with the same timestamps follow the insertion
 // order. (http://crbug.com/767560)
-TEST_F(WindowPerformanceTest, EnsureEntryListOrder) {
+TEST_P(WindowPerformanceTest, EnsureEntryListOrder) {
   // Need to have an active V8 context for ScriptValues to operate.
   v8::HandleScope handle_scope(GetScriptState()->GetIsolate());
   v8::Local<v8::Context> context = GetScriptState()->GetContext();
@@ -337,7 +353,7 @@
   }
 }
 
-TEST_F(WindowPerformanceTest, EventTimingEntryBuffering) {
+TEST_P(WindowPerformanceTest, EventTimingEntryBuffering) {
   EXPECT_TRUE(page_holder_->GetFrame().Loader().GetDocumentLoader());
 
   base::TimeTicks start_time = GetTimeOrigin() + base::Seconds(1.1);
@@ -374,7 +390,7 @@
                     .size());
 }
 
-TEST_F(WindowPerformanceTest, Expose100MsEvents) {
+TEST_P(WindowPerformanceTest, Expose100MsEvents) {
   base::TimeTicks start_time = GetTimeOrigin() + base::Seconds(1);
   base::TimeTicks processing_start = start_time + base::Milliseconds(10);
   base::TimeTicks processing_end = processing_start + base::Milliseconds(10);
@@ -396,7 +412,7 @@
   EXPECT_EQ(event_type_names::kMousedown, entries.at(0)->name());
 }
 
-TEST_F(WindowPerformanceTest, EventTimingDuration) {
+TEST_P(WindowPerformanceTest, EventTimingDuration) {
   base::TimeTicks start_time = GetTimeOrigin() + base::Milliseconds(1000);
   base::TimeTicks processing_start = GetTimeOrigin() + base::Milliseconds(1001);
   base::TimeTicks processing_end = GetTimeOrigin() + base::Milliseconds(1002);
@@ -431,7 +447,7 @@
 
 // Test the case where multiple events are registered and then their
 // presentation promise is resolved.
-TEST_F(WindowPerformanceTest, MultipleEventsThenPresent) {
+TEST_P(WindowPerformanceTest, MultipleEventsThenPresent) {
   size_t num_events = 10;
   for (size_t i = 0; i < num_events; ++i) {
     base::TimeTicks start_time = GetTimeOrigin() + base::Seconds(i);
@@ -455,7 +471,7 @@
 
 // Test the case where commit finish timestamps are recorded on all pending
 // EventTimings.
-TEST_F(WindowPerformanceTest,
+TEST_P(WindowPerformanceTest,
        CommitFinishTimeRecordedOnAllPendingEventTimings) {
   size_t num_events = 3;
   for (size_t i = 0; i < num_events; ++i) {
@@ -487,7 +503,7 @@
 
 // Test the case where a new commit finish timestamps does not affect previous
 // EventTiming who has already seen a commit finish.
-TEST_F(WindowPerformanceTest, NewCommitNotOverwritePreviousEventTimings) {
+TEST_P(WindowPerformanceTest, NewCommitNotOverwritePreviousEventTimings) {
   base::TimeTicks start_time = GetTimeOrigin() + base::Seconds(1);
   base::TimeTicks processing_start = start_time + base::Milliseconds(100);
   base::TimeTicks processing_end = start_time + base::Milliseconds(200);
@@ -518,7 +534,7 @@
 }
 
 // Test for existence of 'first-input' given different types of first events.
-TEST_F(WindowPerformanceTest, FirstInput) {
+TEST_P(WindowPerformanceTest, FirstInput) {
   struct {
     AtomicString event_type;
     bool should_report;
@@ -552,7 +568,7 @@
 
 // Test that the 'first-input' is populated after some irrelevant events are
 // ignored.
-TEST_F(WindowPerformanceTest, FirstInputAfterIgnored) {
+TEST_P(WindowPerformanceTest, FirstInputAfterIgnored) {
   AtomicString several_events[] = {event_type_names::kMouseover,
                                    event_type_names::kMousedown,
                                    event_type_names::kPointerup};
@@ -573,7 +589,7 @@
 }
 
 // Test that pointerdown followed by pointerup works as a 'firstInput'.
-TEST_F(WindowPerformanceTest, FirstPointerUp) {
+TEST_P(WindowPerformanceTest, FirstPointerUp) {
   base::TimeTicks start_time = GetTimeStamp(0);
   base::TimeTicks processing_start = GetTimeStamp(1);
   base::TimeTicks processing_end = GetTimeStamp(2);
@@ -599,7 +615,7 @@
 
 // When the pointerdown is optimized out, the mousedown works as a
 // 'first-input'.
-TEST_F(WindowPerformanceTest, PointerdownOptimizedOut) {
+TEST_P(WindowPerformanceTest, PointerdownOptimizedOut) {
   base::TimeTicks start_time = GetTimeStamp(0);
   base::TimeTicks processing_start = GetTimeStamp(1);
   base::TimeTicks processing_end = GetTimeStamp(2);
@@ -619,7 +635,7 @@
 
 // Test that pointerdown followed by mousedown, pointerup works as a
 // 'first-input'.
-TEST_F(WindowPerformanceTest, PointerdownOnDesktop) {
+TEST_P(WindowPerformanceTest, PointerdownOnDesktop) {
   base::TimeTicks start_time = GetTimeStamp(0);
   base::TimeTicks processing_start = GetTimeStamp(1);
   base::TimeTicks processing_end = GetTimeStamp(2);
@@ -649,7 +665,7 @@
                     .size());
 }
 
-TEST_F(WindowPerformanceTest, OneKeyboardInteraction) {
+TEST_P(WindowPerformanceTest, OneKeyboardInteraction) {
   base::TimeTicks keydown_timestamp = GetTimeStamp(0);
   // Keydown
   base::TimeTicks processing_start_keydown = GetTimeStamp(1);
@@ -699,7 +715,7 @@
       "Blink.Responsiveness.UserInteraction.MaxEventDuration.Drag", 0);
 }
 
-TEST_F(WindowPerformanceTest, HoldingDownAKey) {
+TEST_P(WindowPerformanceTest, HoldingDownAKey) {
   auto entries = GetUkmRecorder()->GetEntriesByName(
       ukm::builders::Responsiveness_UserInteraction::kEntryName);
   EXPECT_EQ(0u, entries.size());
@@ -779,7 +795,7 @@
       "Blink.Responsiveness.UserInteraction.MaxEventDuration.Drag", 0);
 }
 
-TEST_F(WindowPerformanceTest, PressMultipleKeys) {
+TEST_P(WindowPerformanceTest, PressMultipleKeys) {
   auto entries = GetUkmRecorder()->GetEntriesByName(
       ukm::builders::Responsiveness_UserInteraction::kEntryName);
   EXPECT_EQ(0u, entries.size());
@@ -853,7 +869,7 @@
 // Test a real world scenario, where keydown got presented first but its
 // callback got invoked later than keyup's due to multi processes & threading
 // overhead.
-TEST_F(WindowPerformanceTest, KeyupFinishLastButCallbackInvokedFirst) {
+TEST_P(WindowPerformanceTest, KeyupFinishLastButCallbackInvokedFirst) {
   // Arbitrary keycode picked for testing from
   // https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode#value_of_keycode
   int digit_1_key_code = 0x31;
@@ -914,7 +930,7 @@
       "Blink.Responsiveness.UserInteraction.MaxEventDuration.Drag", 0);
 }
 
-TEST_F(WindowPerformanceTest, TapOrClick) {
+TEST_P(WindowPerformanceTest, TapOrClick) {
   // Pointerdown
   base::TimeTicks pointerdown_timestamp = GetTimeOrigin();
   base::TimeTicks processing_start_pointerdown = GetTimeStamp(1);
@@ -974,7 +990,7 @@
       "Blink.Responsiveness.UserInteraction.MaxEventDuration.Drag", 0);
 }
 
-TEST_F(WindowPerformanceTest, PageVisibilityChanged) {
+TEST_P(WindowPerformanceTest, PageVisibilityChanged) {
   // Pointerdown
   base::TimeTicks pointerdown_timestamp = GetTimeOrigin();
   base::TimeTicks processing_start_pointerdown = GetTimeStamp(1);
@@ -1039,7 +1055,81 @@
   EXPECT_EQ(1ul, performance_->interactionCount());
 }
 
-TEST_F(WindowPerformanceTest, Drag) {
+TEST_P(WindowPerformanceTest, GPUCrashedAndFrameSourceIdChanged) {
+  // This test only pass with the experiment feature
+  base::test::ScopedFeatureList features_;
+  features_.InitAndEnableFeature(
+      blink::features::
+          kEventTimingIgnorePresentationTimeFromUnexpectedFrameSource);
+
+  // Pointerdown
+  base::TimeTicks pointerdown_timestamp = GetTimeOrigin();
+  base::TimeTicks processing_start_pointerdown = GetTimeStamp(1);
+  base::TimeTicks processing_end_pointerdown = GetTimeStamp(2);
+  base::TimeTicks presentation_time_pointerdown = GetTimeStamp(5);
+  PointerId pointer_id = 4;
+  // Arbitrary valid id picked for testing
+  uint64_t expected_frame_source_id = 4294967300;
+  uint64_t actual_frame_source_id = expected_frame_source_id;
+  RegisterPointerEvent(event_type_names::kPointerdown, pointerdown_timestamp,
+                       processing_start_pointerdown, processing_end_pointerdown,
+                       pointer_id);
+  SimulatePaintAndResolvePresentationPromise(presentation_time_pointerdown,
+                                             expected_frame_source_id,
+                                             actual_frame_source_id);
+
+  // Pointerup
+  base::TimeTicks pointerup_timestamp = GetTimeStamp(3);
+  base::TimeTicks processing_start_pointerup = GetTimeStamp(5);
+  base::TimeTicks processing_end_pointerup = GetTimeStamp(6);
+  RegisterPointerEvent(event_type_names::kPointerup, pointerup_timestamp,
+                       processing_start_pointerup, processing_end_pointerup,
+                       pointer_id);
+  // Click
+  base::TimeTicks click_timestamp = GetTimeStamp(13);
+  base::TimeTicks processing_start_click = GetTimeStamp(15);
+  base::TimeTicks processing_end_click = GetTimeStamp(16);
+  base::TimeTicks presentation_time_pointerup_and_click = GetTimeStamp(200);
+  RegisterPointerEvent(event_type_names::kClick, click_timestamp,
+                       processing_start_click, processing_end_click,
+                       pointer_id);
+
+  actual_frame_source_id = expected_frame_source_id + 1;
+  SimulatePaintAndResolvePresentationPromise(
+      presentation_time_pointerup_and_click, expected_frame_source_id,
+      actual_frame_source_id);
+
+  // Flush UKM logging mojo request.
+  RunPendingTasks();
+
+  // Check UKM recording.
+  auto entries = GetUkmRecorder()->GetEntriesByName(
+      ukm::builders::Responsiveness_UserInteraction::kEntryName);
+  EXPECT_EQ(1u, entries.size());
+  const ukm::mojom::UkmEntry* ukm_entry = entries[0];
+  // The event duration of pointerdown is 5ms, all the way to presentation.
+  // The event duration of pointerup is processingEnd 6 - event
+  // creation time 3 = 3.
+  // The event duration of click is also processingEnd 16 - 13 = 3.
+  // So the max duration should be 5 ms.
+  GetUkmRecorder()->ExpectEntryMetric(
+      ukm_entry,
+      ukm::builders::Responsiveness_UserInteraction::kMaxEventDurationName, 5);
+  // The total duration should be 9ms, which is the sum of time from time 0 of
+  // pointer down creation time to the processingEnd of pointer up 6ms +
+  // duration of click which is 16-13 = 3ms.
+  GetUkmRecorder()->ExpectEntryMetric(
+      ukm_entry,
+      ukm::builders::Responsiveness_UserInteraction::kTotalEventDurationName,
+      9);
+  GetUkmRecorder()->ExpectEntryMetric(
+      ukm_entry,
+      ukm::builders::Responsiveness_UserInteraction::kInteractionTypeName, 1);
+
+  EXPECT_EQ(1ul, performance_->interactionCount());
+}
+
+TEST_P(WindowPerformanceTest, Drag) {
   // Pointerdown
   base::TimeTicks pointerdwon_timestamp = GetTimeOrigin();
   base::TimeTicks processing_start_pointerdown = GetTimeStamp(1);
@@ -1101,7 +1191,7 @@
       "Blink.Responsiveness.UserInteraction.MaxEventDuration.Drag", 1);
 }
 
-TEST_F(WindowPerformanceTest, Scroll) {
+TEST_P(WindowPerformanceTest, Scroll) {
   // Pointerdown
   base::TimeTicks pointerdown_timestamp = GetTimeOrigin();
   base::TimeTicks processing_start_keydown = GetTimeStamp(1);
@@ -1141,7 +1231,7 @@
       "Blink.Responsiveness.UserInteraction.MaxEventDuration.Drag", 0);
 }
 
-TEST_F(WindowPerformanceTest, TouchesWithoutClick) {
+TEST_P(WindowPerformanceTest, TouchesWithoutClick) {
   base::TimeTicks pointerdown_timestamp = GetTimeOrigin();
   // First Pointerdown
   base::TimeTicks processing_start_pointerdown = GetTimeStamp(1);
@@ -1176,7 +1266,7 @@
 //  Test artificial pointerup and click on MacOS fall back to use processingEnd
 //  as event duration ending time.
 //  See crbug.com/1321819
-TEST_F(WindowPerformanceTest, ArtificialPointerupOrClick) {
+TEST_P(WindowPerformanceTest, ArtificialPointerupOrClick) {
   // Arbitrary pointerId picked for testing
   PointerId pointer_id = 4;
 
@@ -1241,7 +1331,7 @@
 
 // The trace_analyzer does not work on platforms on which the migration of
 // tracing into Perfetto has not completed.
-TEST_F(WindowPerformanceTest, PerformanceMarkTraceEvent) {
+TEST_P(WindowPerformanceTest, PerformanceMarkTraceEvent) {
   v8::HandleScope handle_scope(GetScriptState()->GetIsolate());
   v8::Local<v8::Context> context = GetScriptState()->GetContext();
   v8::Context::Scope context_scope(context);
@@ -1276,7 +1366,7 @@
   ASSERT_TRUE(navigation_id);
 }
 
-TEST_F(WindowPerformanceTest, ElementTimingTraceEvent) {
+TEST_P(WindowPerformanceTest, ElementTimingTraceEvent) {
   using trace_analyzer::Query;
   trace_analyzer::Start("*");
   // |element| needs to be non-null to prevent a crash.
@@ -1317,7 +1407,7 @@
   EXPECT_EQ(*url, "url");
 }
 
-TEST_F(WindowPerformanceTest, EventTimingTraceEvents) {
+TEST_P(WindowPerformanceTest, EventTimingTraceEvents) {
   using trace_analyzer::Query;
   trace_analyzer::Start("*");
   base::TimeTicks start_time = GetTimeOrigin() + base::Seconds(1);
@@ -1416,7 +1506,7 @@
   EXPECT_FALSE(click_begin->other_event->HasDictArg("data"));
 }
 
-TEST_F(WindowPerformanceTest, SlowInteractionToNextPaintTraceEvents) {
+TEST_P(WindowPerformanceTest, SlowInteractionToNextPaintTraceEvents) {
   using trace_analyzer::Query;
   trace_analyzer::Start("*");
 
@@ -1534,7 +1624,7 @@
   EXPECT_EQ(base::ClampRound(events[2]->GetAbsTimeToOtherEvent()), 600000);
 }
 
-TEST_F(WindowPerformanceTest, InteractionID) {
+TEST_P(WindowPerformanceTest, InteractionID) {
   // Keyboard with max duration 25, total duration 40.
   PerformanceEventTiming* keydown_entry =
       CreatePerformanceEventTiming(event_type_names::kKeydown, 1, std::nullopt,
@@ -1624,6 +1714,8 @@
   }
 }
 
+INSTANTIATE_TEST_SUITE_P(All, WindowPerformanceTest, ::testing::Bool());
+
 class InteractionIdTest : public WindowPerformanceTest {
  public:
   struct EventForInteraction {
@@ -1697,7 +1789,7 @@
 };
 
 // Tests English typing.
-TEST_F(InteractionIdTest, InputOutsideComposition) {
+TEST_P(InteractionIdTest, InputOutsideComposition) {
   // Insert "a" with a max duration of 50 and total of 50.
   std::vector<EventForInteraction> events1 = {
       {event_type_names::kKeydown, 65, std::nullopt, GetTimeStamp(100),
@@ -1749,7 +1841,7 @@
 }
 
 // Tests Japanese on Mac.
-TEST_F(InteractionIdTest, CompositionSingleKeydown) {
+TEST_P(InteractionIdTest, CompositionSingleKeydown) {
   // Insert "a" with a duration of 20.
   std::vector<EventForInteraction> events1 = {
       {event_type_names::kKeydown, 229, std::nullopt, GetTimeStamp(100),
@@ -1798,7 +1890,7 @@
 
 // Tests Chinese on Mac. Windows is similar, but has more keyups inside the
 // composition.
-TEST_F(InteractionIdTest, CompositionToFinalInput) {
+TEST_P(InteractionIdTest, CompositionToFinalInput) {
   // Insert "a" with a duration of 25.
   std::vector<EventForInteraction> events1 = {
       {event_type_names::kKeydown, 229, std::nullopt, GetTimeStamp(100),
@@ -1848,7 +1940,7 @@
 }
 
 // Tests Chinese on Windows.
-TEST_F(InteractionIdTest, CompositionToFinalInputMultipleKeyUps) {
+TEST_P(InteractionIdTest, CompositionToFinalInputMultipleKeyUps) {
   // Insert "a" with a duration of 66.
   std::vector<EventForInteraction> events1 = {
       {event_type_names::kKeydown, 229, std::nullopt, GetTimeStamp(0),
@@ -1906,7 +1998,7 @@
 }
 
 // Tests Android smart suggestions (similar to Android Chinese).
-TEST_F(InteractionIdTest, SmartSuggestion) {
+TEST_P(InteractionIdTest, SmartSuggestion) {
   // Insert "A" with a duration of 9.
   std::vector<EventForInteraction> events1 = {
       {event_type_names::kKeydown, 229, std::nullopt, GetTimeStamp(0),
@@ -1955,7 +2047,7 @@
                   {43, 70, UserInteractionType::kKeyboard}});
 }
 
-TEST_F(InteractionIdTest, TapWithoutClick) {
+TEST_P(InteractionIdTest, TapWithoutClick) {
   std::vector<EventForInteraction> events = {
       {event_type_names::kPointerdown, std::nullopt, 1, GetTimeStamp(100),
        GetTimeStamp(140)},
@@ -1976,7 +2068,7 @@
   CheckUKMValues({{40, 50, UserInteractionType::kTapOrClick}});
 }
 
-TEST_F(InteractionIdTest, PointerupClick) {
+TEST_P(InteractionIdTest, PointerupClick) {
   std::vector<EventForInteraction> events = {
       {event_type_names::kPointerup, std::nullopt, 1, GetTimeStamp(100),
        GetTimeStamp(140)},
@@ -1990,7 +2082,7 @@
   CheckUKMValues({{30, 30, UserInteractionType::kTapOrClick}});
 }
 
-TEST_F(InteractionIdTest, JustClick) {
+TEST_P(InteractionIdTest, JustClick) {
   // Hitting enter on a keyboard may cause just a trusted click event.
   std::vector<EventForInteraction> events = {
       {event_type_names::kClick, std::nullopt, 0, GetTimeStamp(120),
@@ -2002,7 +2094,7 @@
   CheckUKMValues({{30, 30, UserInteractionType::kTapOrClick}});
 }
 
-TEST_F(InteractionIdTest, PointerdownClick) {
+TEST_P(InteractionIdTest, PointerdownClick) {
   // Contextmenus may cause us to only see pointerdown and click (no pointerup).
   std::vector<EventForInteraction> events = {
       {event_type_names::kPointerdown, std::nullopt, 1, GetTimeStamp(100),
@@ -2017,7 +2109,7 @@
   CheckUKMValues({{40, 50, UserInteractionType::kTapOrClick}});
 }
 
-TEST_F(InteractionIdTest, MultiTouch) {
+TEST_P(InteractionIdTest, MultiTouch) {
   // In multitouch, we report an interaction per pointerId. We do not see
   // clicks.
   std::vector<EventForInteraction> events = {
@@ -2042,7 +2134,7 @@
                   {50, 60, UserInteractionType::kTapOrClick}});
 }
 
-TEST_F(InteractionIdTest, ClickIncorrectPointerId) {
+TEST_P(InteractionIdTest, ClickIncorrectPointerId) {
   // On mobile, in cases where touchstart is skipped, click does not get the
   // correct pointerId. See crbug.com/1264930 for more details.
   // TODO crbug.com/359679950: remove this test and event timing workaround
@@ -2060,4 +2152,5 @@
   CheckUKMValues({{40, 40, UserInteractionType::kTapOrClick}});
 }
 
+INSTANTIATE_TEST_SUITE_P(All, InteractionIdTest, ::testing::Bool());
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third_party/blink/renderer/core/workers/dedicated_worker.cc
index 5d8499b..d445d9d 100644
--- a/third_party/blink/renderer/core/workers/dedicated_worker.cc
+++ b/third_party/blink/renderer/core/workers/dedicated_worker.cc
@@ -143,7 +143,7 @@
 
 void DedicatedWorker::postMessage(ScriptState* script_state,
                                   const ScriptValue& message,
-                                  HeapVector<ScriptValue> transfer,
+                                  HeapVector<ScriptObject> transfer,
                                   ExceptionState& exception_state) {
   PostMessageOptions* options = PostMessageOptions::Create();
   if (!transfer.empty())
@@ -205,7 +205,7 @@
         event_factory_callback,
     CrossThreadFunction<Event*(ScriptState*)> event_factory_error_callback,
     const ScriptValue& message,
-    HeapVector<ScriptValue> transfer,
+    HeapVector<ScriptObject> transfer,
     ExceptionState& exception_state) {
   CHECK(!GetExecutionContext() || GetExecutionContext()->IsContextThread());
   if (!GetExecutionContext()) {
diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.h b/third_party/blink/renderer/core/workers/dedicated_worker.h
index c7bf11277..2accb21d 100644
--- a/third_party/blink/renderer/core/workers/dedicated_worker.h
+++ b/third_party/blink/renderer/core/workers/dedicated_worker.h
@@ -86,7 +86,7 @@
 
   void postMessage(ScriptState*,
                    const ScriptValue& message,
-                   HeapVector<ScriptValue> transfer,
+                   HeapVector<ScriptObject> transfer,
                    ExceptionState&);
   void postMessage(ScriptState*,
                    const ScriptValue& message,
@@ -100,7 +100,7 @@
           event_factory_callback,
       CrossThreadFunction<Event*(ScriptState*)> event_factory_error_callback,
       const ScriptValue& message,
-      HeapVector<ScriptValue> transfer,
+      HeapVector<ScriptObject> transfer,
       ExceptionState&);
 
   void terminate();
diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc
index 51967cee..f4c5a07 100644
--- a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc
+++ b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc
@@ -400,7 +400,7 @@
 
 void DedicatedWorkerGlobalScope::postMessage(ScriptState* script_state,
                                              const ScriptValue& message,
-                                             HeapVector<ScriptValue> transfer,
+                                             HeapVector<ScriptObject> transfer,
                                              ExceptionState& exception_state) {
   PostMessageOptions* options = PostMessageOptions::Create();
   if (!transfer.empty())
diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.h b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.h
index a25478e..2ecf753b 100644
--- a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.h
+++ b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.h
@@ -150,7 +150,7 @@
   const String name() const;
   void postMessage(ScriptState*,
                    const ScriptValue& message,
-                   HeapVector<ScriptValue> transfer,
+                   HeapVector<ScriptObject> transfer,
                    ExceptionState&);
   void postMessage(ScriptState*,
                    const ScriptValue& message,
diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_test.cc b/third_party/blink/renderer/core/workers/dedicated_worker_test.cc
index e229c398..589d69a 100644
--- a/third_party/blink/renderer/core/workers/dedicated_worker_test.cc
+++ b/third_party/blink/renderer/core/workers/dedicated_worker_test.cc
@@ -774,7 +774,7 @@
   WaitUntilWorkerIsRunning();
 
   base::RunLoop run_loop;
-  HeapVector<ScriptValue> transfer;
+  HeapVector<ScriptObject> transfer;
   CustomEventWithData* event = nullptr;
   String data = "postEventWithDataTesting";
   WorkerObject()->PostCustomEvent(
@@ -804,7 +804,7 @@
   WaitUntilWorkerIsRunning();
 
   base::RunLoop run_loop;
-  HeapVector<ScriptValue> transfer;
+  HeapVector<ScriptObject> transfer;
   CustomEventWithData* event = nullptr;
   const double kNumber = 2.34;
   v8::Local<v8::Value> v8_number =
@@ -837,7 +837,7 @@
   ScriptState* script_state = v8_scope.GetScriptState();
 
   base::RunLoop run_loop;
-  HeapVector<ScriptValue> transfer;
+  HeapVector<ScriptObject> transfer;
   CustomEventWithData* event = nullptr;
   String data = "postEventWithDataTesting";
   WorkerObject()->PostCustomEvent(
@@ -872,16 +872,16 @@
 
   MessageChannel* channel =
       MakeGarbageCollected<MessageChannel>(v8_scope.GetExecutionContext());
-  ScriptValue script_value =
-      ScriptValue::From(v8_scope.GetScriptState(), channel->port1());
-  HeapVector<ScriptValue> transfer = {script_value};
+  ScriptObject script_object =
+      ScriptObject::From(v8_scope.GetScriptState(), channel->port1());
+  HeapVector<ScriptObject> transfer = {script_object};
   CustomEventWithData* event = nullptr;
   base::RunLoop run_loop;
 
   WorkerObject()->PostCustomEvent(
       TaskType::kPostedMessage, script_state,
       CustomEventWithPortsFactoryCallback(run_loop.QuitClosure(), &event),
-      CustomEventFactoryErrorCallback(run_loop.QuitClosure()), script_value,
+      CustomEventFactoryErrorCallback(run_loop.QuitClosure()), script_object,
       transfer, v8_scope.GetExceptionState());
   run_loop.Run();
 
@@ -909,7 +909,7 @@
             return false;
           }));
   base::RunLoop run_loop;
-  HeapVector<ScriptValue> transfer;
+  HeapVector<ScriptObject> transfer;
   String data = "postEventWithDataTesting";
   Event* event = nullptr;
   WorkerObject()->PostCustomEvent(
@@ -931,7 +931,7 @@
   WaitUntilWorkerIsRunning();
 
   base::RunLoop run_loop;
-  HeapVector<ScriptValue> transfer;
+  HeapVector<ScriptObject> transfer;
   CustomEventWithData* event = nullptr;
 
   WorkerObject()->PostCustomEvent(
diff --git a/third_party/blink/renderer/core/xml/parser/xml_document_parser.cc b/third_party/blink/renderer/core/xml/parser/xml_document_parser.cc
index 0a8f392..8dcc526 100644
--- a/third_party/blink/renderer/core/xml/parser/xml_document_parser.cc
+++ b/third_party/blink/renderer/core/xml/parser/xml_document_parser.cc
@@ -214,22 +214,15 @@
 class PendingCharactersCallback final
     : public XMLDocumentParser::PendingCallback {
  public:
-  PendingCharactersCallback(const xmlChar* chars,
-                            int length,
+  PendingCharactersCallback(base::span<const xmlChar> chars,
                             TextPosition text_position)
       : PendingCallback(text_position),
-        chars_(xmlStrndup(chars, length)),
-        length_(length) {}
+        chars_(base::HeapArray<xmlChar>::CopiedFrom(chars)) {}
 
-  ~PendingCharactersCallback() override { xmlFree(chars_); }
-
-  void Call(XMLDocumentParser* parser) override {
-    parser->Characters(chars_, length_);
-  }
+  void Call(XMLDocumentParser* parser) override { parser->Characters(chars_); }
 
  private:
-  xmlChar* chars_;
-  int length_;
+  base::HeapArray<xmlChar> chars_;
 };
 
 class PendingProcessingInstructionCallback final
@@ -1200,18 +1193,18 @@
   script_start_position_ = text_position;
 }
 
-void XMLDocumentParser::Characters(const xmlChar* chars, int length) {
+void XMLDocumentParser::Characters(base::span<const xmlChar> chars) {
   if (IsStopped())
     return;
 
   if (parser_paused_) {
-    pending_callbacks_.push_back(std::make_unique<PendingCharactersCallback>(
-        chars, length, GetTextPosition()));
+    pending_callbacks_.push_back(
+        std::make_unique<PendingCharactersCallback>(chars, GetTextPosition()));
     return;
   }
 
   CreateLeafTextNodeIfNeeded();
-  buffered_text_.AppendSpan(base::span(chars, static_cast<size_t>(length)));
+  buffered_text_.AppendSpan(chars);
 }
 
 void XMLDocumentParser::GetError(XMLErrors::ErrorType type,
@@ -1418,7 +1411,10 @@
 }
 
 static void CharactersHandler(void* closure, const xmlChar* chars, int length) {
-  GetParser(closure)->Characters(chars, length);
+  // SAFETY: libxml provides `chars` that point at `length` xmlChars.
+  auto chars_span =
+      UNSAFE_BUFFERS(base::span(chars, base::checked_cast<size_t>(length)));
+  GetParser(closure)->Characters(chars_span);
 }
 
 static void ProcessingInstructionHandler(void* closure,
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 a3807795..2c41feb 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
@@ -163,7 +163,7 @@
                       int defaulted_count,
                       const xmlChar** libxml_attributes);
   void EndElementNs();
-  void Characters(const xmlChar* chars, int length);
+  void Characters(base::span<const xmlChar> chars);
   void GetProcessingInstruction(const String& target, const String& data);
   void CdataBlock(const String&);
   void Comment(const String&);
diff --git a/third_party/blink/renderer/modules/accessibility/ax_relation_cache.cc b/third_party/blink/renderer/modules/accessibility/ax_relation_cache.cc
index 6c93e2a..0c0fb17 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_relation_cache.cc
+++ b/third_party/blink/renderer/modules/accessibility/ax_relation_cache.cc
@@ -1183,56 +1183,53 @@
 void AXRelationCache::UpdateRelatedText(Node* node) {
   // Shortcut: used cached value to determine whether this node contributes to
   // a name or description. Return early if not.
-  if (AXObject* obj = Get(node)) {
-    if (!obj->IsUsedForLabelOrDescription()) {
-      // Nothing to do, as this node is not part of a label or description.
-      return;
-    }
+  AXObject* obj = Get(node);
+  if (!obj) {
+    // It's expected that any node will have an object at this point.
+    NOTREACHED(base::NotFatalUntil::M140);
+    return;
+  }
+  if (!obj->IsUsedForLabelOrDescription()) {
+    // Nothing to do, as this node is not part of a label or description.
+    return;
   }
 
   // Walk up ancestor chain from node and refresh text of any related content.
-  // TODO(crbug.com/1109265): It's very likely this loop should only walk the
-  // unignored AXObject chain, but doing so breaks a number of tests related to
-  // name or description computation / invalidation.
-  int count = 0;
-  constexpr int kMaxAncestorsForNameChangeCheck = 8;
-  for (Node* current_node = node;
-       ++count < kMaxAncestorsForNameChangeCheck && current_node &&
-       !IsA<HTMLBodyElement>(current_node);
-       current_node = current_node->parentNode()) {
-    if (Element* element = DynamicTo<Element>(current_node)) {
-      // Reverse relations via aria-labelledby, aria-describedby, aria-owns.
-      HeapVector<Member<AXObject>> related_sources;
-      GetRelationSourcesById(element->GetIdAttribute(),
-                             aria_text_relations_id_map_, related_sources);
-      GetRelationSourcesByElementReference(element->GetDomNodeId(),
-                                           aria_text_relations_node_map_,
-                                           related_sources);
-      for (AXObject* related : related_sources) {
-        if (related && related->IsIncludedInTree() &&
-            !related->NeedsToUpdateChildren()) {
-          object_cache_->MarkAXObjectDirtyWithCleanLayout(related);
-        }
+  while ((obj = obj->ParentObjectIncludedInTree()) != nullptr) {
+    Element* ancestor_element = obj->GetElement();
+    if (!ancestor_element) {
+      // Can occur in the CSS column case.
+      continue;
+    }
+    // Reverse relations via aria-labelledby, aria-describedby, aria-owns.
+    HeapVector<Member<AXObject>> related_sources;
+    GetRelationSourcesById(ancestor_element->GetIdAttribute(),
+                           aria_text_relations_id_map_, related_sources);
+    GetRelationSourcesByElementReference(ancestor_element->GetDomNodeId(),
+                                         aria_text_relations_node_map_,
+                                         related_sources);
+    for (AXObject* related : related_sources) {
+      if (related && related->IsIncludedInTree() &&
+          !related->NeedsToUpdateChildren()) {
+        object_cache_->MarkAXObjectDirtyWithCleanLayout(related);
       }
     }
 
     // Ancestors that may derive their accessible name from descendant content
     // should also handle text changed events when descendant content changes.
-    if (current_node != node) {
-      AXObject* obj = Get(current_node);
+    if (ancestor_element != node) {
       if (obj &&
           (!obj->IsIgnored() || obj->CanSetFocusAttribute()) &&
           obj->SupportsNameFromContents(/*recursive=*/false) &&
           !obj->NeedsToUpdateChildren()) {
         object_cache_->MarkAXObjectDirtyWithCleanLayout(obj);
-        break;  // Unlikely/unusual to need multiple name/description changes.
       }
     }
 
     // Forward relation via <label for="[id]">.
-    if (HTMLLabelElement* label = DynamicTo<HTMLLabelElement>(current_node)) {
+    if (HTMLLabelElement* label =
+            DynamicTo<HTMLLabelElement>(ancestor_element)) {
       object_cache_->MarkElementDirtyWithCleanLayout(LabelChanged(*label));
-      break;  // Unlikely/unusual to need multiple name/description changes.
     }
   }
 }
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
index d21a92dd..7e4e6e7 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
@@ -58,6 +58,7 @@
 #include "third_party/blink/public/mojom/frame/color_scheme.mojom-blink.h"
 #include "third_party/blink/renderer/bindings/core/v8/idl_types.h"
 #include "third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h"
+#include "third_party/blink/renderer/bindings/core/v8/v8_text_cluster_options.h"
 #include "third_party/blink/renderer/bindings/core/v8/v8_union_object_objectarray_string.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_begin_layer_options.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_canvas_2d_gpu_transfer_option.h"
@@ -3182,11 +3183,6 @@
   return GetState().GetTextRendering();
 }
 
-float BaseRenderingContext2D::GetFontBaseline(
-    const SimpleFontData& font_data) const {
-  return TextMetrics::GetFontBaseline(GetState().GetTextBaseline(), font_data);
-}
-
 String BaseRenderingContext2D::textAlign() const {
   return TextAlignName(GetState().GetTextAlign());
 }
@@ -3450,37 +3446,75 @@
 }
 
 void BaseRenderingContext2D::fillText(const String& text, double x, double y) {
-  DrawTextInternal(text, x, y, CanvasRenderingContext2DState::kFillPaintType);
+  CanvasRenderingContext2DState& state = GetState();
+  DrawTextInternal(text, x, y, CanvasRenderingContext2DState::kFillPaintType,
+                   state.GetTextAlign(), state.GetTextBaseline(), 0,
+                   text.length());
 }
 
 void BaseRenderingContext2D::fillText(const String& text,
                                       double x,
                                       double y,
                                       double max_width) {
+  CanvasRenderingContext2DState& state = GetState();
   DrawTextInternal(text, x, y, CanvasRenderingContext2DState::kFillPaintType,
-                   &max_width);
+                   state.GetTextAlign(), state.GetTextBaseline(), 0,
+                   text.length(), &max_width);
 }
 
 void BaseRenderingContext2D::fillTextCluster(const TextCluster* text_cluster,
                                              double x,
                                              double y) {
-  DrawTextInternal(
-      text_cluster->text(), text_cluster->x() + x, text_cluster->y() + y,
-      CanvasRenderingContext2DState::kFillPaintType, nullptr, text_cluster);
+  fillTextCluster(text_cluster, x, y, /*cluster_options=*/nullptr);
+}
+
+void BaseRenderingContext2D::fillTextCluster(
+    const TextCluster* text_cluster,
+    double x,
+    double y,
+    const TextClusterOptions* cluster_options) {
+  DCHECK(text_cluster);
+  TextAlign align = text_cluster->GetTextAlign();
+  TextBaseline baseline = text_cluster->GetTextBaseline();
+  double cluster_x = text_cluster->x();
+  double cluster_y = text_cluster->y();
+  if (cluster_options != nullptr) {
+    if (cluster_options->hasX()) {
+      cluster_x = cluster_options->x();
+    }
+    if (cluster_options->hasY()) {
+      cluster_y = cluster_options->y();
+    }
+    if (cluster_options->hasAlign()) {
+      ParseTextAlign(cluster_options->align(), align);
+    }
+    if (cluster_options->hasBaseline()) {
+      ParseTextBaseline(cluster_options->baseline(), baseline);
+    }
+  }
+  DrawTextInternal(text_cluster->text(), cluster_x + x, cluster_y + y,
+                   CanvasRenderingContext2DState::kFillPaintType, align,
+                   baseline, text_cluster->begin(), text_cluster->end(),
+                   nullptr, &text_cluster->textMetrics()->GetFont());
 }
 
 void BaseRenderingContext2D::strokeText(const String& text,
                                         double x,
                                         double y) {
-  DrawTextInternal(text, x, y, CanvasRenderingContext2DState::kStrokePaintType);
+  CanvasRenderingContext2DState& state = GetState();
+  DrawTextInternal(text, x, y, CanvasRenderingContext2DState::kStrokePaintType,
+                   state.GetTextAlign(), state.GetTextBaseline(), 0,
+                   text.length());
 }
 
 void BaseRenderingContext2D::strokeText(const String& text,
                                         double x,
                                         double y,
                                         double max_width) {
+  CanvasRenderingContext2DState& state = GetState();
   DrawTextInternal(text, x, y, CanvasRenderingContext2DState::kStrokePaintType,
-                   &max_width);
+                   state.GetTextAlign(), state.GetTextBaseline(), 0,
+                   text.length(), &max_width);
 }
 
 const Font& BaseRenderingContext2D::AccessFont(HTMLCanvasElement* canvas) {
@@ -3499,8 +3533,12 @@
     double x,
     double y,
     CanvasRenderingContext2DState::PaintType paint_type,
+    TextAlign align,
+    TextBaseline baseline,
+    unsigned run_start,
+    unsigned run_end,
     double* max_width,
-    const TextCluster* text_cluster) {
+    const Font* cluster_font) {
   HTMLCanvasElement* canvas = HostAsHTMLCanvasElement();
   if (canvas) {
     // The style resolution required for fonts is not available in frame-less
@@ -3529,6 +3567,7 @@
     return;
   }
 
+  // TODO(crbug.com/40191831): Remove once identifiability study is removed.
   if (identifiability_study_helper_.ShouldUpdateBuilder()) [[unlikely]] {
     identifiability_study_helper_.UpdateBuilder(
         paint_type == CanvasRenderingContext2DState::kFillPaintType
@@ -3539,12 +3578,8 @@
     identifiability_study_helper_.set_encountered_sensitive_ops();
   }
 
-  // If rendering a TextCluster that contains a TextMetrics object, use the font
-  // stored on that object to recreate the text accurately.
   const Font& font =
-      (text_cluster != nullptr && text_cluster->textMetrics() != nullptr)
-          ? text_cluster->textMetrics()->GetFont()
-          : AccessFont(canvas);
+      (cluster_font != nullptr) ? *cluster_font : AccessFont(canvas);
   const SimpleFontData* font_data = font.PrimaryFont();
   DCHECK(font_data);
   if (!font_data) {
@@ -3567,22 +3602,15 @@
   gfx::PointF location(ClampTo<float>(x), ClampTo<float>(y));
   gfx::RectF bounds;
   double font_width = 0;
-  unsigned run_start = 0, run_end = 0;
-  if (text_cluster == nullptr) [[likely]] {
-    run_start = 0;
-    run_end = text.length();
+  if (run_start == 0 && run_end == text.length()) [[likely]] {
     font_width = font.Width(text_run, &bounds);
   } else {
-    run_start = text_cluster->begin();
-    run_end = text_cluster->end();
     font_width = font.SubRunWidth(text_run, run_start, run_end, &bounds);
   }
 
   bool use_max_width = (max_width && *max_width < font_width);
   double width = use_max_width ? *max_width : font_width;
 
-  TextAlign align = (text_cluster == nullptr) ? state.GetTextAlign()
-                                              : text_cluster->GetTextAlign();
   if (align == kStartTextAlign) {
     align = is_rtl ? kRightTextAlign : kLeftTextAlign;
   } else if (align == kEndTextAlign) {
@@ -3600,14 +3628,7 @@
       break;
   }
 
-  if (text_cluster == nullptr) [[likely]] {
-    // Use the current ctx baseline.
-    location.Offset(0, GetFontBaseline(*font_data));
-  } else {
-    // Use the baseline passed in the TextCluster.
-    location.Offset(0, TextMetrics::GetFontBaseline(
-                           text_cluster->GetTextBaseline(), *font_data));
-  }
+  location.Offset(0, TextMetrics::GetFontBaseline(baseline, *font_data));
 
   bounds.Offset(location.x(), location.y());
   if (paint_type == CanvasRenderingContext2DState::kStrokePaintType) {
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.h b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.h
index 3acca3b..c5a3b4a 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.h
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.h
@@ -113,8 +113,8 @@
 class Path;
 class Path2D;
 class ScriptState;
-class SimpleFontData;
 class TextCluster;
+class TextClusterOptions;
 class TextMetrics;
 class V8GPUTextureFormat;
 class V8UnionCanvasFilterOrString;
@@ -485,6 +485,10 @@
   // The x and y parameters are added to the values from the TextCluster to
   // position the cluster.
   void fillTextCluster(const TextCluster* text_cluster, double x, double y);
+  void fillTextCluster(const TextCluster* text_cluster,
+                       double x,
+                       double y,
+                       const TextClusterOptions* cluster_options);
 
   void Trace(Visitor*) const override;
 
@@ -644,7 +648,6 @@
 
   virtual void FinalizeFrame(FlushReason) {}
 
-  float GetFontBaseline(const SimpleFontData&) const;
   virtual void DispatchContextLostEvent(TimerBase*);
   virtual void DispatchContextRestoredEvent(TimerBase*);
   virtual void TryRestoreContextEvent(TimerBase*) {}
@@ -712,8 +715,12 @@
                         double x,
                         double y,
                         CanvasRenderingContext2DState::PaintType paint_type,
+                        TextAlign align,
+                        TextBaseline baseline,
+                        unsigned run_start,
+                        unsigned run_end,
                         double* max_width = nullptr,
-                        const TextCluster* text_cluster = nullptr);
+                        const Font* cluster_font = nullptr);
 
   // Returns the color from a string. This may return a cached value as well
   // as updating the cache (if possible).
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.idl b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.idl
index f82cb39..1b9f58e 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.idl
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.idl
@@ -79,6 +79,7 @@
     [HighEntropy, MeasureAs=Canvas2DDrawText] void strokeText(DOMString text, unrestricted double x, unrestricted double y, optional unrestricted double maxWidth);
     [HighEntropy, MeasureAs=Canvas2DMeasureText] TextMetrics measureText(DOMString text);
     [RuntimeEnabled=ExtendedTextMetrics] void fillTextCluster(TextCluster textCluster, double x, double y);
+    [RuntimeEnabled=ExtendedTextMetrics] void fillTextCluster(TextCluster textCluster, double x, double y, TextClusterOptions options);
 
     // drawing images
     [RaisesException] void drawImage(CanvasImageSource image, unrestricted double x, unrestricted double y);
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_filter_operation_resolver.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_filter_operation_resolver.cc
index e43bf1b..13f5027 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_filter_operation_resolver.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_filter_operation_resolver.cc
@@ -438,7 +438,7 @@
 }  // namespace
 
 FilterOperations CanvasFilterOperationResolver::CreateFilterOperationsFromList(
-    const HeapVector<ScriptValue>& filters,
+    const HeapVector<ScriptObject>& filters,
     ExecutionContext& execution_context,
     ExceptionState& exception_state) {
   FilterOperations operations;
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_filter_operation_resolver.h b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_filter_operation_resolver.h
index 6fef972..3d94b7b 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_filter_operation_resolver.h
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_filter_operation_resolver.h
@@ -31,7 +31,7 @@
 
  public:
   static FilterOperations CreateFilterOperationsFromList(
-      const HeapVector<ScriptValue>& filters,
+      const HeapVector<ScriptObject>& filters,
       ExecutionContext& execution_context,
       ExceptionState& exception_state);
 
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_filter_operation_resolver_test.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_filter_operation_resolver_test.cc
index 9ba6270d..339ee2e0 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_filter_operation_resolver_test.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_filter_operation_resolver_test.cc
@@ -64,7 +64,7 @@
 TEST_P(FilterTest, CreatesFilterOperationsFromObject) {
   test::TaskEnvironment task_environment;
   V8TestingScope scope;
-  HeapVector<ScriptValue> filters = {
+  HeapVector<ScriptObject> filters = {
       CHECK_DEREF(ParseFilter(scope, GetParam().filter)).GetAsObject()};
   EXPECT_THAT(CanvasFilterOperationResolver::CreateFilterOperationsFromList(
                   filters, CHECK_DEREF(scope.GetExecutionContext()),
@@ -200,7 +200,7 @@
   test::TaskEnvironment task_environment;
   V8TestingScope scope;
   CHECK(scope.GetExecutionContext());
-  HeapVector<ScriptValue> filters =
+  HeapVector<ScriptObject> filters =
       CHECK_DEREF(ParseFilter(scope, GetParam().filter)).GetAsObjectArray();
   EXPECT_THAT(CanvasFilterOperationResolver::CreateFilterOperationsFromList(
                   filters, CHECK_DEREF(scope.GetExecutionContext()),
@@ -369,7 +369,7 @@
   V8TestingScope scope;
   const auto& [filter_name, param_key, param_value, expected_error] =
       GetParam();
-  HeapVector<ScriptValue> filters = {
+  HeapVector<ScriptObject> filters = {
       CHECK_DEREF(
           ParseFilter(scope, base::StringPrintf(
                                  "({name: '%s', %s: %s})", filter_name.c_str(),
diff --git a/third_party/blink/renderer/modules/content_extraction/ai_page_content_agent.cc b/third_party/blink/renderer/modules/content_extraction/ai_page_content_agent.cc
index 3e2cb6a7..4af59c7 100644
--- a/third_party/blink/renderer/modules/content_extraction/ai_page_content_agent.cc
+++ b/third_party/blink/renderer/modules/content_extraction/ai_page_content_agent.cc
@@ -136,6 +136,46 @@
     return mojom::blink::AIPageContentAttributeType::kTableCell;
   }
 
+  if (element->HasTagName(html_names::kHeaderTag) ||
+      element->FastGetAttribute(html_names::kRoleAttr) == "banner") {
+    return mojom::blink::AIPageContentAttributeType::kHeader;
+  }
+
+  if (element->HasTagName(html_names::kNavTag) ||
+      element->FastGetAttribute(html_names::kRoleAttr) == "navigation") {
+    return mojom::blink::AIPageContentAttributeType::kNav;
+  }
+
+  if (element->HasTagName(html_names::kSearchTag) ||
+      element->FastGetAttribute(html_names::kRoleAttr) == "search") {
+    return mojom::blink::AIPageContentAttributeType::kSearch;
+  }
+
+  if (element->HasTagName(html_names::kMainTag) ||
+      element->FastGetAttribute(html_names::kRoleAttr) == "main") {
+    return mojom::blink::AIPageContentAttributeType::kMain;
+  }
+
+  if (element->HasTagName(html_names::kArticleTag) ||
+      element->FastGetAttribute(html_names::kRoleAttr) == "article") {
+    return mojom::blink::AIPageContentAttributeType::kArticle;
+  }
+
+  if (element->HasTagName(html_names::kSectionTag) ||
+      element->FastGetAttribute(html_names::kRoleAttr) == "region") {
+    return mojom::blink::AIPageContentAttributeType::kSection;
+  }
+
+  if (element->HasTagName(html_names::kAsideTag) ||
+      element->FastGetAttribute(html_names::kRoleAttr) == "complementary") {
+    return mojom::blink::AIPageContentAttributeType::kAside;
+  }
+
+  if (element->HasTagName(html_names::kFooterTag) ||
+      element->FastGetAttribute(html_names::kRoleAttr) == "contentinfo") {
+    return mojom::blink::AIPageContentAttributeType::kFooter;
+  }
+
   // TODO: Add FormData for attribute_type = FORM.
   return std::nullopt;
 }
diff --git a/third_party/blink/renderer/modules/content_extraction/ai_page_content_agent_unittest.cc b/third_party/blink/renderer/modules/content_extraction/ai_page_content_agent_unittest.cc
index 90d89a4..6357d9a 100644
--- a/third_party/blink/renderer/modules/content_extraction/ai_page_content_agent_unittest.cc
+++ b/third_party/blink/renderer/modules/content_extraction/ai_page_content_agent_unittest.cc
@@ -674,5 +674,153 @@
             "987-654-3210");
 }
 
+TEST_F(AIPageContentAgentTest, LandmarkSections) {
+  frame_test_helpers::LoadHTMLString(
+      helper_.LocalMainFrame(),
+      "<body>"
+      "  <header>Header</header>"
+      "  <nav>Navigation</nav>"
+      "  <search>Search</search>"
+      "  <main>Main content</main>"
+      "  <article>Article</article>"
+      "  <section>Section</section>"
+      "  <aside>Aside</aside>"
+      "  <footer>Footer</footer>"
+      "</body>",
+      url_test_helpers::ToKURL("http://foobar.com"));
+
+  auto* agent = AIPageContentAgent::GetOrCreateForTesting(
+      *helper_.LocalMainFrame()->GetFrame()->GetDocument());
+  ASSERT_TRUE(agent);
+
+  auto content = agent->GetAIPageContentSync();
+  ASSERT_TRUE(content);
+  ASSERT_TRUE(content->root_node);
+
+  const auto& root = *content->root_node;
+  ASSERT_EQ(root.children_nodes.size(), 8u);
+
+  const auto& header = *root.children_nodes[0]->content_attributes;
+  EXPECT_EQ(header.attribute_type,
+            mojom::blink::AIPageContentAttributeType::kHeader);
+  ASSERT_EQ(header.text_info.size(), 1u);
+  EXPECT_EQ(header.text_info[0]->text_content, "Header");
+
+  const auto& nav = *root.children_nodes[1]->content_attributes;
+  EXPECT_EQ(nav.attribute_type, mojom::blink::AIPageContentAttributeType::kNav);
+  ASSERT_EQ(nav.text_info.size(), 1u);
+  EXPECT_EQ(nav.text_info[0]->text_content, "Navigation");
+
+  const auto& search = *root.children_nodes[2]->content_attributes;
+  EXPECT_EQ(search.attribute_type,
+            mojom::blink::AIPageContentAttributeType::kSearch);
+  ASSERT_EQ(search.text_info.size(), 1u);
+  EXPECT_EQ(search.text_info[0]->text_content, "Search");
+
+  const auto& main = *root.children_nodes[3]->content_attributes;
+  EXPECT_EQ(main.attribute_type,
+            mojom::blink::AIPageContentAttributeType::kMain);
+  ASSERT_EQ(main.text_info.size(), 1u);
+  EXPECT_EQ(main.text_info[0]->text_content, "Main content");
+
+  const auto& article = *root.children_nodes[4]->content_attributes;
+  EXPECT_EQ(article.attribute_type,
+            mojom::blink::AIPageContentAttributeType::kArticle);
+  ASSERT_EQ(article.text_info.size(), 1u);
+  EXPECT_EQ(article.text_info[0]->text_content, "Article");
+
+  const auto& section = *root.children_nodes[5]->content_attributes;
+  EXPECT_EQ(section.attribute_type,
+            mojom::blink::AIPageContentAttributeType::kSection);
+  ASSERT_EQ(section.text_info.size(), 1u);
+  EXPECT_EQ(section.text_info[0]->text_content, "Section");
+
+  const auto& aside = *root.children_nodes[6]->content_attributes;
+  EXPECT_EQ(aside.attribute_type,
+            mojom::blink::AIPageContentAttributeType::kAside);
+  ASSERT_EQ(aside.text_info.size(), 1u);
+  EXPECT_EQ(aside.text_info[0]->text_content, "Aside");
+
+  const auto& footer = *root.children_nodes[7]->content_attributes;
+  EXPECT_EQ(footer.attribute_type,
+            mojom::blink::AIPageContentAttributeType::kFooter);
+  ASSERT_EQ(footer.text_info.size(), 1u);
+  EXPECT_EQ(footer.text_info[0]->text_content, "Footer");
+}
+
+TEST_F(AIPageContentAgentTest, LandmarkSectionsWithAriaRoles) {
+  frame_test_helpers::LoadHTMLString(
+      helper_.LocalMainFrame(),
+      "<body>"
+      "  <div role='banner'>Header</div>"
+      "  <div role='navigation'>Navigation</div>"
+      "  <div role='search'>Search</div>"
+      "  <div role='main'>Main content</div>"
+      "  <div role='article'>Article</div>"
+      "  <div role='region'>Section</div>"
+      "  <div role='complementary'>Aside</div>"
+      "  <div role='contentinfo'>Footer</div>"
+      "</body>",
+      url_test_helpers::ToKURL("http://foobar.com"));
+
+  auto* agent = AIPageContentAgent::GetOrCreateForTesting(
+      *helper_.LocalMainFrame()->GetFrame()->GetDocument());
+  ASSERT_TRUE(agent);
+
+ auto content = agent->GetAIPageContentSync();
+  ASSERT_TRUE(content);
+  ASSERT_TRUE(content->root_node);
+
+  const auto& root = *content->root_node;
+  ASSERT_EQ(root.children_nodes.size(), 8u);
+
+  const auto& header = *root.children_nodes[0]->content_attributes;
+  EXPECT_EQ(header.attribute_type,
+            mojom::blink::AIPageContentAttributeType::kHeader);
+  ASSERT_EQ(header.text_info.size(), 1u);
+  EXPECT_EQ(header.text_info[0]->text_content, "Header");
+
+  const auto& nav = *root.children_nodes[1]->content_attributes;
+  EXPECT_EQ(nav.attribute_type, mojom::blink::AIPageContentAttributeType::kNav);
+  ASSERT_EQ(nav.text_info.size(), 1u);
+  EXPECT_EQ(nav.text_info[0]->text_content, "Navigation");
+
+  const auto& search = *root.children_nodes[2]->content_attributes;
+  EXPECT_EQ(search.attribute_type,
+            mojom::blink::AIPageContentAttributeType::kSearch);
+  ASSERT_EQ(search.text_info.size(), 1u);
+  EXPECT_EQ(search.text_info[0]->text_content, "Search");
+
+  const auto& main = *root.children_nodes[3]->content_attributes;
+  EXPECT_EQ(main.attribute_type,
+            mojom::blink::AIPageContentAttributeType::kMain);
+  ASSERT_EQ(main.text_info.size(), 1u);
+  EXPECT_EQ(main.text_info[0]->text_content, "Main content");
+
+  const auto& article = *root.children_nodes[4]->content_attributes;
+  EXPECT_EQ(article.attribute_type,
+            mojom::blink::AIPageContentAttributeType::kArticle);
+  ASSERT_EQ(article.text_info.size(), 1u);
+  EXPECT_EQ(article.text_info[0]->text_content, "Article");
+
+  const auto& section = *root.children_nodes[5]->content_attributes;
+  EXPECT_EQ(section.attribute_type,
+            mojom::blink::AIPageContentAttributeType::kSection);
+  ASSERT_EQ(section.text_info.size(), 1u);
+  EXPECT_EQ(section.text_info[0]->text_content, "Section");
+
+  const auto& aside = *root.children_nodes[6]->content_attributes;
+  EXPECT_EQ(aside.attribute_type,
+            mojom::blink::AIPageContentAttributeType::kAside);
+  ASSERT_EQ(aside.text_info.size(), 1u);
+  EXPECT_EQ(aside.text_info[0]->text_content, "Aside");
+
+  const auto& footer = *root.children_nodes[7]->content_attributes;
+  EXPECT_EQ(footer.attribute_type,
+            mojom::blink::AIPageContentAttributeType::kFooter);
+  ASSERT_EQ(footer.text_info.size(), 1u);
+  EXPECT_EQ(footer.text_info[0]->text_content, "Footer");
+}
+
 }  // namespace
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/crypto/crypto_key.cc b/third_party/blink/renderer/modules/crypto/crypto_key.cc
index 076e8af..6d27732 100644
--- a/third_party/blink/renderer/modules/crypto/crypto_key.cc
+++ b/third_party/blink/renderer/modules/crypto/crypto_key.cc
@@ -154,7 +154,7 @@
 //        instead is return the same (immutable) array. (Javascript callers can
 //        distinguish this by doing an == test on the arrays and seeing they are
 //        different).
-ScriptValue CryptoKey::usages(ScriptState* script_state) {
+ScriptObject CryptoKey::usages(ScriptState* script_state) {
   Vector<String> result;
   for (const auto& mapping : kKeyUsageMappings) {
     WebCryptoKeyUsage usage = mapping.value;
@@ -162,7 +162,7 @@
       result.push_back(KeyUsageToString(usage));
   }
 
-  return ScriptValue(
+  return ScriptObject(
       script_state->GetIsolate(),
       ToV8Traits<IDLSequence<IDLString>>::ToV8(script_state, result));
 }
diff --git a/third_party/blink/renderer/modules/crypto/crypto_key.h b/third_party/blink/renderer/modules/crypto/crypto_key.h
index 4ff9260e..70d9fa0 100644
--- a/third_party/blink/renderer/modules/crypto/crypto_key.h
+++ b/third_party/blink/renderer/modules/crypto/crypto_key.h
@@ -53,7 +53,7 @@
   String type() const;
   bool extractable() const;
   ScriptObject algorithm(ScriptState*);
-  ScriptValue usages(ScriptState*);
+  ScriptObject usages(ScriptState*);
 
   const WebCryptoKey& Key() const { return key_; }
 
diff --git a/third_party/blink/renderer/modules/crypto/normalize_algorithm.cc b/third_party/blink/renderer/modules/crypto/normalize_algorithm.cc
index fff42bc..80cce0b 100644
--- a/third_party/blink/renderer/modules/crypto/normalize_algorithm.cc
+++ b/third_party/blink/renderer/modules/crypto/normalize_algorithm.cc
@@ -521,7 +521,7 @@
   Dictionary dictionary;
   if (raw.Get(property_name, dictionary) && dictionary.IsObject()) {
     return MakeGarbageCollected<V8AlgorithmIdentifier>(
-        ScriptValue(isolate, dictionary.V8Value()));
+        ScriptObject(isolate, dictionary.V8Value().As<v8::Object>()));
   }
 
   std::optional<String> algorithm_name =
@@ -1158,7 +1158,7 @@
   }
 
   // Get the name of the algorithm from the AlgorithmIdentifier.
-  Dictionary params(isolate, raw.GetAsObject().V8Value(), exception_state);
+  Dictionary params(raw.GetAsObject());
   if (exception_state.HadException()) {
     return false;
   }
diff --git a/third_party/blink/renderer/modules/filesystem/metadata.cc b/third_party/blink/renderer/modules/filesystem/metadata.cc
index 8a01e588..a38ffa3e 100644
--- a/third_party/blink/renderer/modules/filesystem/metadata.cc
+++ b/third_party/blink/renderer/modules/filesystem/metadata.cc
@@ -15,9 +15,7 @@
   // Passing Time::Max() here creates such a Date object.
   base::Time time =
       platform_metadata_.modification_time.value_or(base::Time::Max());
-  return ScriptObject(script_state->GetIsolate(),
-                      ToV8Traits<IDLNullable<IDLDate>>::ToV8(
-                          script_state, std::optional<base::Time>(time)));
+  return ToV8FromDate(script_state, std::make_optional(time));
 }
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/payments/payment_event_data_conversion.cc b/third_party/blink/renderer/modules/payments/payment_event_data_conversion.cc
index e3cefb0..28b18d9 100644
--- a/third_party/blink/renderer/modules/payments/payment_event_data_conversion.cc
+++ b/third_party/blink/renderer/modules/payments/payment_event_data_conversion.cc
@@ -43,14 +43,18 @@
   return modifier;
 }
 
-ScriptValue StringDataToScriptValue(ScriptState* script_state,
-                                    const String& stringified_data) {
-  if (!script_state->ContextIsValid())
-    return ScriptValue();
+void MaybeSetData(ScriptState* script_state,
+                  PaymentMethodData* method_data,
+                  const String& stringified_data) {
+  if (!script_state->ContextIsValid()) {
+    return;
+  }
 
   ScriptState::Scope scope(script_state);
-  return ScriptValue(script_state->GetIsolate(),
-                     FromJSONString(script_state, stringified_data));
+  auto v8_json = FromJSONString(script_state, stringified_data);
+  if (!v8_json.IsEmpty()) {
+    method_data->setData(ScriptObject(script_state->GetIsolate(), v8_json));
+  }
 }
 
 PaymentMethodData* ToPaymentMethodData(
@@ -59,10 +63,7 @@
   DCHECK(data);
   PaymentMethodData* method_data = PaymentMethodData::Create();
   method_data->setSupportedMethod(data->supported_method);
-  ScriptValue v8_data =
-      StringDataToScriptValue(script_state, data->stringified_data);
-  if (!v8_data.IsEmpty())
-    method_data->setData(std::move(v8_data));
+  MaybeSetData(script_state, method_data, data->stringified_data);
   return method_data;
 }
 
diff --git a/third_party/blink/renderer/modules/payments/payment_event_data_conversion_test.cc b/third_party/blink/renderer/modules/payments/payment_event_data_conversion_test.cc
index 6644342..7a0f1b4c 100644
--- a/third_party/blink/renderer/modules/payments/payment_event_data_conversion_test.cc
+++ b/third_party/blink/renderer/modules/payments/payment_event_data_conversion_test.cc
@@ -107,12 +107,10 @@
   ASSERT_TRUE(data->methodData().front()->hasSupportedMethod());
   ASSERT_EQ("foo", data->methodData().front()->supportedMethod());
   ASSERT_TRUE(data->methodData().front()->hasData());
-  ASSERT_TRUE(data->methodData().front()->data().IsObject());
   String stringified_data = ToBlinkString<String>(
       scope.GetIsolate(),
-      v8::JSON::Stringify(
-          scope.GetContext(),
-          data->methodData().front()->data().V8Value().As<v8::Object>())
+      v8::JSON::Stringify(scope.GetContext(),
+                          data->methodData().front()->data().V8Object())
           .ToLocalChecked(),
       kDoNotExternalize);
   EXPECT_EQ("{\"merchantId\":\"12345\"}", stringified_data);
@@ -141,12 +139,10 @@
   ASSERT_TRUE(data->methodData().front()->hasSupportedMethod());
   ASSERT_EQ("foo", data->methodData().front()->supportedMethod());
   ASSERT_TRUE(data->methodData().front()->hasData());
-  ASSERT_TRUE(data->methodData().front()->data().IsObject());
   String stringified_data = ToBlinkString<String>(
       scope.GetIsolate(),
-      v8::JSON::Stringify(
-          scope.GetContext(),
-          data->methodData().front()->data().V8Value().As<v8::Object>())
+      v8::JSON::Stringify(scope.GetContext(),
+                          data->methodData().front()->data().V8Object())
           .ToLocalChecked(),
       kDoNotExternalize);
   EXPECT_EQ("{\"merchantId\":\"12345\"}", stringified_data);
diff --git a/third_party/blink/renderer/modules/payments/payment_method_change_event.cc b/third_party/blink/renderer/modules/payments/payment_method_change_event.cc
index bb1a0f7..b5ef89d 100644
--- a/third_party/blink/renderer/modules/payments/payment_method_change_event.cc
+++ b/third_party/blink/renderer/modules/payments/payment_method_change_event.cc
@@ -25,12 +25,8 @@
   return method_name_;
 }
 
-const ScriptValue PaymentMethodChangeEvent::methodDetails(
-    ScriptState* script_state) const {
-  if (method_details_.IsEmpty())
-    return ScriptValue::CreateNull(script_state->GetIsolate());
-  return ScriptValue(script_state->GetIsolate(),
-                     method_details_.GetAcrossWorld(script_state));
+const ScriptObject& PaymentMethodChangeEvent::methodDetails() const {
+  return method_details_;
 }
 
 void PaymentMethodChangeEvent::Trace(Visitor* visitor) const {
@@ -45,11 +41,7 @@
     : PaymentRequestUpdateEvent(ExecutionContext::From(script_state),
                                 type,
                                 init),
-      method_name_(init->methodName()) {
-  if (init->hasMethodDetails()) {
-    method_details_.Set(script_state->GetIsolate(),
-                        init->methodDetails().V8Value());
-  }
-}
+      method_name_(init->methodName()),
+      method_details_(init->methodDetails()) {}
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/payments/payment_method_change_event.h b/third_party/blink/renderer/modules/payments/payment_method_change_event.h
index 86b2c597..d1543b51 100644
--- a/third_party/blink/renderer/modules/payments/payment_method_change_event.h
+++ b/third_party/blink/renderer/modules/payments/payment_method_change_event.h
@@ -36,7 +36,7 @@
                                           const PaymentMethodChangeEventInit*);
 
   const String& methodName() const;
-  const ScriptValue methodDetails(ScriptState*) const;
+  const ScriptObject& methodDetails() const;
 
   PaymentMethodChangeEvent(ScriptState*,
                            const AtomicString& type,
@@ -46,7 +46,7 @@
 
  private:
   String method_name_;
-  WorldSafeV8Reference<v8::Value> method_details_;
+  const ScriptObject method_details_;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/payments/payment_method_change_event.idl b/third_party/blink/renderer/modules/payments/payment_method_change_event.idl
index d0f67ee..b34163a2 100644
--- a/third_party/blink/renderer/modules/payments/payment_method_change_event.idl
+++ b/third_party/blink/renderer/modules/payments/payment_method_change_event.idl
@@ -11,5 +11,5 @@
 ] interface PaymentMethodChangeEvent : PaymentRequestUpdateEvent {
     [CallWith=ScriptState] constructor(DOMString type, optional PaymentMethodChangeEventInit eventInitDict = {});
     readonly attribute DOMString methodName;
-    [CallWith=ScriptState] readonly attribute object? methodDetails;
+    readonly attribute object? methodDetails;
 };
diff --git a/third_party/blink/renderer/modules/payments/payment_request.cc b/third_party/blink/renderer/modules/payments/payment_request.cc
index 4f81d72..f87b74e 100644
--- a/third_party/blink/renderer/modules/payments/payment_request.cc
+++ b/third_party/blink/renderer/modules/payments/payment_request.cc
@@ -517,7 +517,7 @@
         payments::mojom::blink::PaymentMethodData::New();
     output.back()->method_data->supported_method = modifier->supportedMethod();
 
-    if (modifier->hasData() && !modifier->data().IsEmpty()) {
+    if (modifier->hasData()) {
       StringifyAndParseMethodSpecificData(
           execution_context, modifier->supportedMethod(), modifier->data(),
           output.back()->method_data, exception_state);
@@ -760,8 +760,7 @@
     output.push_back(payments::mojom::blink::PaymentMethodData::New());
     output.back()->supported_method = payment_method_data->supportedMethod();
 
-    if (payment_method_data->hasData() &&
-        !payment_method_data->data().IsEmpty()) {
+    if (payment_method_data->hasData()) {
       StringifyAndParseMethodSpecificData(
           execution_context, payment_method_data->supportedMethod(),
           payment_method_data->data(), output.back(), exception_state);
@@ -1403,8 +1402,9 @@
       ClearResolversAndCloseMojoConnection();
       return;
     }
+    CHECK(parsed_value->IsObject());
     init->setMethodDetails(
-        ScriptValue(script_state->GetIsolate(), parsed_value));
+        ScriptObject(script_state->GetIsolate(), parsed_value));
   }
 
   PaymentRequestUpdateEvent* event = PaymentMethodChangeEvent::Create(
diff --git a/third_party/blink/renderer/modules/payments/payment_request_event.cc b/third_party/blink/renderer/modules/payments/payment_request_event.cc
index aad4994..e3e0cfe 100644
--- a/third_party/blink/renderer/modules/payments/payment_request_event.cc
+++ b/third_party/blink/renderer/modules/payments/payment_request_event.cc
@@ -140,8 +140,8 @@
   return method_data_;
 }
 
-const ScriptValue PaymentRequestEvent::total(ScriptState* script_state) const {
-  return ScriptValue::From(script_state, total_.Get());
+const ScriptObject PaymentRequestEvent::total(ScriptState* script_state) const {
+  return ScriptObject::From(script_state, total_.Get());
 }
 
 const HeapVector<Member<PaymentDetailsModifier>>&
@@ -153,11 +153,13 @@
   return instrument_key_;
 }
 
-const ScriptValue PaymentRequestEvent::paymentOptions(
+const ScriptObject PaymentRequestEvent::paymentOptions(
     ScriptState* script_state) const {
-  if (!payment_options_)
-    return ScriptValue::CreateNull(script_state->GetIsolate());
-  return ScriptValue::From(script_state, payment_options_.Get());
+  v8::Isolate* isolate = script_state->GetIsolate();
+  if (!payment_options_) {
+    return ScriptObject::CreateNull(isolate);
+  }
+  return ScriptObject::From(script_state, payment_options_.Get());
 }
 
 std::optional<HeapVector<Member<PaymentShippingOption>>>
@@ -215,7 +217,7 @@
 ScriptPromise<IDLNullable<PaymentRequestDetailsUpdate>>
 PaymentRequestEvent::changePaymentMethod(ScriptState* script_state,
                                          const String& method_name,
-                                         const ScriptValue& method_details,
+                                         const ScriptObject& method_details,
                                          ExceptionState& exception_state) {
   if (change_payment_request_details_resolver_) {
     exception_state.ThrowDOMException(DOMExceptionCode::kInvalidStateError,
@@ -233,7 +235,6 @@
 
   auto method_data = payments::mojom::blink::PaymentHandlerMethodData::New();
   if (!method_details.IsNull()) {
-    DCHECK(!method_details.IsEmpty());
     PaymentsValidators::ValidateAndStringifyObject(
         script_state->GetIsolate(), method_details,
         method_data->stringified_data, exception_state);
@@ -419,7 +420,8 @@
           change_payment_request_details_resolver_.Clear();
           return;
         }
-        mod->setData(ScriptValue(script_state->GetIsolate(), parsed_value));
+        CHECK(parsed_value->IsObject());
+        mod->setData(ScriptObject(script_state->GetIsolate(), parsed_value));
         modifiers.emplace_back(mod);
       }
     }
@@ -455,8 +457,9 @@
       change_payment_request_details_resolver_.Clear();
       return;
     }
+    CHECK(parsed_value->IsObject());
     dictionary->setPaymentMethodErrors(
-        ScriptValue(script_state->GetIsolate(), parsed_value));
+        ScriptObject(script_state->GetIsolate(), parsed_value));
   }
 
   if (response->shipping_address_errors) {
diff --git a/third_party/blink/renderer/modules/payments/payment_request_event.h b/third_party/blink/renderer/modules/payments/payment_request_event.h
index e4a4d3e..109b20a 100644
--- a/third_party/blink/renderer/modules/payments/payment_request_event.h
+++ b/third_party/blink/renderer/modules/payments/payment_request_event.h
@@ -29,7 +29,6 @@
 class PaymentRequestDetailsUpdate;
 class PaymentRequestRespondWithObserver;
 class ScriptState;
-class ScriptValue;
 class ServiceWorkerWindowClient;
 
 class MODULES_EXPORT PaymentRequestEvent final : public ExtendableEvent {
@@ -64,10 +63,10 @@
   const String& paymentRequestOrigin() const;
   const String& paymentRequestId() const;
   const HeapVector<Member<PaymentMethodData>>& methodData() const;
-  const ScriptValue total(ScriptState*) const;
+  const ScriptObject total(ScriptState*) const;
   const HeapVector<Member<PaymentDetailsModifier>>& modifiers() const;
   const String& instrumentKey() const;
-  const ScriptValue paymentOptions(ScriptState*) const;
+  const ScriptObject paymentOptions(ScriptState*) const;
   std::optional<HeapVector<Member<PaymentShippingOption>>> shippingOptions()
       const;
 
@@ -77,7 +76,7 @@
   ScriptPromise<IDLNullable<PaymentRequestDetailsUpdate>> changePaymentMethod(
       ScriptState*,
       const String& method_name,
-      const ScriptValue& method_details,
+      const ScriptObject& method_details,
       ExceptionState& exception_state);
   ScriptPromise<IDLNullable<PaymentRequestDetailsUpdate>>
   changeShippingAddress(ScriptState*, AddressInit*, ExceptionState&);
diff --git a/third_party/blink/renderer/modules/payments/payment_request_respond_with_observer.cc b/third_party/blink/renderer/modules/payments/payment_request_respond_with_observer.cc
index 115e53b..67c3f33 100644
--- a/third_party/blink/renderer/modules/payments/payment_request_respond_with_observer.cc
+++ b/third_party/blink/renderer/modules/payments/payment_request_respond_with_observer.cc
@@ -52,8 +52,7 @@
   DCHECK(GetExecutionContext());
   // Check payment response validity.
   if (!response->hasMethodName() || response->methodName().empty() ||
-      !response->hasDetails() || response->details().IsNull() ||
-      !response->details().IsObject()) {
+      !response->hasDetails()) {
     GetExecutionContext()->AddConsoleMessage(
         MakeGarbageCollected<ConsoleMessage>(
             mojom::ConsoleMessageSource::kJavaScript,
@@ -73,16 +72,9 @@
     return;
   }
 
-  if (response->details().IsNull() || !response->details().IsObject() ||
-      response->details().IsEmpty()) {
-    BlankResponseWithError(
-        PaymentEventResponseType::PAYMENT_DETAILS_NOT_OBJECT);
-    return;
-  }
-
   v8::Local<v8::String> details_value;
   if (!v8::JSON::Stringify(script_state->GetContext(),
-                           response->details().V8Value().As<v8::Object>())
+                           response->details().V8Object())
            .ToLocal(&details_value)) {
     GetExecutionContext()->AddConsoleMessage(
         MakeGarbageCollected<ConsoleMessage>(
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 2ed3464..84ab95f 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc
@@ -1370,9 +1370,7 @@
   // attribute.
   std::optional<DOMTimeStamp> expires;
   if (keygen_algorithm->IsObject()) {
-    Dictionary keygen_algorithm_dict(script_state->GetIsolate(),
-                                     keygen_algorithm->GetAsObject().V8Value(),
-                                     exception_state);
+    Dictionary keygen_algorithm_dict(keygen_algorithm->GetAsObject());
     if (exception_state.HadException())
       return EmptyPromise();
 
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_script_transform.cc b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_script_transform.cc
index b39788a..5fbea72 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_script_transform.cc
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_script_transform.cc
@@ -90,7 +90,7 @@
     ScriptState* script_state,
     DedicatedWorker* worker,
     const ScriptValue& message,
-    HeapVector<ScriptValue> transfer,
+    HeapVector<ScriptObject> transfer,
     ExceptionState& exception_state) {
   auto* transform = MakeGarbageCollected<RTCRtpScriptTransform>();
   worker->PostCustomEvent(
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_script_transform.h b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_script_transform.h
index 017adae..d878c24 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_script_transform.h
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_script_transform.h
@@ -48,7 +48,7 @@
   static RTCRtpScriptTransform* Create(ScriptState*,
                                        DedicatedWorker* worker,
                                        const ScriptValue& message,
-                                       HeapVector<ScriptValue> transfer,
+                                       HeapVector<ScriptObject> transfer,
                                        ExceptionState&);
 
   RTCRtpScriptTransform() = default;
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_transport.cc b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_transport.cc
index 2a50c746..b49de258 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_transport.cc
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_transport.cc
@@ -75,7 +75,7 @@
 void RTCRtpTransport::createProcessor(ScriptState* script_state,
                                       DedicatedWorker* worker,
                                       const ScriptValue& options,
-                                      HeapVector<ScriptValue> transfer,
+                                      HeapVector<ScriptObject> transfer,
                                       ExceptionState& exception_state) {
   worker->PostCustomEvent(
       TaskType::kInternalMediaRealTime, script_state,
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_transport.h b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_transport.h
index 49bfc06..a899d9c 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_transport.h
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_transport.h
@@ -73,7 +73,7 @@
   void createProcessor(ScriptState*,
                        DedicatedWorker* worker,
                        const ScriptValue& options,
-                       HeapVector<ScriptValue> transfer,
+                       HeapVector<ScriptObject> transfer,
                        ExceptionState&);
 
   void RegisterFeedbackProvider(scoped_refptr<FeedbackProvider> observer);
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_stats_report.cc b/third_party/blink/renderer/modules/peerconnection/rtc_stats_report.cc
index 98d707e..d7dded50 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_stats_report.cc
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_stats_report.cc
@@ -1032,14 +1032,14 @@
 
   bool FetchNextItem(ScriptState* script_state,
                      String& key,
-                     ScriptValue& value,
+                     ScriptObject& object,
                      ExceptionState& exception_state) override {
-    return FetchNextItemIdl(script_state, key, value, exception_state);
+    return FetchNextItemIdl(script_state, key, object, exception_state);
   }
 
   bool FetchNextItemIdl(ScriptState* script_state,
                         String& key,
-                        ScriptValue& value,
+                        ScriptObject& object,
                         ExceptionState& exception_state) {
     const bool expose_hardware_caps =
         ExposeHardwareCapabilityStats(script_state);
@@ -1057,7 +1057,7 @@
       return false;
     }
     key = String::FromUTF8(rtc_stats->id());
-    value = ScriptValue::From(script_state, v8_stat);
+    object = ScriptObject::From(script_state, v8_stat);
     return true;
   }
 
@@ -1082,7 +1082,7 @@
 
 bool RTCStatsReport::GetMapEntryIdl(ScriptState* script_state,
                                     const String& key,
-                                    ScriptValue& value,
+                                    ScriptObject& object,
                                     ExceptionState&) {
   const webrtc::RTCStats* stats = report_->stats_report().Get(key.Utf8());
   if (!stats) {
@@ -1094,15 +1094,15 @@
   if (!v8_stats) {
     return false;
   }
-  value = ScriptValue::From(script_state, v8_stats);
+  object = ScriptObject::From(script_state, v8_stats);
   return true;
 }
 
 bool RTCStatsReport::GetMapEntry(ScriptState* script_state,
                                  const String& key,
-                                 ScriptValue& value,
+                                 ScriptObject& object,
                                  ExceptionState& exception_state) {
-  return GetMapEntryIdl(script_state, key, value, exception_state);
+  return GetMapEntryIdl(script_state, key, object, exception_state);
 }
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_stats_report.h b/third_party/blink/renderer/modules/peerconnection/rtc_stats_report.h
index 8c555860..ec9dd37 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_stats_report.h
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_stats_report.h
@@ -32,13 +32,13 @@
       ExceptionState&) override;
   bool GetMapEntry(ScriptState*,
                    const String& key,
-                   ScriptValue&,
+                   ScriptObject&,
                    ExceptionState&) override;
 
  private:
   bool GetMapEntryIdl(ScriptState*,
                       const String& key,
-                      ScriptValue&,
+                      ScriptObject&,
                       ExceptionState&);
 
   std::unique_ptr<RTCStatsReportPlatform> report_;
diff --git a/third_party/blink/renderer/modules/permissions/permissions.cc b/third_party/blink/renderer/modules/permissions/permissions.cc
index 2c434ba..c0cf9c9b 100644
--- a/third_party/blink/renderer/modules/permissions/permissions.cc
+++ b/third_party/blink/renderer/modules/permissions/permissions.cc
@@ -155,7 +155,7 @@
 
 ScriptPromise<IDLSequence<PermissionStatus>> Permissions::requestAll(
     ScriptState* script_state,
-    const HeapVector<ScriptValue>& raw_permissions,
+    const HeapVector<ScriptObject>& raw_permissions,
     ExceptionState& exception_state) {
   Vector<PermissionDescriptorPtr> internal_permissions;
   Vector<int> caller_index_to_internal_index;
@@ -164,7 +164,7 @@
   ExecutionContext* context = ExecutionContext::From(script_state);
 
   for (wtf_size_t i = 0; i < raw_permissions.size(); ++i) {
-    const ScriptValue& raw_permission = raw_permissions[i];
+    const ScriptObject& raw_permission = raw_permissions[i];
 
     auto descriptor = ParsePermissionDescriptor(script_state, raw_permission,
                                                 exception_state);
diff --git a/third_party/blink/renderer/modules/permissions/permissions.h b/third_party/blink/renderer/modules/permissions/permissions.h
index 70755bf..40d44b2 100644
--- a/third_party/blink/renderer/modules/permissions/permissions.h
+++ b/third_party/blink/renderer/modules/permissions/permissions.h
@@ -50,7 +50,7 @@
                                          const ScriptValue&,
                                          ExceptionState&);
   ScriptPromise<IDLSequence<PermissionStatus>>
-  requestAll(ScriptState*, const HeapVector<ScriptValue>&, ExceptionState&);
+  requestAll(ScriptState*, const HeapVector<ScriptObject>&, ExceptionState&);
 
   // ExecutionContextLifecycleStateObserver:
   void ContextDestroyed() override;
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker.cc b/third_party/blink/renderer/modules/service_worker/service_worker.cc
index cd2ec2baf..d17b5a43 100644
--- a/third_party/blink/renderer/modules/service_worker/service_worker.cc
+++ b/third_party/blink/renderer/modules/service_worker/service_worker.cc
@@ -60,7 +60,7 @@
 
 void ServiceWorker::postMessage(ScriptState* script_state,
                                 const ScriptValue& message,
-                                HeapVector<ScriptValue> transfer,
+                                HeapVector<ScriptObject> transfer,
                                 ExceptionState& exception_state) {
   PostMessageOptions* options = PostMessageOptions::Create();
   if (!transfer.empty())
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker.h b/third_party/blink/renderer/modules/service_worker/service_worker.h
index 720d7e4..077f6c3 100644
--- a/third_party/blink/renderer/modules/service_worker/service_worker.h
+++ b/third_party/blink/renderer/modules/service_worker/service_worker.h
@@ -47,6 +47,7 @@
 namespace blink {
 
 class PostMessageOptions;
+class ScriptObject;
 class ScriptState;
 class V8ServiceWorkerState;
 
@@ -77,7 +78,7 @@
 
   void postMessage(ScriptState*,
                    const ScriptValue& message,
-                   HeapVector<ScriptValue> transfer,
+                   HeapVector<ScriptObject> transfer,
                    ExceptionState&);
   void postMessage(ScriptState*,
                    const ScriptValue& message,
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_client.cc b/third_party/blink/renderer/modules/service_worker/service_worker_client.cc
index da3e7d65..c40ab66 100644
--- a/third_party/blink/renderer/modules/service_worker/service_worker_client.cc
+++ b/third_party/blink/renderer/modules/service_worker/service_worker_client.cc
@@ -80,7 +80,7 @@
 
 void ServiceWorkerClient::postMessage(ScriptState* script_state,
                                       const ScriptValue& message,
-                                      HeapVector<ScriptValue> transfer,
+                                      HeapVector<ScriptObject> transfer,
                                       ExceptionState& exception_state) {
   PostMessageOptions* options = PostMessageOptions::Create();
   if (!transfer.empty())
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_client.h b/third_party/blink/renderer/modules/service_worker/service_worker_client.h
index edb0900..c937d05 100644
--- a/third_party/blink/renderer/modules/service_worker/service_worker_client.h
+++ b/third_party/blink/renderer/modules/service_worker/service_worker_client.h
@@ -34,7 +34,7 @@
   V8ClientLifecycleState lifecycleState() const;
   void postMessage(ScriptState*,
                    const ScriptValue& message,
-                   HeapVector<ScriptValue> transfer,
+                   HeapVector<ScriptObject> transfer,
                    ExceptionState&);
   void postMessage(ScriptState*,
                    const ScriptValue& message,
diff --git a/third_party/blink/renderer/modules/shared_storage/shared_storage_worklet.cc b/third_party/blink/renderer/modules/shared_storage/shared_storage_worklet.cc
index e576d8e..567ee6c 100644
--- a/third_party/blink/renderer/modules/shared_storage/shared_storage_worklet.cc
+++ b/third_party/blink/renderer/modules/shared_storage/shared_storage_worklet.cc
@@ -48,7 +48,7 @@
   scoped_refptr<SerializedScriptValue> serialized_value =
       options->hasData()
           ? SerializedScriptValue::Serialize(
-                options->data().GetIsolate(), options->data().V8Value(),
+                execution_context.GetIsolate(), options->data().V8Object(),
                 SerializedScriptValue::SerializeOptions(), exception_state)
           : SerializedScriptValue::UndefinedValue();
   if (exception_state.HadException()) {
@@ -393,10 +393,8 @@
     HashMap<String, KURL> converted_reporting_metadata;
 
     if (url_with_metadata->hasReportingMetadata()) {
-      DCHECK(url_with_metadata->reportingMetadata().V8Value()->IsObject());
-
       v8::Local<v8::Object> obj =
-          url_with_metadata->reportingMetadata().V8Value().As<v8::Object>();
+          url_with_metadata->reportingMetadata().V8Object();
 
       v8::MaybeLocal<v8::Array> maybe_fields =
           obj->GetOwnPropertyNames(v8_context);
diff --git a/third_party/blink/renderer/modules/xr/xr_depth_information.cc b/third_party/blink/renderer/modules/xr/xr_depth_information.cc
index d7c46ae..e1a1b0a0 100644
--- a/third_party/blink/renderer/modules/xr/xr_depth_information.cc
+++ b/third_party/blink/renderer/modules/xr/xr_depth_information.cc
@@ -33,6 +33,7 @@
       size_(size),
       norm_depth_buffer_from_norm_view_(norm_depth_buffer_from_norm_view),
       raw_value_to_meters_(raw_value_to_meters) {
+  CHECK_NE(raw_value_to_meters_, 0);
   DVLOG(3) << __func__ << ": size_=" << size_.ToString()
            << ", norm_depth_buffer_from_norm_view_="
            << norm_depth_buffer_from_norm_view_.ToString()
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 5b26075..dfc030f 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
@@ -100,8 +100,6 @@
   sk_sp<SkTypeface> base_typeface_;
   size_t data_size_;
 
-  mutable bool may_be_icon_font_computed_ = false;
-  mutable bool may_be_icon_font_ = false;
   NO_UNIQUE_ADDRESS V8ExternalMemoryAccounterBase external_memory_accounter_;
 };
 
diff --git a/third_party/blink/renderer/platform/fonts/opentype/open_type_math_support_fuzzer.cc b/third_party/blink/renderer/platform/fonts/opentype/open_type_math_support_fuzzer.cc
index a3678de..ad992535 100644
--- a/third_party/blink/renderer/platform/fonts/opentype/open_type_math_support_fuzzer.cc
+++ b/third_party/blink/renderer/platform/fonts/opentype/open_type_math_support_fuzzer.cc
@@ -7,6 +7,7 @@
 #include <stddef.h>
 #include <stdint.h>
 
+#include "base/containers/span.h"
 #include "third_party/blink/renderer/platform/fonts/font.h"
 #include "third_party/blink/renderer/platform/fonts/opentype/open_type_math_test_fonts.h"
 #include "third_party/blink/renderer/platform/testing/blink_fuzzer_test_support.h"
@@ -20,9 +21,12 @@
   static BlinkFuzzerTestSupport test_support = BlinkFuzzerTestSupport();
   test::TaskEnvironment task_environment;
 
+  // SAFETY: Just wraps the data from libFuzzer in a span.
+  auto data_span = UNSAFE_BUFFERS(base::span(data, size));
+
   FontCachePurgePreventer font_cache_purge_preventer;
   FontDescription::VariantLigatures ligatures;
-  Font math = test::CreateTestFont(AtomicString("MathTestFont"), data, size,
+  Font math = test::CreateTestFont(AtomicString("MathTestFont"), data_span,
                                    1000, &ligatures);
 
   // HasMathData should be used by other API functions below for early return.
diff --git a/third_party/blink/renderer/platform/fonts/shaping/stretchy_operator_shaper_fuzzer.cc b/third_party/blink/renderer/platform/fonts/shaping/stretchy_operator_shaper_fuzzer.cc
index 8120139d..4486184 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/stretchy_operator_shaper_fuzzer.cc
+++ b/third_party/blink/renderer/platform/fonts/shaping/stretchy_operator_shaper_fuzzer.cc
@@ -7,6 +7,7 @@
 #include <stddef.h>
 #include <stdint.h>
 
+#include "base/containers/span.h"
 #include "third_party/blink/renderer/platform/fonts/font.h"
 #include "third_party/blink/renderer/platform/fonts/opentype/open_type_math_support.h"
 #include "third_party/blink/renderer/platform/fonts/opentype/open_type_math_test_fonts.h"
@@ -24,9 +25,12 @@
   static BlinkFuzzerTestSupport test_support = BlinkFuzzerTestSupport();
   test::TaskEnvironment task_environment;
 
+  // SAFETY: Just wraps the data from libFuzzer in a span.
+  auto data_span = UNSAFE_BUFFERS(base::span(data, size));
+
   FontCachePurgePreventer font_cache_purge_preventer;
   FontDescription::VariantLigatures ligatures;
-  Font math = test::CreateTestFont(AtomicString("MathTestFont"), data, size,
+  Font math = test::CreateTestFont(AtomicString("MathTestFont"), data_span,
                                    kFontSize, &ligatures);
 
   // TODO(crbug.com/1340884): This is only testing API for three characters.
diff --git a/third_party/blink/renderer/platform/graphics/accelerated_static_bitmap_image.cc b/third_party/blink/renderer/platform/graphics/accelerated_static_bitmap_image.cc
index 225bfdc7..797def8 100644
--- a/third_party/blink/renderer/platform/graphics/accelerated_static_bitmap_image.cc
+++ b/third_party/blink/renderer/platform/graphics/accelerated_static_bitmap_image.cc
@@ -72,15 +72,12 @@
     viz::ReleaseCallback release_callback,
     bool supports_display_compositing,
     bool is_overlay_candidate) {
-  const bool is_origin_top_left =
-      shared_image->surface_origin() == kTopLeft_GrSurfaceOrigin;
   return base::AdoptRef(new AcceleratedStaticBitmapImage(
       std::move(shared_image), sync_token, shared_image_texture_id,
-      sk_image_info, texture_target, is_origin_top_left,
-      supports_display_compositing, is_overlay_candidate,
-      ImageOrientationEnum::kDefault, std::move(context_provider_wrapper),
-      context_thread_ref, std::move(context_task_runner),
-      std::move(release_callback)));
+      sk_image_info, texture_target, supports_display_compositing,
+      is_overlay_candidate, ImageOrientationEnum::kDefault,
+      std::move(context_provider_wrapper), context_thread_ref,
+      std::move(context_task_runner), std::move(release_callback)));
 }
 
 // static
@@ -89,7 +86,6 @@
     const gpu::ExportedSharedImage& exported_shared_image,
     const gpu::SyncToken& sync_token,
     const SkImageInfo& sk_image_info,
-    bool is_origin_top_left,
     bool supports_display_compositing,
     bool is_overlay_candidate,
     base::OnceCallback<void(const gpu::SyncToken&)> external_callback) {
@@ -124,7 +120,7 @@
 
   return base::AdoptRef(new AcceleratedStaticBitmapImage(
       std::move(shared_image), sync_token, 0u, sk_image_info, texture_target,
-      is_origin_top_left, supports_display_compositing, is_overlay_candidate,
+      supports_display_compositing, is_overlay_candidate,
       ImageOrientationEnum::kDefault, shared_gpu_context,
       base::PlatformThreadRef(),
       ThreadScheduler::Current()->CleanupTaskRunner(),
@@ -137,7 +133,6 @@
     GLuint shared_image_texture_id,
     const SkImageInfo& sk_image_info,
     GLenum texture_target,
-    bool is_origin_top_left,
     bool supports_display_compositing,
     bool is_overlay_candidate,
     const ImageOrientation& orientation,
@@ -149,7 +144,6 @@
       shared_image_(std::move(shared_image)),
       sk_image_info_(sk_image_info),
       texture_target_(texture_target),
-      is_origin_top_left_(is_origin_top_left),
       supports_display_compositing_(supports_display_compositing),
       is_overlay_candidate_(is_overlay_candidate),
       context_provider_wrapper_(std::move(context_provider_wrapper)),
diff --git a/third_party/blink/renderer/platform/graphics/accelerated_static_bitmap_image.h b/third_party/blink/renderer/platform/graphics/accelerated_static_bitmap_image.h
index 9281e2d..f51b2263 100644
--- a/third_party/blink/renderer/platform/graphics/accelerated_static_bitmap_image.h
+++ b/third_party/blink/renderer/platform/graphics/accelerated_static_bitmap_image.h
@@ -79,7 +79,6 @@
       const gpu::ExportedSharedImage& exported_shared_image,
       const gpu::SyncToken& sync_token,
       const SkImageInfo& sk_image_info,
-      bool is_origin_top_left,
       bool supports_display_compositing,
       bool is_overlay_candidate,
       base::OnceCallback<void(const gpu::SyncToken&)> release_callback);
@@ -130,7 +129,9 @@
   gpu::MailboxHolder GetMailboxHolder() const final;
   scoped_refptr<gpu::ClientSharedImage> GetSharedImage() const final;
   gpu::SyncToken GetSyncToken() const final;
-  bool IsOriginTopLeft() const final { return is_origin_top_left_; }
+  bool IsOriginTopLeft() const final {
+    return shared_image_->surface_origin() == kTopLeft_GrSurfaceOrigin;
+  }
   bool SupportsDisplayCompositing() const final {
     return supports_display_compositing_;
   }
@@ -157,7 +158,6 @@
       GLuint shared_image_texture_id,
       const SkImageInfo& sk_image_info,
       GLenum texture_target,
-      bool is_origin_top_left,
       bool supports_display_compositing,
       bool is_overlay_candidate,
       const ImageOrientation& orientation,
@@ -172,7 +172,6 @@
   scoped_refptr<gpu::ClientSharedImage> shared_image_;
   const SkImageInfo sk_image_info_;
   const GLenum texture_target_;
-  const bool is_origin_top_left_ : 1;
   const bool supports_display_compositing_ : 1;
   const bool is_overlay_candidate_ : 1;
 
diff --git a/third_party/blink/renderer/platform/graphics/bitmap_image_test.cc b/third_party/blink/renderer/platform/graphics/bitmap_image_test.cc
index d6b5ed996..2c861c5 100644
--- a/third_party/blink/renderer/platform/graphics/bitmap_image_test.cc
+++ b/third_party/blink/renderer/platform/graphics/bitmap_image_test.cc
@@ -367,8 +367,8 @@
 
   // Create a new buffer to partially supply the data.
   scoped_refptr<SharedBuffer> partial_buffer = SharedBuffer::Create();
-  partial_buffer->Append(image_data_binary.data(),
-                         image_data_binary.size() - 4);
+  partial_buffer->Append(
+      base::span(image_data_binary).first(image_data_binary.size() - 4));
 
   // First partial load. Repeated calls for a PaintImage should have the same
   // image until the data changes or the decoded data is destroyed.
@@ -659,7 +659,7 @@
   repetition_count_ = kAnimationLoopOnce;
   frame_count_ = 4u;
   last_frame_complete_ = false;
-  image_->SetData(SharedBuffer::Create("data", sizeof("data")), false);
+  image_->SetData(SharedBuffer::Create(base::span_from_cstring("data")), false);
 
   PaintImage image = image_->PaintImageForCurrentFrame();
   ASSERT_TRUE(image);
@@ -681,7 +681,7 @@
   repetition_count_ = kAnimationLoopInfinite;
   frame_count_ = 6u;
   last_frame_complete_ = true;
-  image_->SetData(SharedBuffer::Create("data", sizeof("data")), true);
+  image_->SetData(SharedBuffer::Create(base::span_from_cstring("data")), true);
 
   image = image_->PaintImageForCurrentFrame();
   ASSERT_TRUE(image);
@@ -703,7 +703,7 @@
   repetition_count_ = kAnimationNone;
   frame_count_ = 4u;
   last_frame_complete_ = true;
-  image_->SetData(SharedBuffer::Create("data", sizeof("data")), false);
+  image_->SetData(SharedBuffer::Create(base::span_from_cstring("data")), false);
 
   PaintImage image = image_->PaintImageForCurrentFrame();
   EXPECT_EQ(image.repetition_count(), repetition_count_);
@@ -734,7 +734,7 @@
   repetition_count_ = kAnimationLoopOnce;
   frame_count_ = 4u;
   last_frame_complete_ = true;
-  image_->SetData(SharedBuffer::Create("data", sizeof("data")), false);
+  image_->SetData(SharedBuffer::Create(base::span_from_cstring("data")), false);
 
   PaintImage image = image_->PaintImageForCurrentFrame();
   EXPECT_EQ(image.repetition_count(), repetition_count_);
@@ -766,7 +766,7 @@
   repetition_count_ = kAnimationLoopInfinite;
   frame_count_ = 4u;
   last_frame_complete_ = true;
-  image_->SetData(SharedBuffer::Create("data", sizeof("data")), false);
+  image_->SetData(SharedBuffer::Create(base::span_from_cstring("data")), false);
 
   PaintImage image = image_->PaintImageForCurrentFrame();
   EXPECT_EQ(image.repetition_count(), repetition_count_);
@@ -796,7 +796,7 @@
   repetition_count_ = kAnimationLoopInfinite;
   frame_count_ = 4u;
   last_frame_complete_ = true;
-  image_->SetData(SharedBuffer::Create("data", sizeof("data")), false);
+  image_->SetData(SharedBuffer::Create(base::span_from_cstring("data")), false);
 
   PaintImage image = image_->PaintImageForCurrentFrame();
   image_->ResetAnimation();
@@ -809,7 +809,7 @@
   repetition_count_ = kAnimationLoopInfinite;
   frame_count_ = 5;
   last_frame_complete_ = true;
-  image_->SetData(SharedBuffer::Create("data", sizeof("data")), false);
+  image_->SetData(SharedBuffer::Create(base::span_from_cstring("data")), false);
 
   // PaintImage for the original image is animated.
   EXPECT_TRUE(image_->PaintImageForCurrentFrame().ShouldAnimate());
diff --git a/third_party/blink/renderer/platform/graphics/deferred_image_decoder_test.cc b/third_party/blink/renderer/platform/graphics/deferred_image_decoder_test.cc
index 65ff4b1..f58f850d7b 100644
--- a/third_party/blink/renderer/platform/graphics/deferred_image_decoder_test.cc
+++ b/third_party/blink/renderer/platform/graphics/deferred_image_decoder_test.cc
@@ -87,7 +87,7 @@
   void SetUp() override {
     paint_image_id_ = PaintImage::GetNextId();
     ImageDecodingStore::Instance().SetCacheLimitInBytes(1024 * 1024);
-    data_ = SharedBuffer::Create(kWhitePNG, sizeof(kWhitePNG));
+    data_ = SharedBuffer::Create(kWhitePNG);
     original_data_ = data_->CopyAs<Vector<char>>();
     frame_count_ = 1;
     auto decoder = std::make_unique<MockImageDecoder>(this);
@@ -181,8 +181,8 @@
 }
 
 TEST_F(DeferredImageDecoderTest, drawIntoPaintRecordProgressive) {
-  scoped_refptr<SharedBuffer> partial_data =
-      SharedBuffer::Create(original_data_.data(), original_data_.size() - 10);
+  scoped_refptr<SharedBuffer> partial_data = SharedBuffer::Create(
+      base::span(original_data_).first(original_data_.size() - 10));
 
   // Received only half the file.
   lazy_decoder_->SetData(partial_data, false /* all_data_received */);
@@ -217,8 +217,8 @@
 TEST_F(DeferredImageDecoderTest, allDataReceivedPriorToDecodeIncrementally) {
   // The image is received in two parts, but a PaintImageGenerator is created
   // only after all the data is received.
-  scoped_refptr<SharedBuffer> partial_data =
-      SharedBuffer::Create(original_data_.data(), original_data_.size() - 10);
+  scoped_refptr<SharedBuffer> partial_data = SharedBuffer::Create(
+      base::span(original_data_).first(original_data_.size() - 10));
   lazy_decoder_->SetData(partial_data, false /* all_data_received */);
   lazy_decoder_->SetData(data_, true /* all_data_received */);
   PaintImage image = CreatePaintImage();
@@ -232,8 +232,8 @@
   // The image is received in two parts, and a PaintImageGenerator is created
   // for each one. In real usage, it's likely that the software image decoder
   // will start working with partial data.
-  scoped_refptr<SharedBuffer> partial_data =
-      SharedBuffer::Create(original_data_.data(), original_data_.size() - 10);
+  scoped_refptr<SharedBuffer> partial_data = SharedBuffer::Create(
+      base::span(original_data_).first(original_data_.size() - 10));
   lazy_decoder_->SetData(partial_data, false /* all_data_received */);
   PaintImage image =
       CreatePaintImage(PaintImage::CompletionState::kPartiallyDone);
@@ -296,7 +296,7 @@
   EXPECT_TRUE(actual_decoder_);
 
   status_ = ImageFrame::kFrameComplete;
-  data_->Append(" ", 1u);
+  data_->Append(base::span_from_cstring(" "));
   lazy_decoder_->SetData(data_, true /* all_data_received */);
   EXPECT_FALSE(actual_decoder_);
   EXPECT_TRUE(lazy_decoder_->FrameIsReceivedAtIndex(0));
@@ -322,7 +322,7 @@
   frame_count_ = 2;
   frame_duration_ = base::Milliseconds(20);
   status_ = ImageFrame::kFrameComplete;
-  data_->Append(" ", 1u);
+  data_->Append(base::span_from_cstring(" "));
   lazy_decoder_->SetData(data_, false /* all_data_received */);
 
   image = CreatePaintImage();
@@ -381,7 +381,7 @@
 TEST_F(DeferredImageDecoderTest, frameOpacity) {
   for (bool test_gif : {false, true}) {
     if (test_gif)
-      data_ = SharedBuffer::Create(kWhiteGIF, sizeof(kWhiteGIF));
+      data_ = SharedBuffer::Create(kWhiteGIF);
 
     std::unique_ptr<DeferredImageDecoder> decoder =
         DeferredImageDecoder::Create(data_, true,
@@ -419,7 +419,7 @@
 TEST_F(DeferredImageDecoderTest, data) {
   Vector<char> data_binary = data_->CopyAs<Vector<char>>();
   scoped_refptr<SharedBuffer> original_buffer =
-      SharedBuffer::Create(data_binary.data(), data_binary.size());
+      SharedBuffer::Create(data_binary);
   EXPECT_EQ(original_buffer->size(), data_binary.size());
   lazy_decoder_->SetData(original_buffer, false /* all_data_received */);
   scoped_refptr<SharedBuffer> new_buffer = lazy_decoder_->Data();
diff --git a/third_party/blink/renderer/platform/graphics/image_frame_generator_test.cc b/third_party/blink/renderer/platform/graphics/image_frame_generator_test.cc
index 7cad220..07d3415 100644
--- a/third_party/blink/renderer/platform/graphics/image_frame_generator_test.cc
+++ b/third_party/blink/renderer/platform/graphics/image_frame_generator_test.cc
@@ -107,7 +107,7 @@
         MockImageDecoderFactory::Create(this, FullSize()));
   }
 
-  void AddNewData() { data_->Append("g", 1u); }
+  void AddNewData() { data_->Append(base::span_from_cstring("g")); }
 
   void SetFrameStatus(ImageFrame::Status status) {
     status_ = next_frame_status_ = status;
diff --git a/third_party/blink/renderer/platform/graphics/parkable_image_segment_reader_test.cc b/third_party/blink/renderer/platform/graphics/parkable_image_segment_reader_test.cc
index 703ae5ac..03e043748 100644
--- a/third_party/blink/renderer/platform/graphics/parkable_image_segment_reader_test.cc
+++ b/third_party/blink/renderer/platform/graphics/parkable_image_segment_reader_test.cc
@@ -41,7 +41,9 @@
   auto pi = ParkableImage::Create();
   ASSERT_EQ(pi->size(), 0u);  // ParkableImage is empty when created.
 
-  pi->Append(WTF::SharedBuffer::Create(g_abc, sizeof(g_abc)).get(), 0);
+  pi->Append(
+      WTF::SharedBuffer::Create(base::span_with_nul_from_cstring(g_abc)).get(),
+      0);
   ASSERT_EQ(pi->size(),
             sizeof(g_abc));  // ParkableImage is larger after Append.
 
@@ -58,7 +60,11 @@
   ASSERT_EQ(pi->size(), 0u);  // ParkableImage is empty when created.
 
   const size_t shared_buffer_size = sizeof(g_123) / 2;
-  pi->Append(WTF::SharedBuffer::Create(g_123, shared_buffer_size).get(), 0);
+  pi->Append(
+      WTF::SharedBuffer::Create(
+          base::span_with_nul_from_cstring(g_123).first(shared_buffer_size))
+          .get(),
+      0);
   ASSERT_EQ(pi->size(),
             shared_buffer_size);  // ParkableImage is larger after Append.
 
@@ -66,7 +72,9 @@
   // ParkableImageSegmentReader is same size as ParkableImage when created.
   EXPECT_EQ(segment_reader->size(), shared_buffer_size);
 
-  pi->Append(WTF::SharedBuffer::Create(g_123, sizeof(g_123)).get(), pi->size());
+  pi->Append(
+      WTF::SharedBuffer::Create(base::span_with_nul_from_cstring(g_123)).get(),
+      pi->size());
   ASSERT_EQ(pi->size(),
             sizeof(g_123));  // ParkableImage is larger after Append.
 
@@ -82,8 +90,8 @@
   auto shared_buffer = SharedBuffer::Create();
   auto parkable_image = ParkableImage::Create(kDataSize);
   for (size_t pos = 0; pos < kDataSize; pos += 4096) {
-    shared_buffer->Append(data + pos,
-                          std::min(static_cast<size_t>(4096), kDataSize - pos));
+    shared_buffer->Append(base::span(data).subspan(
+        pos, std::min(static_cast<size_t>(4096), kDataSize - pos)));
     parkable_image->Append(shared_buffer.get(), parkable_image->size());
   }
 
@@ -113,8 +121,8 @@
   auto shared_buffer = SharedBuffer::Create();
   auto parkable_image = ParkableImage::Create(kDataSize);
   for (size_t pos = 0; pos < kDataSize; pos += 4096) {
-    shared_buffer->Append(data + pos,
-                          std::min(static_cast<size_t>(4096), kDataSize - pos));
+    shared_buffer->Append(base::span(data).subspan(
+        pos, std::min(static_cast<size_t>(4096), kDataSize - pos)));
     parkable_image->Append(shared_buffer.get(), parkable_image->size());
   }
 
@@ -144,7 +152,7 @@
 
   auto shared_buffer = SharedBuffer::Create();
   auto parkable_image = ParkableImage::Create(kDataSize);
-  shared_buffer->Append(data, kDataSize);
+  shared_buffer->Append(base::span(data));
   parkable_image->Append(shared_buffer.get(), parkable_image->size());
 
   auto segment_reader = parkable_image->CreateSegmentReader();
diff --git a/third_party/blink/renderer/platform/graphics/parkable_image_test.cc b/third_party/blink/renderer/platform/graphics/parkable_image_test.cc
index 7d3c45d..190d0a9 100644
--- a/third_party/blink/renderer/platform/graphics/parkable_image_test.cc
+++ b/third_party/blink/renderer/platform/graphics/parkable_image_test.cc
@@ -316,7 +316,7 @@
 
   EXPECT_TRUE(IsSameContent(pi, data));
 
-  sb->Append(data.data(), kDataSize);
+  sb->Append(data);
   ASSERT_EQ(sb->size(), 2 * kDataSize);
 
   pi->Append(sb.get(), pi->size());
diff --git a/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder_test.cc b/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder_test.cc
index 2be7f24..f95b9f4 100644
--- a/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder_test.cc
+++ b/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder_test.cc
@@ -992,7 +992,7 @@
   std::unique_ptr<ImageDecoder> decoder = CreateAVIFDecoder();
   constexpr char kHeader[] = {0x00, 0x00, 0x00, 0x20, 0x66, 0x74, 0x79, 0x70};
   auto buffer = SharedBuffer::Create();
-  buffer->Append(kHeader, std::size(kHeader));
+  buffer->Append(kHeader);
   decoder->SetData(std::move(buffer), false);
   EXPECT_FALSE(decoder->ImageHasBothStillAndAnimatedSubImages());
 }
@@ -1257,8 +1257,8 @@
   const std::string image = "small-with-gainmap-iso.avif";
   const Vector<char> data_vector =
       ReadFile("web_tests/images/resources/avif", image.c_str());
-  scoped_refptr<SharedBuffer> half_data =
-      SharedBuffer::Create(data_vector.data(), data_vector.size() / 2);
+  scoped_refptr<SharedBuffer> half_data = SharedBuffer::Create(
+      base::span(data_vector).first(data_vector.size() / 2));
 
   std::unique_ptr<ImageDecoder> decoder = CreateAVIFDecoder();
   decoder->SetData(half_data, true);
@@ -1345,7 +1345,7 @@
 
   Vector<char> data =
       ReadFile("/images/resources/avif/red-limited-range-420-8bpc.avif");
-  stream_buffer->Append(data.data(), data.size());
+  stream_buffer->Append(data);
   EXPECT_EQ(stream_buffer->size(), 318u);
   decoder->SetData(stream_buffer, /*all_data_received=*/false);
   // All bytes are appended so we should have size, even though we pass
@@ -1374,7 +1374,7 @@
   // This image has three layers. The first layer is 8299 bytes. Because of
   // image headers and other overhead, if we pass exactly 8299 bytes to the
   // decoder, the decoder does not have enough data to decode the first layer.
-  stream_buffer->Append(data.data(), 8299u);
+  stream_buffer->Append(base::span(data).first(8299u));
   decoder->SetData(stream_buffer, /*all_data_received=*/false);
   EXPECT_TRUE(decoder->IsSizeAvailable());
   EXPECT_FALSE(decoder->Failed());
@@ -1389,7 +1389,7 @@
   // An additional 301 bytes are enough data for the decoder to decode the first
   // layer. With progressive decoding, the frame buffer status will transition
   // to ImageFrame::kFramePartial.
-  stream_buffer->Append(data.data() + 8299u, 301u);
+  stream_buffer->Append(base::span(data).subspan(8299u, 301u));
   decoder->SetData(stream_buffer, /*all_data_received=*/false);
   EXPECT_FALSE(decoder->Failed());
   frame = decoder->DecodeFrameBufferAtIndex(0);
@@ -1403,7 +1403,7 @@
               testing::ContainerEq(expected_counts));
 
   // Now send the rest of the data.
-  stream_buffer->Append(data.data() + 8299u + 301u, 62344u);
+  stream_buffer->Append(base::span(data).subspan(8299u + 301u, 62344u));
   decoder->SetData(stream_buffer, /*all_data_received=*/true);
   EXPECT_FALSE(decoder->Failed());
   frame = decoder->DecodeFrameBufferAtIndex(0);
@@ -1460,9 +1460,10 @@
       // Decoding all bytes gives all 13 tile rows.
       {data.size(), ImageFrame::kFrameComplete, 13 * 64}};
   size_t previous_size = 0;
+  auto data_span = base::span(data);
   for (const Step& step : steps) {
-    stream_buffer->Append(data.data() + previous_size,
-                          step.size - previous_size);
+    stream_buffer->Append(
+        data_span.subspan(previous_size, step.size - previous_size));
     decoder->SetData(stream_buffer, step.status == ImageFrame::kFrameComplete);
 
     EXPECT_EQ(decoder->FrameCount(), 1u);
diff --git a/third_party/blink/renderer/platform/image-decoders/avif/crabbyavif_image_decoder_test.cc b/third_party/blink/renderer/platform/image-decoders/avif/crabbyavif_image_decoder_test.cc
index 1f42e0b..22ed29f 100644
--- a/third_party/blink/renderer/platform/image-decoders/avif/crabbyavif_image_decoder_test.cc
+++ b/third_party/blink/renderer/platform/image-decoders/avif/crabbyavif_image_decoder_test.cc
@@ -994,7 +994,7 @@
   std::unique_ptr<ImageDecoder> decoder = CreateAVIFDecoder();
   constexpr char kHeader[] = {0x00, 0x00, 0x00, 0x20, 0x66, 0x74, 0x79, 0x70};
   auto buffer = SharedBuffer::Create();
-  buffer->Append(kHeader, std::size(kHeader));
+  buffer->Append(kHeader);
   decoder->SetData(std::move(buffer), false);
   EXPECT_FALSE(decoder->ImageHasBothStillAndAnimatedSubImages());
 }
@@ -1259,8 +1259,8 @@
   const std::string image = "small-with-gainmap-iso.avif";
   const Vector<char> data_vector =
       ReadFile("web_tests/images/resources/avif", image.c_str());
-  scoped_refptr<SharedBuffer> half_data =
-      SharedBuffer::Create(data_vector.data(), data_vector.size() / 2);
+  scoped_refptr<SharedBuffer> half_data = SharedBuffer::Create(
+      base::span(data_vector).first(data_vector.size() / 2));
 
   std::unique_ptr<ImageDecoder> decoder = CreateAVIFDecoder();
   decoder->SetData(half_data, true);
@@ -1347,7 +1347,7 @@
 
   Vector<char> data =
       ReadFile("/images/resources/avif/red-limited-range-420-8bpc.avif");
-  stream_buffer->Append(data.data(), data.size());
+  stream_buffer->Append(data);
   EXPECT_EQ(stream_buffer->size(), 318u);
   decoder->SetData(stream_buffer, /*all_data_received=*/false);
   // All bytes are appended so we should have size, even though we pass
@@ -1376,7 +1376,7 @@
   // This image has three layers. The first layer is 8299 bytes. Because of
   // image headers and other overhead, if we pass exactly 8299 bytes to the
   // decoder, the decoder does not have enough data to decode the first layer.
-  stream_buffer->Append(data.data(), 8299u);
+  stream_buffer->Append(base::span(data).first(8299u));
   decoder->SetData(stream_buffer, /*all_data_received=*/false);
   EXPECT_TRUE(decoder->IsSizeAvailable());
   EXPECT_FALSE(decoder->Failed());
@@ -1391,7 +1391,7 @@
   // An additional 301 bytes are enough data for the decoder to decode the first
   // layer. With progressive decoding, the frame buffer status will transition
   // to ImageFrame::kFramePartial.
-  stream_buffer->Append(data.data() + 8299u, 301u);
+  stream_buffer->Append(base::span(data).subspan(8299u, 301u));
   decoder->SetData(stream_buffer, /*all_data_received=*/false);
   EXPECT_FALSE(decoder->Failed());
   frame = decoder->DecodeFrameBufferAtIndex(0);
@@ -1405,7 +1405,7 @@
               testing::ContainerEq(expected_counts));
 
   // Now send the rest of the data.
-  stream_buffer->Append(data.data() + 8299u + 301u, 62344u);
+  stream_buffer->Append(base::span(data).subspan(8299u + 301u, 62344u));
   decoder->SetData(stream_buffer, /*all_data_received=*/true);
   EXPECT_FALSE(decoder->Failed());
   frame = decoder->DecodeFrameBufferAtIndex(0);
@@ -1463,8 +1463,8 @@
       {data.size(), ImageFrame::kFrameComplete, 13 * 64}};
   size_t previous_size = 0;
   for (const Step& step : steps) {
-    stream_buffer->Append(data.data() + previous_size,
-                          step.size - previous_size);
+    stream_buffer->Append(
+        base::span(data).subspan(previous_size, step.size - previous_size));
     decoder->SetData(stream_buffer, step.status == ImageFrame::kFrameComplete);
 
     EXPECT_EQ(decoder->FrameCount(), 1u);
diff --git a/third_party/blink/renderer/platform/image-decoders/fast_shared_buffer_reader_test.cc b/third_party/blink/renderer/platform/image-decoders/fast_shared_buffer_reader_test.cc
index fbc6dc06..fe20b02 100644
--- a/third_party/blink/renderer/platform/image-decoders/fast_shared_buffer_reader_test.cc
+++ b/third_party/blink/renderer/platform/image-decoders/fast_shared_buffer_reader_test.cc
@@ -53,7 +53,7 @@
   char reference_data[kDefaultTestSize];
   PrepareReferenceData(reference_data);
   scoped_refptr<SharedBuffer> data = SharedBuffer::Create();
-  data->Append(reference_data, sizeof(reference_data));
+  data->Append(reference_data);
 
   SegmentReaders reader_struct(data);
   for (auto segment_reader : reader_struct.segment_readers) {
@@ -76,7 +76,7 @@
   char reference_data[kDefaultTestSize];
   PrepareReferenceData(reference_data);
   scoped_refptr<SharedBuffer> data = SharedBuffer::Create();
-  data->Append(reference_data, sizeof(reference_data));
+  data->Append(reference_data);
 
   SegmentReaders reader_struct(data);
   for (auto segment_reader : reader_struct.segment_readers) {
@@ -101,7 +101,7 @@
   char reference_data[kDefaultTestSize];
   PrepareReferenceData(reference_data);
   scoped_refptr<SharedBuffer> data = SharedBuffer::Create();
-  data->Append(reference_data, sizeof(reference_data));
+  data->Append(reference_data);
 
   SegmentReaders reader_struct(data);
   for (auto segment_reader : reader_struct.segment_readers) {
@@ -119,7 +119,7 @@
   char reference_data[kDataSize];
   PrepareReferenceData(reference_data);
   scoped_refptr<SharedBuffer> data = SharedBuffer::Create();
-  data->Append(reference_data, kDataSize);
+  data->Append(reference_data);
 
   SegmentReaders reader_struct(data);
   for (auto segment_reader : reader_struct.segment_readers) {
diff --git a/third_party/blink/renderer/platform/image-decoders/gif/gif_image_decoder_test.cc b/third_party/blink/renderer/platform/image-decoders/gif/gif_image_decoder_test.cc
index 6e38c2d4..354b383 100644
--- a/third_party/blink/renderer/platform/image-decoders/gif/gif_image_decoder_test.cc
+++ b/third_party/blink/renderer/platform/image-decoders/gif/gif_image_decoder_test.cc
@@ -119,7 +119,7 @@
   // Pass data to decoder byte by byte.
   for (size_t length = 1; length <= data.size(); ++length) {
     scoped_refptr<SharedBuffer> temp_data =
-        SharedBuffer::Create(data.data(), length);
+        SharedBuffer::Create(base::span(data).first(length));
     decoder->SetData(temp_data.get(), length == data.size());
 
     EXPECT_LE(frame_count, decoder->FrameCount());
@@ -164,7 +164,7 @@
 
   ASSERT_GE(data.size(), 10u);
   scoped_refptr<SharedBuffer> temp_data =
-      SharedBuffer::Create(data.data(), data.size() - 10);
+      SharedBuffer::Create(base::span(data).first(data.size() - 10));
   decoder->SetData(temp_data.get(), true);
 
   EXPECT_EQ(2u, decoder->FrameCount());
@@ -199,7 +199,7 @@
 
   ASSERT_GE(data.size(), 10u);
   scoped_refptr<SharedBuffer> temp_data =
-      SharedBuffer::Create(data.data(), data.size() - 10);
+      SharedBuffer::Create(base::span(data).first(data.size() - 10));
   decoder->SetData(temp_data.get(), false);
 
   EXPECT_EQ(2u, decoder->FrameCount());
@@ -324,7 +324,7 @@
   for (size_t i = 1; i <= full_data.size(); ++i) {
     decoder = CreateDecoder();
     scoped_refptr<SharedBuffer> data =
-        SharedBuffer::Create(full_data.data(), i);
+        SharedBuffer::Create(base::span(full_data).first(i));
     decoder->SetData(data.get(), i == full_data.size());
 
     if (decoder->IsSizeAvailable() && !frame_size.width() &&
@@ -360,7 +360,7 @@
   const size_t kTruncatedSize = 60;
   ASSERT_TRUE(kTruncatedSize < full_data.size());
   scoped_refptr<SharedBuffer> partial_data =
-      SharedBuffer::Create(full_data.data(), kTruncatedSize);
+      SharedBuffer::Create(base::span(full_data).first(kTruncatedSize));
 
   std::unique_ptr<ImageDecoder> decoder = std::make_unique<GIFImageDecoder>(
       ImageDecoder::kAlphaPremultiplied, ColorBehavior::kTransformToSRGB,
@@ -383,7 +383,7 @@
   const size_t kTruncateSize = 800;
   ASSERT_TRUE(kTruncateSize < full_data.size());
   scoped_refptr<SharedBuffer> partial_data =
-      SharedBuffer::Create(full_data.data(), kTruncateSize);
+      SharedBuffer::Create(base::span(full_data).first(kTruncateSize));
 
   std::unique_ptr<ImageDecoder> premul_decoder =
       std::make_unique<GIFImageDecoder>(ImageDecoder::kAlphaPremultiplied,
@@ -470,10 +470,9 @@
   // Modify data to have an error in frame 2.
   const size_t kErrorOffset = 15302u;
   scoped_refptr<SharedBuffer> modified_data =
-      SharedBuffer::Create(data.data(), kErrorOffset);
-  modified_data->Append("A", 1u);
-  modified_data->Append(data.data() + kErrorOffset + 1,
-                        data.size() - kErrorOffset - 1);
+      SharedBuffer::Create(base::span(data).first(kErrorOffset));
+  modified_data->Append(base::span_from_cstring("A"));
+  modified_data->Append(base::span(data).subspan(kErrorOffset + 1));
   {
     auto decoder = CreateDecoder();
     decoder->SetData(modified_data.get(), true);
diff --git a/third_party/blink/renderer/platform/image-decoders/ico/ico_image_decoder_test.cc b/third_party/blink/renderer/platform/image-decoders/ico/ico_image_decoder_test.cc
index 3754ac8..68ca14a 100644
--- a/third_party/blink/renderer/platform/image-decoders/ico/ico_image_decoder_test.cc
+++ b/third_party/blink/renderer/platform/image-decoders/ico/ico_image_decoder_test.cc
@@ -31,7 +31,7 @@
   ASSERT_FALSE(data.empty());
 
   scoped_refptr<SharedBuffer> truncated_data =
-      SharedBuffer::Create(data.data(), data.size() / 2);
+      SharedBuffer::Create(base::span(data).first(data.size() / 2));
   auto decoder = CreateICODecoder();
 
   decoder->SetData(truncated_data.get(), false);
@@ -51,11 +51,10 @@
   constexpr size_t kCrcOffset = 22 + 29;
   constexpr size_t kCrcSize = 4;
   scoped_refptr<SharedBuffer> modified_data =
-      SharedBuffer::Create(data.data(), kCrcOffset);
+      SharedBuffer::Create(base::span(data).first(kCrcOffset));
   Vector<char> bad_crc(kCrcSize, 0);
   modified_data->Append(bad_crc);
-  modified_data->Append(data.data() + kCrcOffset + kCrcSize,
-                        data.size() - kCrcOffset - kCrcSize);
+  modified_data->Append(base::span(data).subspan(kCrcOffset + kCrcSize));
 
   auto decoder = CreateICODecoder();
   decoder->SetData(modified_data.get(), true);
@@ -94,7 +93,7 @@
   ASSERT_LT(kSizeOfBadBlock, ico_file_data.size());
 
   scoped_refptr<SharedBuffer> truncated_data =
-      SharedBuffer::Create(ico_file_data.data(), kSizeOfBadBlock);
+      SharedBuffer::Create(base::span(ico_file_data).first(kSizeOfBadBlock));
   auto decoder = CreateICODecoder();
 
   decoder->SetData(truncated_data.get(), false);
diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder_base_test.cc b/third_party/blink/renderer/platform/image-decoders/image_decoder_base_test.cc
index f2567d7..243d7ee 100644
--- a/third_party/blink/renderer/platform/image-decoders/image_decoder_base_test.cc
+++ b/third_party/blink/renderer/platform/image-decoders/image_decoder_base_test.cc
@@ -187,14 +187,13 @@
   EXPECT_TRUE(image_contents.size());
   std::unique_ptr<ImageDecoder> decoder(CreateImageDecoder());
   EXPECT_FALSE(decoder->Failed());
-  const char* data_ptr = reinterpret_cast<const char*>(&(image_contents.at(0)));
 
 #if !defined(CALCULATE_MD5_SUMS)
   // Test chunking file into half.
   const size_t partial_size = image_contents.size() / 2;
 
   scoped_refptr<SharedBuffer> partial_data =
-      SharedBuffer::Create(data_ptr, partial_size);
+      SharedBuffer::Create(base::span(image_contents).first(partial_size));
 
   // Make Sure the image decoder doesn't fail when we ask for the frame
   // buffer for this partial image.
@@ -206,8 +205,7 @@
 #endif
 
   // Make sure passing the complete image results in successful decoding.
-  scoped_refptr<SharedBuffer> data =
-      SharedBuffer::Create(data_ptr, image_contents.size());
+  scoped_refptr<SharedBuffer> data = SharedBuffer::Create(image_contents);
   decoder->SetData(data, true);
   if (ShouldImageFail(image_path)) {
     blink::ImageFrame* const frame_buffer =
diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder_test.cc b/third_party/blink/renderer/platform/image-decoders/image_decoder_test.cc
index e7f6bbd8..bb8d962 100644
--- a/third_party/blink/renderer/platform/image-decoders/image_decoder_test.cc
+++ b/third_party/blink/renderer/platform/image-decoders/image_decoder_test.cc
@@ -367,13 +367,14 @@
       'm', 'd', 'a', 't'       // unsigned int(32) type = boxtype;
   };
 
-  scoped_refptr<SharedBuffer> buffer = SharedBuffer::Create<size_t>(kData, 8);
+  scoped_refptr<SharedBuffer> buffer =
+      SharedBuffer::Create(base::span(kData).first(8u));
   EXPECT_FALSE(ImageDecoder::HasSufficientDataToSniffMimeType(*buffer));
   EXPECT_EQ(ImageDecoder::SniffMimeType(buffer), String());
-  buffer->Append<size_t>(kData + 8, 8);
+  buffer->Append(base::span(kData).subspan(8u, 8u));
   EXPECT_FALSE(ImageDecoder::HasSufficientDataToSniffMimeType(*buffer));
   EXPECT_EQ(ImageDecoder::SniffMimeType(buffer), String());
-  buffer->Append<size_t>(kData + 16, sizeof(kData) - 16);
+  buffer->Append(base::span(kData).subspan(16u));
   EXPECT_TRUE(ImageDecoder::HasSufficientDataToSniffMimeType(*buffer));
   EXPECT_EQ(ImageDecoder::SniffMimeType(buffer), "image/avif");
 }
diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder_test_helpers.cc b/third_party/blink/renderer/platform/image-decoders/image_decoder_test_helpers.cc
index 44d6a18b..0d78a8a 100644
--- a/third_party/blink/renderer/platform/image-decoders/image_decoder_test_helpers.cc
+++ b/third_party/blink/renderer/platform/image-decoders/image_decoder_test_helpers.cc
@@ -93,12 +93,14 @@
   // Pass data to decoder byte by byte.
   scoped_refptr<SharedBuffer> source_data[2] = {SharedBuffer::Create(),
                                                 SharedBuffer::Create()};
-  const char* source = data.data();
+  base::span<const char> source(data);
 
   for (size_t length = 1; length <= data.size() && !decoder->Failed();
        ++length) {
-    source_data[0]->Append(source, 1u);
-    source_data[1]->Append(source++, 1u);
+    auto [single_byte, rest] = source.split_at(1u);
+    source = rest;
+    source_data[0]->Append(single_byte);
+    source_data[1]->Append(single_byte);
     // Alternate the buffers to cover the JPEGImageDecoder::OnSetData restart
     // code.
     decoder->SetData(source_data[length & 1].get(), length == data.size());
@@ -222,9 +224,11 @@
   // offset is reached. Also check other decoder state.
   scoped_refptr<SharedBuffer> temp_data = SharedBuffer::Create();
   const Vector<char> source_buffer = data->CopyAs<Vector<char>>();
-  const char* source = source_buffer.data();
+  base::span<const char> source(source_buffer);
   for (size_t length = 1; length <= frame_offset; ++length) {
-    temp_data->Append(source++, 1u);
+    auto [single_byte, rest] = source.split_at(1u);
+    source = rest;
+    temp_data->Append(single_byte);
     decoder->SetData(temp_data.get(), false);
 
     if (length < frame_offset) {
@@ -259,10 +263,12 @@
 
   // Compute hashes when the file is truncated.
   scoped_refptr<SharedBuffer> data = SharedBuffer::Create();
-  const char* source = full_data.data();
+  base::span<const char> source(full_data);
   for (size_t i = 1; i <= full_length; i += increment) {
     decoder = create_decoder();
-    data->Append(source++, 1u);
+    auto [single_byte, rest] = source.split_at(1u);
+    source = rest;
+    data->Append(single_byte);
     decoder->SetData(data.get(), i == full_length);
     ImageFrame* frame = decoder->DecodeFrameBufferAtIndex(0);
     if (!frame) {
@@ -275,9 +281,12 @@
   // Compute hashes when the file is progressively decoded.
   decoder = create_decoder();
   data = SharedBuffer::Create();
-  source = full_data.data();
+  source = base::span(full_data);
+
   for (size_t i = 1; i <= full_length; i += increment) {
-    data->Append(source++, 1u);
+    auto [single_byte, rest] = source.split_at(1u);
+    source = rest;
+    data->Append(single_byte);
     decoder->SetData(data.get(), i == full_length);
     ImageFrame* frame = decoder->DecodeFrameBufferAtIndex(0);
     if (!frame) {
@@ -301,9 +310,11 @@
   // Give it data that is enough to parse but not decode in order to check the
   // status of RequiredPreviousFrameIndex before decoding.
   scoped_refptr<SharedBuffer> data = SharedBuffer::Create();
-  const char* source = full_data.data();
+  base::span<const char> source(full_data);
   do {
-    data->Append(source++, 1u);
+    auto [single_byte, rest] = source.split_at(1u);
+    source = rest;
+    data->Append(single_byte);
     decoder->SetData(data.get(), false);
   } while (!decoder->FrameCount() ||
            decoder->DecodeFrameBufferAtIndex(0)->GetStatus() ==
diff --git a/third_party/blink/renderer/platform/image-decoders/jpeg/jpeg_image_decoder_test.cc b/third_party/blink/renderer/platform/image-decoders/jpeg/jpeg_image_decoder_test.cc
index 264862ed..4ac926e 100644
--- a/third_party/blink/renderer/platform/image-decoders/jpeg/jpeg_image_decoder_test.cc
+++ b/third_party/blink/renderer/platform/image-decoders/jpeg/jpeg_image_decoder_test.cc
@@ -528,7 +528,7 @@
   constexpr size_t kDataLengthWithoutSize = 4;
   ASSERT_LT(kDataLengthWithoutSize, full_data.size());
   scoped_refptr<SharedBuffer> partial_data =
-      SharedBuffer::Create(full_data.data(), kDataLengthWithoutSize);
+      SharedBuffer::Create(base::span(full_data).first(kDataLengthWithoutSize));
 
   std::unique_ptr<ImageDecoder> decoder = CreateJPEGDecoder();
   decoder->SetData(partial_data.get(), false);
@@ -552,8 +552,8 @@
   }
 
   const size_t kJustEnoughDataToStartHeaderParsing = (full_data.size() + 1) / 2;
-  auto partial_data = SharedBuffer::Create(full_data.data(),
-                                           kJustEnoughDataToStartHeaderParsing);
+  auto partial_data = SharedBuffer::Create(
+      base::span(full_data).first(kJustEnoughDataToStartHeaderParsing));
   ASSERT_TRUE(partial_data);
 
   auto decoder = CreateJPEGDecoder();
diff --git a/third_party/blink/renderer/platform/image-decoders/png/png_image_decoder_test.cc b/third_party/blink/renderer/platform/image-decoders/png/png_image_decoder_test.cc
index 2aa62f4..0f1b2d84 100644
--- a/third_party/blink/renderer/platform/image-decoders/png/png_image_decoder_test.cc
+++ b/third_party/blink/renderer/platform/image-decoders/png/png_image_decoder_test.cc
@@ -92,10 +92,12 @@
   ASSERT_FALSE(data.empty());
   ASSERT_LT(bytes_needed_to_decode_size, data.size());
 
-  const char* source = data.data();
+  base::span<const char> source(data);
   scoped_refptr<SharedBuffer> partial_data = SharedBuffer::Create();
   for (size_t length = 1; length <= bytes_needed_to_decode_size; length++) {
-    partial_data->Append(source++, 1u);
+    auto [single_byte, rest] = source.split_at(1u);
+    source = rest;
+    partial_data->Append(single_byte);
     decoder->SetData(partial_data.get(), false);
 
     if (length < bytes_needed_to_decode_size) {
@@ -177,10 +179,10 @@
   Vector<char> data = ReadFile(png_file);
   ASSERT_FALSE(data.empty());
 
-  scoped_refptr<SharedBuffer> invalid_data =
-      SharedBuffer::Create(data.data(), offset);
-  invalid_data->Append(data.data() + offset + length,
-                       data.size() - offset - length);
+  auto [before, rest] = base::span(data).split_at(offset);
+  auto after = rest.subspan(length);
+  scoped_refptr<SharedBuffer> invalid_data = SharedBuffer::Create(before);
+  invalid_data->Append(after);
   ASSERT_EQ(data.size() - length, invalid_data->size());
 
   decoder->SetData(invalid_data, true);
@@ -211,7 +213,7 @@
 
   auto decoder = CreatePNGDecoder();
   scoped_refptr<SharedBuffer> invalid_data =
-      SharedBuffer::Create(data.data(), offset_fctl);
+      SharedBuffer::Create(base::span(data).first(offset_fctl));
 
   // Test if this gives the correct frame count, before the fcTL is parsed.
   decoder->SetData(invalid_data, false);
@@ -221,15 +223,14 @@
   // Append the wrong size to the data stream
   png_byte size_chunk[4];
   WriteUint32(20, size_chunk);
-  invalid_data->Append(reinterpret_cast<char*>(size_chunk), 4u);
+  invalid_data->Append(size_chunk);
 
   // Skip the size in the original data, but provide a truncated fcTL,
   // which is 4B of tag, 20B of data and 4B of CRC, totalling 28B.
-  invalid_data->Append(data.data() + offset_fctl + 4, 28u);
+  invalid_data->Append(base::span(data).subspan(offset_fctl + 4, 28u));
   // Append the rest of the data
   const size_t offset_post_fctl = offset_fctl + 38;
-  invalid_data->Append(data.data() + offset_post_fctl,
-                       data.size() - offset_post_fctl);
+  invalid_data->Append(base::span(data).subspan(offset_post_fctl));
 
   decoder->SetData(invalid_data, false);
   if (should_fail) {
@@ -270,7 +271,7 @@
 
   auto decoder = CreatePNGDecoder();
   scoped_refptr<SharedBuffer> partial_data =
-      SharedBuffer::Create(full_data.data(), offset_mid_first_frame);
+      SharedBuffer::Create(base::span(full_data).first(offset_mid_first_frame));
   decoder->SetData(partial_data, false);
 
   EXPECT_EQ(1u, decoder->FrameCount());
@@ -408,11 +409,13 @@
   ASSERT_FALSE(data.empty());
   size_t frames_parsed = 0;
 
-  const char* source = data.data();
+  base::span<const char> source(data);
   scoped_refptr<SharedBuffer> partial_data = SharedBuffer::Create();
   for (size_t length = 1; length <= frame_offsets[kExpectedFrameCount - 1];
        length++) {
-    partial_data->Append(source++, 1u);
+    auto [single_byte, rest] = source.split_at(1u);
+    source = rest;
+    partial_data->Append(single_byte);
     decoder->SetData(partial_data.get(), false);
     EXPECT_FALSE(decoder->Failed());
     if (length < frame_offsets[frames_parsed]) {
@@ -503,9 +506,8 @@
   {
     // Remove the acTL chunk from the stream. This results in a static image.
     scoped_refptr<SharedBuffer> no_actl_data =
-        SharedBuffer::Create(data.data(), kOffsetActl);
-    no_actl_data->Append(data.data() + kOffsetActl + kAcTLSize,
-                         data.size() - kOffsetActl - kAcTLSize);
+        SharedBuffer::Create(base::span(data).first(kOffsetActl));
+    no_actl_data->Append(base::span(data).subspan(kOffsetActl + kAcTLSize));
 
     auto decoder = CreatePNGDecoder();
     decoder->SetData(no_actl_data, true);
@@ -544,9 +546,9 @@
   for (const auto& rec : kGRecs) {
     const size_t offset = rec.offset;
     scoped_refptr<SharedBuffer> extra_actl_data =
-        SharedBuffer::Create(data.data(), offset);
-    extra_actl_data->Append(ac_tl, kAcTLSize);
-    extra_actl_data->Append(data.data() + offset, data.size() - offset);
+        SharedBuffer::Create(base::span(data).first(offset));
+    extra_actl_data->Append(ac_tl);
+    extra_actl_data->Append(base::span(data).subspan(offset));
     auto decoder = CreatePNGDecoder();
     decoder->SetData(extra_actl_data, true);
 
@@ -575,12 +577,11 @@
     const size_t kPostIDATOffset = 30971u;
     for (size_t times = 0; times < 2; times++) {
       scoped_refptr<SharedBuffer> extra_actl_data =
-          SharedBuffer::Create(data2.data(), kPostIDATOffset);
+          SharedBuffer::Create(base::span(data2).first(kPostIDATOffset));
       for (size_t i = 0; i < times; i++) {
-        extra_actl_data->Append(ac_tl, kAcTLSize);
+        extra_actl_data->Append(ac_tl);
       }
-      extra_actl_data->Append(data2.data() + kPostIDATOffset,
-                              data2.size() - kPostIDATOffset);
+      extra_actl_data->Append(base::span(data2).subspan(kPostIDATOffset));
 
       auto decoder = CreatePNGDecoder();
       decoder->SetData(extra_actl_data, true);
@@ -603,14 +604,15 @@
   // Insert fcTL and fdAT prior to the IDAT
   const size_t kIdatOffset = 71u;
   scoped_refptr<SharedBuffer> modified_data_buffer =
-      SharedBuffer::Create(data.data(), kIdatOffset);
+      SharedBuffer::Create(base::span(data).first(kIdatOffset));
   // Copy fcTL and fdAT
   const size_t kFctlPlusFdatSize = 38u + 1566u;
-  modified_data_buffer->Append(data.data() + 2519u, kFctlPlusFdatSize);
+  modified_data_buffer->Append(
+      base::span(data).subspan(2519u, kFctlPlusFdatSize));
   // Copy IDAT
-  modified_data_buffer->Append(data.data() + kIdatOffset, 2448u);
+  modified_data_buffer->Append(base::span(data).subspan(kIdatOffset, 2448u));
   // Copy the remaining
-  modified_data_buffer->Append(data.data() + 4123u, 39u + 12u);
+  modified_data_buffer->Append(base::span(data).subspan(4123u, 39u + 12u));
   // Data has just been rearranged.
   ASSERT_EQ(data.size(), modified_data_buffer->size());
 
@@ -629,10 +631,9 @@
     const size_t kOffsetActl = 33u;
     const size_t kAcTLSize = 20u;
     scoped_refptr<SharedBuffer> modified_data_buffer2 =
-        SharedBuffer::Create(modified_data.data(), kOffsetActl);
+        SharedBuffer::Create(base::span(modified_data).first(kOffsetActl));
     modified_data_buffer2->Append(
-        modified_data.data() + kOffsetActl + kAcTLSize,
-        modified_data.size() - kOffsetActl - kAcTLSize);
+        base::span(modified_data).subspan(kOffsetActl + kAcTLSize));
     auto decoder = CreatePNGDecoder();
     decoder->SetData(modified_data_buffer2.get(), true);
     ExpectStatic(decoder.get());
@@ -640,11 +641,11 @@
     Vector<char> modified_data2 = modified_data_buffer2->CopyAs<Vector<char>>();
     // Likewise, if an acTL follows the fdAT, it is ignored.
     const size_t kInsertionOffset = kIdatOffset + kFctlPlusFdatSize - kAcTLSize;
-    scoped_refptr<SharedBuffer> modified_data3 =
-        SharedBuffer::Create(modified_data2.data(), kInsertionOffset);
-    modified_data3->Append(data.data() + kOffsetActl, kAcTLSize);
-    modified_data3->Append(modified_data2.data() + kInsertionOffset,
-                           modified_data2.size() - kInsertionOffset);
+    scoped_refptr<SharedBuffer> modified_data3 = SharedBuffer::Create(
+        base::span(modified_data2).first(kInsertionOffset));
+    modified_data3->Append(base::span(data).subspan(kOffsetActl, kAcTLSize));
+    modified_data3->Append(
+        base::span(modified_data2).subspan(kInsertionOffset));
     decoder = CreatePNGDecoder();
     decoder->SetData(modified_data3.get(), true);
     ExpectStatic(decoder.get());
@@ -661,7 +662,7 @@
   // Change the x_offset for frame 1
   const size_t kFctlOffset = 172u;
   scoped_refptr<SharedBuffer> modified_data =
-      SharedBuffer::Create(data.data(), kFctlOffset);
+      SharedBuffer::Create(base::span(data).first(kFctlOffset));
   const size_t kFctlSize = 38u;
   png_byte fctl[kFctlSize];
   memcpy(fctl, data.data() + kFctlOffset, kFctlSize);
@@ -670,9 +671,9 @@
   WriteUint32(4294967295, fctl + 20);
   // Correct the crc
   WriteUint32(689600712, fctl + 34);
-  modified_data->Append((const char*)fctl, kFctlSize);
+  modified_data->Append(base::span(fctl).first(kFctlSize));
   const size_t kAfterFctl = kFctlOffset + kFctlSize;
-  modified_data->Append(data.data() + kAfterFctl, data.size() - kAfterFctl);
+  modified_data->Append(base::span(data).subspan(kAfterFctl));
 
   auto decoder = CreatePNGDecoder();
   decoder->SetData(modified_data.get(), true);
@@ -702,7 +703,7 @@
   // Change the y_offset for frame 1
   const size_t kFctlOffset = 172u;
   scoped_refptr<SharedBuffer> modified_data =
-      SharedBuffer::Create(data.data(), kFctlOffset);
+      SharedBuffer::Create(base::span(data).first(kFctlOffset));
   const size_t kFctlSize = 38u;
   png_byte fctl[kFctlSize];
   memcpy(fctl, data.data() + kFctlOffset, kFctlSize);
@@ -711,9 +712,9 @@
   WriteUint32(4294967295, fctl + 24);
   // Correct the crc
   WriteUint32(2094185741, fctl + 34);
-  modified_data->Append((const char*)fctl, kFctlSize);
+  modified_data->Append(base::span(fctl).first(kFctlSize));
   const size_t kAfterFctl = kFctlOffset + kFctlSize;
-  modified_data->Append(data.data() + kAfterFctl, data.size() - kAfterFctl);
+  modified_data->Append(base::span(data).subspan(kAfterFctl));
 
   auto decoder = CreatePNGDecoder();
   decoder->SetData(modified_data.get(), true);
@@ -742,7 +743,7 @@
 
   const size_t kFctlOffset = 95u;
   scoped_refptr<SharedBuffer> modified_data =
-      SharedBuffer::Create(data.data(), kFctlOffset);
+      SharedBuffer::Create(base::span(data).first(kFctlOffset));
   const size_t kFctlSize = 38u;
   png_byte fctl[kFctlSize];
   memcpy(fctl, data.data() + kFctlOffset, kFctlSize);
@@ -750,9 +751,9 @@
   WriteUint32(3, fctl + 16);
   // Correct the crc
   WriteUint32(3210324191, fctl + 34);
-  modified_data->Append((const char*)fctl, kFctlSize);
+  modified_data->Append(base::span(fctl).first(kFctlSize));
   const size_t kAfterFctl = kFctlOffset + kFctlSize;
-  modified_data->Append(data.data() + kAfterFctl, data.size() - kAfterFctl);
+  modified_data->Append(base::span(data).subspan(kAfterFctl));
 
   auto decoder = CreatePNGDecoder();
   decoder->SetData(modified_data.get(), true);
@@ -779,21 +780,21 @@
   // Modify the third fdAT to be empty.
   constexpr size_t kOffsetThirdFdat = 352;
   scoped_refptr<SharedBuffer> modified_data =
-      SharedBuffer::Create(data.data(), kOffsetThirdFdat);
+      SharedBuffer::Create(base::span(data).first(kOffsetThirdFdat));
   png_byte four_bytes[4u];
   WriteUint32(0, four_bytes);
-  modified_data->Append(reinterpret_cast<char*>(four_bytes), 4u);
+  modified_data->Append(four_bytes);
 
   // fdAT tag
-  modified_data->Append(data.data() + kOffsetThirdFdat + 4u, 4u);
+  modified_data->Append(base::span(data).subspan(kOffsetThirdFdat + 4u, 4u));
 
   // crc computed from modified fdAT chunk
   WriteUint32(4122214294, four_bytes);
-  modified_data->Append(reinterpret_cast<char*>(four_bytes), 4u);
+  modified_data->Append(four_bytes);
 
   // IEND
   constexpr size_t kIENDOffset = 422u;
-  modified_data->Append(data.data() + kIENDOffset, 12u);
+  modified_data->Append(base::span(data).subspan(kIENDOffset, 12u));
 
   auto decoder = CreatePNGDecoder();
   decoder->SetData(std::move(modified_data), true);
@@ -825,7 +826,7 @@
 
   const size_t kOffsetThirdFctl = 241;
   scoped_refptr<SharedBuffer> modified_data =
-      SharedBuffer::Create(data.data(), kOffsetThirdFctl);
+      SharedBuffer::Create(base::span(data).first(kOffsetThirdFctl));
   const size_t kFctlSize = 38u;
   png_byte fctl[kFctlSize];
   memcpy(fctl, data.data() + kOffsetThirdFctl, kFctlSize);
@@ -834,10 +835,8 @@
   WriteUint32(4, fctl + 24u);
   WriteUint32(3700322018, fctl + 34u);
 
-  modified_data->Append(const_cast<const char*>(reinterpret_cast<char*>(fctl)),
-                        kFctlSize);
-  modified_data->Append(data.data() + kOffsetThirdFctl + kFctlSize,
-                        data.size() - kOffsetThirdFctl - kFctlSize);
+  modified_data->Append(fctl);
+  modified_data->Append(base::span(data).subspan(kOffsetThirdFctl + kFctlSize));
 
   decoder->SetData(modified_data, true);
 
@@ -903,13 +902,14 @@
   const size_t kOffsetTwoFrames = 249;
   const size_t kExpectedFramesAfter249Bytes = 2;
   scoped_refptr<SharedBuffer> temp_data =
-      SharedBuffer::Create(full_data.data(), kOffsetTwoFrames);
+      SharedBuffer::Create(base::span(full_data).first(kOffsetTwoFrames));
   decoder->SetData(temp_data.get(), false);
   EXPECT_EQ(kExpectedFramesAfter249Bytes, decoder->FrameCount());
   EXPECT_FALSE(decoder->Failed());
 
   // Provide the rest of the data except for the last IEND chunk.
-  temp_data = SharedBuffer::Create(full_data.data(), full_data.size() - 12);
+  temp_data =
+      SharedBuffer::Create(base::span(full_data).first(full_data.size() - 12));
   decoder->SetData(temp_data.get(), true);
 
   for (size_t i = 0; i < decoder->FrameCount(); i++) {
@@ -940,9 +940,9 @@
 
   const size_t kOffsetIDAT = 133;
   scoped_refptr<SharedBuffer> data =
-      SharedBuffer::Create(full_data.data(), kOffsetIDAT);
-  data->Append(full_data.data() + full_data.size() - 12u, 12u);
-  data->Append(full_data.data() + kOffsetIDAT, full_data.size() - kOffsetIDAT);
+      SharedBuffer::Create(base::span(full_data).first(kOffsetIDAT));
+  data->Append(base::span(full_data).last(12u));
+  data->Append(base::span(full_data).subspan(kOffsetIDAT));
   decoder->SetData(data.get(), true);
 
   const size_t kExpectedFrameCount = 0u;
@@ -961,16 +961,16 @@
   // Add an extra fdAT after the first IDAT, skipping fcTL.
   const size_t kPostIDAT = 172u;
   scoped_refptr<SharedBuffer> data =
-      SharedBuffer::Create(full_data.data(), kPostIDAT);
+      SharedBuffer::Create(base::span(full_data).first(kPostIDAT));
   const size_t kFcTLSize = 38u;
   const size_t kFdATSize = 31u;
   png_byte fdat[kFdATSize];
   memcpy(fdat, full_data.data() + kPostIDAT + kFcTLSize, kFdATSize);
   // Modify the sequence number
   WriteUint32(1u, fdat + 8);
-  data->Append((const char*)fdat, kFdATSize);
+  data->Append(fdat);
   const size_t kIENDOffset = 422u;
-  data->Append(full_data.data() + kIENDOffset, full_data.size() - kIENDOffset);
+  data->Append(base::span(full_data).subspan(kIENDOffset));
   auto decoder = CreatePNGDecoder();
   decoder->SetData(data.get(), true);
   decoder->FrameCount();
@@ -987,11 +987,11 @@
 
   // Insert an IDAT after an fdAT.
   const size_t kPostfdAT = kPostIDAT + kFcTLSize + kFdATSize;
-  data = SharedBuffer::Create(full_data.data(), kPostfdAT);
+  data = SharedBuffer::Create(base::span(full_data).first(kPostfdAT));
   const size_t kIDATOffset = 133u;
-  data->Append(full_data.data() + kIDATOffset, kPostIDAT - kIDATOffset);
+  data->Append(base::span(full_data).first(kPostIDAT).subspan(kIDATOffset));
   // Append the rest.
-  data->Append(full_data.data() + kPostIDAT, full_data.size() - kPostIDAT);
+  data->Append(base::span(full_data).subspan(kPostIDAT));
   decoder = CreatePNGDecoder();
   decoder->SetData(data.get(), true);
   decoder->FrameCount();
@@ -1026,14 +1026,13 @@
   // crc and append the rest of the buffer.
   const size_t kOffsetDisposalOp = 241 + 8 + 24;
   scoped_refptr<SharedBuffer> data =
-      SharedBuffer::Create(full_data.data(), kOffsetDisposalOp);
+      SharedBuffer::Create(base::span(full_data).first(kOffsetDisposalOp));
   png_byte disposal_and_blending[6u];
   disposal_and_blending[0] = 7;
   disposal_and_blending[1] = 9;
   WriteUint32(2408835439u, disposal_and_blending + 2u);
-  data->Append(reinterpret_cast<char*>(disposal_and_blending), 6u);
-  data->Append(full_data.data() + kOffsetDisposalOp + 6u,
-               full_data.size() - kOffsetDisposalOp - 6u);
+  data->Append(disposal_and_blending);
+  data->Append(base::span(full_data).subspan(kOffsetDisposalOp + 6u));
 
   decoder->SetData(data.get(), true);
   decoder->FrameCount();
@@ -1070,7 +1069,7 @@
   // 160u is a randomly chosen offset in the IDAT chunk of the first frame.
   const size_t kMiddleFirstFrame = 160u;
   scoped_refptr<SharedBuffer> data =
-      SharedBuffer::Create(full_data.data(), kMiddleFirstFrame);
+      SharedBuffer::Create(base::span(full_data).first(kMiddleFirstFrame));
   decoder->SetData(data.get(), false);
 
   ASSERT_EQ(1u, decoder->FrameCount());
@@ -1112,18 +1111,18 @@
   // This file almost fits the bill. Modify it to dispose frame 0, making
   // frame 1 independent.
   const size_t kDisposeOffset = 127u;
-  auto data = SharedBuffer::Create(original_data.data(), kDisposeOffset);
+  auto data =
+      SharedBuffer::Create(base::span(original_data).first(kDisposeOffset));
   // 1 Corresponds to APNG_DISPOSE_OP_BACKGROUND
   const char kOne = '\001';
-  data->Append(&kOne, 1u);
+  data->Append(base::span_from_ref(kOne));
   // No need to modify the blend op
-  data->Append(original_data.data() + kDisposeOffset + 1, 1u);
+  data->Append(base::span(original_data).subspan(kDisposeOffset + 1, 1u));
   // Modify the CRC
   png_byte crc[4];
   WriteUint32(2226670956, crc);
-  data->Append(reinterpret_cast<const char*>(crc), 4u);
-  data->Append(original_data.data() + data->size(),
-               original_data.size() - data->size());
+  data->Append(crc);
+  data->Append(base::span(original_data).subspan(data->size()));
   ASSERT_EQ(original_data.size(), data->size());
 
   auto decoder = CreatePNGDecoder();
@@ -1164,7 +1163,8 @@
   ASSERT_FALSE(original_data.empty());
 
   const size_t kFcTLOffset = 2519u;
-  auto data = SharedBuffer::Create(original_data.data(), kFcTLOffset);
+  auto data =
+      SharedBuffer::Create(base::span(original_data).first(kFcTLOffset));
 
   const size_t kFcTLSize = 38u;
   png_byte fc_tl[kFcTLSize];
@@ -1173,13 +1173,14 @@
   WriteUint32(34, fc_tl + 16u);
   WriteUint32(1, fc_tl + 24u);
   WriteUint32(3972842751, fc_tl + 34u);
-  data->Append(reinterpret_cast<const char*>(fc_tl), kFcTLSize);
+  data->Append(fc_tl);
 
   // Append the rest of the data.
   // Note: If PNGImageDecoder changes to reject an image with too many
   // rows, the fdAT data will need to be modified as well.
-  data->Append(original_data.data() + kFcTLOffset + kFcTLSize,
-               original_data.size() - data->size());
+  data->Append(base::span(original_data)
+                   .subspan(kFcTLOffset + kFcTLSize,
+                            original_data.size() - data->size()));
   ASSERT_EQ(original_data.size(), data->size());
 
   // This will test both byte by byte and using the full data, and compare.
@@ -1202,7 +1203,7 @@
   constexpr size_t kOffset = 37;
   char buffer[kOffset] = {};
 
-  auto data = SharedBuffer::Create(buffer, kOffset);
+  auto data = SharedBuffer::Create(buffer);
   data->Append(original_data);
 
   // Use the same defaults as CreatePNGDecoder, except use the (arbitrary)
@@ -1234,17 +1235,17 @@
   ASSERT_EQ(kExpectedFrameCount, baseline_hashes.size());
 
   constexpr size_t kPngSignatureSize = 8;
-  auto data = SharedBuffer::Create(original_data.data(), kPngSignatureSize);
+  auto data =
+      SharedBuffer::Create(base::span(original_data).first(kPngSignatureSize));
 
   // Arbitrary chunk of data.
   constexpr size_t kExtraChunkSize = 13;
   constexpr png_byte kExtraChunk[kExtraChunkSize] = {
       0, 0, 0, 1, 't', 'R', 'c', 'N', 68, 82, 0, 87, 10};
-  data->Append(reinterpret_cast<const char*>(kExtraChunk), kExtraChunkSize);
+  data->Append(kExtraChunk);
 
   // Append the rest of the data from the original.
-  data->Append(original_data.data() + kPngSignatureSize,
-               original_data.size() - kPngSignatureSize);
+  data->Append(base::span(original_data).subspan(kPngSignatureSize));
   ASSERT_EQ(original_data.size() + kExtraChunkSize, data->size());
 
   auto decoder = CreatePNGDecoder();
@@ -1623,8 +1624,8 @@
 
     // Create with enough data for part of the first frame.
     auto decoder = CreatePNGDecoder();
-    auto data =
-        SharedBuffer::Create(full_data.data(), rec.offset_in_first_frame);
+    auto data = SharedBuffer::Create(
+        base::span(full_data).first(rec.offset_in_first_frame));
     decoder->SetData(data.get(), false);
 
     EXPECT_FALSE(decoder->FrameIsReceivedAtIndex(0));
diff --git a/third_party/blink/renderer/platform/image-decoders/skia/segment_stream_test.cc b/third_party/blink/renderer/platform/image-decoders/skia/segment_stream_test.cc
index 74d52ce..0a357d2 100644
--- a/third_party/blink/renderer/platform/image-decoders/skia/segment_stream_test.cc
+++ b/third_party/blink/renderer/platform/image-decoders/skia/segment_stream_test.cc
@@ -737,8 +737,7 @@
 scoped_refptr<SegmentReader> CreateSegmentReader() {
   Vector<char> raw_buffer(kBufferAllocationSize);
 
-  scoped_refptr<SharedBuffer> shared_buffer =
-      SharedBuffer::Create(raw_buffer.data(), kBufferAllocationSize);
+  scoped_refptr<SharedBuffer> shared_buffer = SharedBuffer::Create(raw_buffer);
 
   scoped_refptr<SegmentReader> segment_reader =
       SegmentReader::CreateFromSharedBuffer(std::move(shared_buffer));
diff --git a/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder_test.cc b/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder_test.cc
index 6f3a877..dbfd2df 100644
--- a/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder_test.cc
+++ b/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder_test.cc
@@ -261,7 +261,7 @@
   const Vector<char> full_data =
       ReadFile("/images/resources/invalid-animated-webp4.webp");
   scoped_refptr<SharedBuffer> data =
-      SharedBuffer::Create(full_data.data(), full_data.size() - 1);
+      SharedBuffer::Create(base::span(full_data).first(full_data.size() - 1));
   decoder->SetData(data.get(), false);
 
   ImageFrame* frame = decoder->DecodeFrameBufferAtIndex(1);
@@ -287,7 +287,7 @@
   const size_t kPartialSize = 32768;
   ASSERT_GT(full_data.size(), kPartialSize);
   scoped_refptr<SharedBuffer> data =
-      SharedBuffer::Create(full_data.data(), kPartialSize);
+      SharedBuffer::Create(base::span(full_data).first(kPartialSize));
   decoder->SetData(data.get(), false);
   EXPECT_EQ(1u, decoder->FrameCount());
   ImageFrame* frame = decoder->DecodeFrameBufferAtIndex(0);
@@ -318,7 +318,7 @@
 
   ASSERT_GE(data.size(), 10u);
   scoped_refptr<SharedBuffer> temp_data =
-      SharedBuffer::Create(data.data(), data.size() - 10);
+      SharedBuffer::Create(base::span(data).first(data.size() - 10));
   decoder->SetData(temp_data.get(), false);
 
   EXPECT_EQ(2u, decoder->FrameCount());
diff --git a/third_party/blink/renderer/platform/json/json_parser.cc b/third_party/blink/renderer/platform/json/json_parser.cc
index eb7943ed..7c282c1 100644
--- a/third_party/blink/renderer/platform/json/json_parser.cc
+++ b/third_party/blink/renderer/platform/json/json_parser.cc
@@ -2,11 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
 #include "third_party/blink/renderer/platform/json/json_parser.h"
 
 #include "base/memory/raw_ptr.h"
@@ -82,18 +77,19 @@
   kObjectPairSeparator,
 };
 
-template <typename CharType>
+template <typename CharType, size_t N>
 Error ParseConstToken(Cursor* cursor,
                       base::span<const CharType> data,
-                      const char* token) {
-  const size_t token_start = cursor->pos;
-  while (cursor->pos < data.size() && *token != '\0' &&
-         data[cursor->pos++] == *token++) {
-  }
-  if (*token != '\0') {
-    cursor->pos = token_start;
+                      const char (&token)[N]) {
+  constexpr size_t kTokenLength = N - 1;
+  if (data.size() - cursor->pos < kTokenLength) {
     return Error::kSyntaxError;
   }
+  auto span_to_match = data.subspan(cursor->pos).template first<kTokenLength>();
+  if (span_to_match != base::span(token).template first<kTokenLength>()) {
+    return Error::kSyntaxError;
+  }
+  cursor->pos += kTokenLength;
   return Error::kNoError;
 }
 
diff --git a/third_party/blink/renderer/platform/json/json_values.cc b/third_party/blink/renderer/platform/json/json_values.cc
index bc333f59..c00f9a6 100644
--- a/third_party/blink/renderer/platform/json/json_values.cc
+++ b/third_party/blink/renderer/platform/json/json_values.cc
@@ -88,10 +88,6 @@
 
 }  // anonymous namespace
 
-const char kJSONNullString[] = "null";
-const char kJSONTrueString[] = "true";
-const char kJSONFalseString[] = "false";
-
 void EscapeStringForJSON(const String& str, StringBuilder* dst) {
   for (unsigned i = 0; i < str.length(); ++i) {
     UChar c = str[i];
diff --git a/third_party/blink/renderer/platform/json/json_values.h b/third_party/blink/renderer/platform/json/json_values.h
index 94c1889..c4c7406 100644
--- a/third_party/blink/renderer/platform/json/json_values.h
+++ b/third_party/blink/renderer/platform/json/json_values.h
@@ -276,9 +276,9 @@
   Vector<std::unique_ptr<JSONValue>> data_;
 };
 
-extern const char kJSONNullString[];
-extern const char kJSONTrueString[];
-extern const char kJSONFalseString[];
+inline constexpr char kJSONNullString[] = "null";
+inline constexpr char kJSONTrueString[] = "true";
+inline constexpr char kJSONFalseString[] = "false";
 
 PLATFORM_EXPORT void EscapeStringForJSON(const String&, WTF::StringBuilder*);
 void DoubleQuoteStringForJSON(const String&, WTF::StringBuilder*);
diff --git a/third_party/blink/renderer/platform/loader/fetch/shared_buffer_bytes_consumer_test.cc b/third_party/blink/renderer/platform/loader/fetch/shared_buffer_bytes_consumer_test.cc
index 8e99099..ee645c6 100644
--- a/third_party/blink/renderer/platform/loader/fetch/shared_buffer_bytes_consumer_test.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/shared_buffer_bytes_consumer_test.cc
@@ -22,7 +22,7 @@
   std::string flatten_expected_data;
   auto shared_buffer = SharedBuffer::Create();
   for (const auto& chunk : kData) {
-    shared_buffer->Append(chunk.data(), chunk.size());
+    shared_buffer->Append(chunk);
     flatten_expected_data += chunk;
   }
 
@@ -45,7 +45,7 @@
                                   "This is another data!"};
   auto shared_buffer = SharedBuffer::Create();
   for (const auto& chunk : kData) {
-    shared_buffer->Append(chunk.data(), chunk.size());
+    shared_buffer->Append(chunk);
   }
 
   auto* bytes_consumer =
diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/url_loader_unittest.cc b/third_party/blink/renderer/platform/loader/fetch/url_loader/url_loader_unittest.cc
index 2f11208..5ea6783b4 100644
--- a/third_party/blink/renderer/platform/loader/fetch/url_loader/url_loader_unittest.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/url_loader/url_loader_unittest.cc
@@ -583,7 +583,7 @@
   sync_load_response.error_code = net::OK;
   sync_load_response.url = GURL(url);
   sync_load_response.data =
-      SharedBuffer::Create(kBodyData, sizeof(kBodyData) - 1);
+      SharedBuffer::Create(base::span_from_cstring(kBodyData));
   ASSERT_EQ(17u, sync_load_response.data->size());
   sync_load_response.head->encoded_body_length =
       network::mojom::EncodedBodyLength::New(kEncodedBodyLength);
diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/worker_main_script_loader_unittest.cc b/third_party/blink/renderer/platform/loader/fetch/url_loader/worker_main_script_loader_unittest.cc
index 7684142..716d8632 100644
--- a/third_party/blink/renderer/platform/loader/fetch/url_loader/worker_main_script_loader_unittest.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/url_loader/worker_main_script_loader_unittest.cc
@@ -60,9 +60,9 @@
     // Implements WorkerMainScriptLoaderClient.
     void DidReceiveDataWorkerMainScript(base::span<const char> data) override {
       if (!data_)
-        data_ = SharedBuffer::Create(data.data(), data.size());
+        data_ = SharedBuffer::Create(data);
       else
-        data_->Append(data.data(), data.size());
+        data_->Append(data);
     }
     void OnFinishedLoadingWorkerMainScript() override { finished_ = true; }
     void OnFailedLoadingWorkerMainScript() override { failed_ = true; }
diff --git a/third_party/blink/renderer/platform/peerconnection/webrtc_video_track_source.h b/third_party/blink/renderer/platform/peerconnection/webrtc_video_track_source.h
index 5124b1c..bf4e89e 100644
--- a/third_party/blink/renderer/platform/peerconnection/webrtc_video_track_source.h
+++ b/third_party/blink/renderer/platform/peerconnection/webrtc_video_track_source.h
@@ -164,8 +164,6 @@
   scoped_refptr<CallbackProxy> callback_proxy_;
 
   int64_t next_frame_id_ = 0;
-
-  bool require_mapped_frame_for_testing_ = false;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
index 8a60a6c..560d7a9e 100644
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -2405,6 +2405,10 @@
       depends_on: ["SelectParserRelaxation"],
     },
     {
+      name: "InputEventConstructorThrows",
+      status: "stable",
+    },
+    {
       name: "InputMultipleFieldsUI",
       // No plan to support complex UI for date/time INPUT types on Android and
       // iOS.
diff --git a/third_party/blink/renderer/platform/testing/font_test_helpers.cc b/third_party/blink/renderer/platform/testing/font_test_helpers.cc
index 555becb8..d2295d8 100644
--- a/third_party/blink/renderer/platform/testing/font_test_helpers.cc
+++ b/third_party/blink/renderer/platform/testing/font_test_helpers.cc
@@ -30,8 +30,8 @@
         FontCustomPlatformData::Create(font_buffer.get(), ots_parse_message));
   }
 
-  static TestFontSelector* Create(const uint8_t* data, size_t size) {
-    scoped_refptr<SharedBuffer> font_buffer = SharedBuffer::Create(data, size);
+  static TestFontSelector* Create(base::span<const uint8_t> data) {
+    scoped_refptr<SharedBuffer> font_buffer = SharedBuffer::Create(data);
     String ots_parse_message;
     FontCustomPlatformData* font_custom_platform_data =
         FontCustomPlatformData::Create(font_buffer.get(), ots_parse_message);
@@ -127,8 +127,7 @@
 }  // namespace
 
 Font CreateTestFont(const AtomicString& family_name,
-                    const uint8_t* data,
-                    size_t data_size,
+                    base::span<const uint8_t> data,
                     float size,
                     const FontDescription::VariantLigatures* ligatures) {
   FontDescription font_description;
@@ -139,7 +138,7 @@
   if (ligatures)
     font_description.SetVariantLigatures(*ligatures);
 
-  return Font(font_description, TestFontSelector::Create(data, data_size));
+  return Font(font_description, TestFontSelector::Create(data));
 }
 
 Font CreateTestFont(const AtomicString& family_name,
diff --git a/third_party/blink/renderer/platform/testing/font_test_helpers.h b/third_party/blink/renderer/platform/testing/font_test_helpers.h
index ed80532..cbe21821 100644
--- a/third_party/blink/renderer/platform/testing/font_test_helpers.h
+++ b/third_party/blink/renderer/platform/testing/font_test_helpers.h
@@ -27,8 +27,7 @@
 
 // Reads a font from raw font data, for use in fuzzing test only.
 Font CreateTestFont(const AtomicString& family_name,
-                    const uint8_t* data,
-                    size_t data_size,
+                    base::span<const uint8_t> data,
                     float size,
                     const FontDescription::VariantLigatures* = nullptr);
 
diff --git a/third_party/blink/renderer/platform/testing/url_loader_mock_factory_impl.cc b/third_party/blink/renderer/platform/testing/url_loader_mock_factory_impl.cc
index b294a147..5f287b5 100644
--- a/third_party/blink/renderer/platform/testing/url_loader_mock_factory_impl.cc
+++ b/third_party/blink/renderer/platform/testing/url_loader_mock_factory_impl.cc
@@ -288,7 +288,7 @@
     return false;
   }
 
-  data = SharedBuffer::Create(buffer.data(), buffer.size());
+  data = SharedBuffer::Create(buffer);
   return true;
 }
 
diff --git a/third_party/blink/renderer/platform/widget/compositing/layer_tree_view.cc b/third_party/blink/renderer/platform/widget/compositing/layer_tree_view.cc
index 8867d47..7253162 100644
--- a/third_party/blink/renderer/platform/widget/compositing/layer_tree_view.cc
+++ b/third_party/blink/renderer/platform/widget/compositing/layer_tree_view.cc
@@ -273,7 +273,7 @@
   if (!delegate_)
     return;
   widget_scheduler_->WillBeginFrame(args);
-  delegate_->BeginMainFrame(args.frame_time);
+  delegate_->BeginMainFrame(args);
 }
 
 void LayerTreeView::OnDeferMainFrameUpdatesChanged(bool status) {
diff --git a/third_party/blink/renderer/platform/widget/compositing/layer_tree_view_delegate.h b/third_party/blink/renderer/platform/widget/compositing/layer_tree_view_delegate.h
index 9a07637..ab22555 100644
--- a/third_party/blink/renderer/platform/widget/compositing/layer_tree_view_delegate.h
+++ b/third_party/blink/renderer/platform/widget/compositing/layer_tree_view_delegate.h
@@ -37,7 +37,7 @@
       const cc::CompositorCommitData& commit_data) = 0;
 
   // Notifies that the compositor has issued a BeginMainFrame.
-  virtual void BeginMainFrame(base::TimeTicks frame_time) = 0;
+  virtual void BeginMainFrame(const viz::BeginFrameArgs& args) = 0;
 
   virtual void OnDeferMainFrameUpdatesChanged(bool) = 0;
   virtual void OnDeferCommitsChanged(
diff --git a/third_party/blink/renderer/platform/widget/compositing/test/stub_layer_tree_view_delegate.h b/third_party/blink/renderer/platform/widget/compositing/test/stub_layer_tree_view_delegate.h
index 6101a5cf..71f3f70 100644
--- a/third_party/blink/renderer/platform/widget/compositing/test/stub_layer_tree_view_delegate.h
+++ b/third_party/blink/renderer/platform/widget/compositing/test/stub_layer_tree_view_delegate.h
@@ -26,7 +26,7 @@
   }
   void UpdateCompositorScrollState(
       const cc::CompositorCommitData& commit_data) override {}
-  void BeginMainFrame(base::TimeTicks frame_time) override {}
+  void BeginMainFrame(const viz::BeginFrameArgs& args) override {}
   void OnDeferMainFrameUpdatesChanged(bool) override {}
   void OnDeferCommitsChanged(
       bool defer_status,
diff --git a/third_party/blink/renderer/platform/widget/compositing/widget_compositor_unittest.cc b/third_party/blink/renderer/platform/widget/compositing/widget_compositor_unittest.cc
index 4780257..8916fdf 100644
--- a/third_party/blink/renderer/platform/widget/compositing/widget_compositor_unittest.cc
+++ b/third_party/blink/renderer/platform/widget/compositing/widget_compositor_unittest.cc
@@ -23,7 +23,7 @@
 class StubWidgetBaseClient : public WidgetBaseClient {
  public:
   void OnCommitRequested() override {}
-  void BeginMainFrame(base::TimeTicks) override {}
+  void BeginMainFrame(const viz::BeginFrameArgs& args) override {}
   void UpdateLifecycle(WebLifecycleUpdate, DocumentUpdateReason) override {}
   std::unique_ptr<cc::LayerTreeFrameSink> AllocateNewLayerTreeFrameSink()
       override {
diff --git a/third_party/blink/renderer/platform/widget/widget_base.cc b/third_party/blink/renderer/platform/widget/widget_base.cc
index 06c9518..5ff9bfd 100644
--- a/third_party/blink/renderer/platform/widget/widget_base.cc
+++ b/third_party/blink/renderer/platform/widget/widget_base.cc
@@ -1028,7 +1028,7 @@
   client_->SetSuppressFrameRequestsWorkaroundFor704763Only(false);
 }
 
-void WidgetBase::BeginMainFrame(base::TimeTicks frame_time) {
+void WidgetBase::BeginMainFrame(const viz::BeginFrameArgs& args) {
   base::TimeTicks raf_aligned_input_start_time;
   if (ShouldRecordBeginMainFrameMetrics()) {
     raf_aligned_input_start_time = base::TimeTicks::Now();
@@ -1036,7 +1036,7 @@
 
   auto weak_this = weak_ptr_factory_.GetWeakPtr();
   widget_input_handler_manager_->input_event_queue()->DispatchRafAlignedInput(
-      frame_time);
+      args.frame_time);
   // DispatchRafAlignedInput could have detached the frame.
   if (!weak_this)
     return;
@@ -1044,7 +1044,7 @@
   if (ShouldRecordBeginMainFrameMetrics()) {
     client_->RecordDispatchRafAlignedInputTime(raf_aligned_input_start_time);
   }
-  client_->BeginMainFrame(frame_time);
+  client_->BeginMainFrame(args);
 }
 
 bool WidgetBase::ShouldRecordBeginMainFrameMetrics() {
diff --git a/third_party/blink/renderer/platform/widget/widget_base.h b/third_party/blink/renderer/platform/widget/widget_base.h
index 3591129e..e4733de4 100644
--- a/third_party/blink/renderer/platform/widget/widget_base.h
+++ b/third_party/blink/renderer/platform/widget/widget_base.h
@@ -174,7 +174,7 @@
   void ApplyViewportChanges(const cc::ApplyViewportChangesArgs& args) override;
   void UpdateCompositorScrollState(
       const cc::CompositorCommitData& commit_data) override;
-  void BeginMainFrame(base::TimeTicks frame_time) override;
+  void BeginMainFrame(const viz::BeginFrameArgs& args) override;
   void OnDeferMainFrameUpdatesChanged(bool) override;
   void OnDeferCommitsChanged(
       bool defer_status,
diff --git a/third_party/blink/renderer/platform/widget/widget_base_client.h b/third_party/blink/renderer/platform/widget/widget_base_client.h
index 68136f5..ca38a1f 100644
--- a/third_party/blink/renderer/platform/widget/widget_base_client.h
+++ b/third_party/blink/renderer/platform/widget/widget_base_client.h
@@ -47,7 +47,7 @@
 
   // Called to update the document lifecycle, advance the state of animations
   // and dispatch rAF.
-  virtual void BeginMainFrame(base::TimeTicks frame_time) = 0;
+  virtual void BeginMainFrame(const viz::BeginFrameArgs& args) = 0;
 
   // Requests that the lifecycle of the widget be updated.
   virtual void UpdateLifecycle(WebLifecycleUpdate requested_update,
diff --git a/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py b/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py
index ef48a26..38399a2 100755
--- a/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py
+++ b/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py
@@ -955,11 +955,17 @@
     {
         'paths': [
             'third_party/blink/renderer/core/animation_frame',
+            'third_party/blink/renderer/core/exported/test_web_frame_content_dumper.cc',
+            'third_party/blink/renderer/core/exported/web_page_popup_impl',
+            'third_party/blink/renderer/core/frame/animation_frame_timing_monitor',
+            'third_party/blink/renderer/core/frame/web_frame_widget_impl',
+            'third_party/blink/renderer/core/html/canvas',
             'third_party/blink/renderer/core/offscreencanvas',
-            'third_party/blink/renderer/core/html/canvas'
+            'third_party/blink/renderer/core/timing/window_performance',
         ],
         'allowed': [
             'viz::BeginFrameArgs',
+            'viz::BeginFrameId',
         ],
     },
     {
diff --git a/third_party/blink/tools/blinkpy/web_tests/port/base.py b/third_party/blink/tools/blinkpy/web_tests/port/base.py
index 77ac6ff..08fbaf7 100644
--- a/third_party/blink/tools/blinkpy/web_tests/port/base.py
+++ b/third_party/blink/tools/blinkpy/web_tests/port/base.py
@@ -121,7 +121,7 @@
 # This is the fingerprint of wpt's certificate found in
 # `//third_party/wpt_tools/certs/127.0.0.1.pem`. The following line is updated
 # by `//third_party/wpt_tools/update_certs.py`.
-WPT_FINGERPRINT = 'Nxvaj3+bY3oVrTc+Jp7m3E3sB1n3lXtnMDCyBsqEXiY='
+WPT_FINGERPRINT = 'GHzeRS4aLf+NeadKdUm+tUlmntyCJI4XyqCVWkDCnoc='
 # One for `//third_party/wpt_tools/certs/127.0.0.1.sxg.pem` used by non-WPT
 # tests under `web_tests/http/`.
 SXG_FINGERPRINT = '55qC1nKu2A88ESbFmk5sTPQS/ScG+8DD7P+2bgFA9iM='
diff --git a/third_party/blink/tools/blinkpy/web_tests/servers/wptserve.py b/third_party/blink/tools/blinkpy/web_tests/servers/wptserve.py
index c6a2fa39..4f587c4 100644
--- a/third_party/blink/tools/blinkpy/web_tests/servers/wptserve.py
+++ b/third_party/blink/tools/blinkpy/web_tests/servers/wptserve.py
@@ -120,11 +120,11 @@
         self._output_log_path = self._filesystem.join(output_dir,
                                                       'wptserve_stdout.txt')
 
-        expiration_date = datetime.date(2025, 1, 4)
-        if datetime.date.today() > expiration_date - datetime.timedelta(20):
+        expiration_date = datetime.date(2033, 2, 22)
+        if datetime.date.today() > expiration_date - datetime.timedelta(30):
             _log.error(
                 'Pre-generated keys and certificates are going to be expired at %s.'
-                ' Please re-generate them by following steps in %s/README.chromium.',
+                ' Please re-generate them by following steps in %s/README.md.',
                 expiration_date.strftime('%b %d %Y'), self.path_to_wpt_support)
 
     def _prepare_config(self):
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index d55d786..d5e898c 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -2689,15 +2689,15 @@
 crbug.com/343720396 external/wpt/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-unsafe-none.https.html?1-2 [ Crash Failure Timeout ]
 
 # ====== New tests from wpt-importer added here ======
-external/wpt/css/css-rhythm/replaced-elements/block-level-canvas-margins-affected-by-block-step-size.html [ Failure ]
-external/wpt/css/css-rhythm/replaced-elements/block-level-embed-margins-affected-by-block-step-size.html [ Failure ]
-external/wpt/css/css-rhythm/replaced-elements/block-level-iframe-margins-affected-by-block-step-size.html [ Failure ]
-external/wpt/css/css-rhythm/replaced-elements/block-level-img-margins-affected-by-block-step-size.html [ Failure ]
-external/wpt/css/css-rhythm/replaced-elements/block-level-object-margins-affected-by-block-step-size.html [ Failure ]
-external/wpt/css/css-rhythm/replaced-elements/block-level-svg-margins-affected-by-block-step-size.html [ Failure ]
-external/wpt/css/css-rhythm/replaced-elements/block-level-video-margins-affected-by-block-step-size.html [ Failure ]
-[ Mac14 ] external/wpt/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-unsafe-none.https.html?5-6 [ Crash Failure ]
-[ Mac15 ] external/wpt/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-unsafe-none.https.html?5-6 [ Crash Failure ]
+crbug.com/382988706 external/wpt/css/css-rhythm/replaced-elements/block-level-canvas-margins-affected-by-block-step-size.html [ Failure ]
+crbug.com/382988706 external/wpt/css/css-rhythm/replaced-elements/block-level-embed-margins-affected-by-block-step-size.html [ Failure ]
+crbug.com/382988706 external/wpt/css/css-rhythm/replaced-elements/block-level-iframe-margins-affected-by-block-step-size.html [ Failure ]
+crbug.com/382988706 external/wpt/css/css-rhythm/replaced-elements/block-level-img-margins-affected-by-block-step-size.html [ Failure ]
+crbug.com/382988706 external/wpt/css/css-rhythm/replaced-elements/block-level-object-margins-affected-by-block-step-size.html [ Failure ]
+crbug.com/382988706 external/wpt/css/css-rhythm/replaced-elements/block-level-svg-margins-affected-by-block-step-size.html [ Failure ]
+crbug.com/382988706 external/wpt/css/css-rhythm/replaced-elements/block-level-video-margins-affected-by-block-step-size.html [ Failure ]
+crbug.com/383154220 [ Mac14 ] external/wpt/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-unsafe-none.https.html?5-6 [ Crash Failure ]
+crbug.com/383154220 [ Mac15 ] external/wpt/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-unsafe-none.https.html?5-6 [ Crash Failure ]
 crbug.com/382953502 external/wpt/webrtc/simulcast/setParameters-maxFramerate.https.html [ Skip Timeout ]
 crbug.com/382552065 [ Mac13 ] external/wpt/css/css-writing-modes/abs-pos-replaced-vrl-001.html [ Failure ]
 crbug.com/382552065 [ Mac14 ] external/wpt/css/css-writing-modes/abs-pos-replaced-vrl-001.html [ Failure ]
@@ -6191,6 +6191,10 @@
 crbug.com/362922565 html/select/select-typeahead-scroll.html [ Failure ]
 crbug.com/362922565 html/select/select-typeahead-with-spacekey.html [ Failure ]
 
+# Interesting issue with max-block-size: stretch
+crbug.com/382679385 wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-left.tentative.html [ Failure ]
+crbug.com/382679385 wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-right.tentative.html [ Failure ]
+
 # Several behavior differences between <selectlist> and <select style="appearance:base-select">. (These tests
 # were migrated from the old `the-selectlist-element` test suite.)
 crbug.com/366394195 external/wpt/html/semantics/forms/the-select-element/select-events.tentative.html [ Timeout ]
@@ -8890,11 +8894,7 @@
 crbug.com/381444317 [ Linux ] external/wpt/html/semantics/popovers/popover-target-action-hover.tentative.html [ Failure Pass ]
 
 # Gardener 2024-12-05
-crbug.com/382519579 [ Linux ] virtual/threaded/external/wpt/long-animation-frame/tentative/loaf-script-window-attribution.html [ Failure Pass ]
 crbug.com/382506777 [ Linux ] external/wpt/scroll-animations/css/animation-inactive-outside-range-test.html [ Failure Pass ]
 
-# Gardener 2024-12-06
-crbug.com/382519579 [ Linux ] external/wpt/long-animation-frame/tentative/loaf-script-window-attribution.html [ Failure Pass ]
-
 crbug.com/383105114 [ Linux ] tables/mozilla/bugs/bug78162.html [ Failure Pass ]
 crbug.com/383105114 [ Win ] tables/mozilla/bugs/bug78162.html [ Failure Pass ]
diff --git a/third_party/blink/web_tests/TestLists/headless_shell.filter b/third_party/blink/web_tests/TestLists/headless_shell.filter
index 66e9a17d..e19f64c0 100644
--- a/third_party/blink/web_tests/TestLists/headless_shell.filter
+++ b/third_party/blink/web_tests/TestLists/headless_shell.filter
@@ -940,6 +940,7 @@
 -external/wpt/shadow-dom/accesskey.tentative.html
 -external/wpt/shadow-dom/crashtests/move-to-new-tree-1343016.html
 -external/wpt/shadow-dom/Document-caretPositionFromPoint.tentative.html
+-external/wpt/shadow-dom/focus/focus-pseudo-on-shadow-host-1.html
 -external/wpt/shadow-dom/focus/focus-pseudo-on-shadow-host-2.html
 -external/wpt/shadow-dom/focus-navigation/delegatesFocus-highlight-sibling.html
 -external/wpt/shadow-dom/focus-navigation/focus-navigation-slot-fallback-default-tabindex.html
@@ -1145,6 +1146,7 @@
 -virtual/popover-anchor-relationships-disabled/external/wpt/html/semantics/forms/the-select-element/customizable-select/switch-picker-appearance.tentative.html
 -virtual/customizable-select-disabled/external/wpt/html/semantics/forms/the-select-element/customizable-select/select-events.tentative.html
 -virtual/select-parser-relaxation/external/wpt/html/semantics/forms/the-select-element/customizable-select/select-events.tentative.html
+-virtual/select-parser-relaxation/external/wpt/html/semantics/forms/the-select-element/reset-algorithm-rendering.html
 -virtual/popover-anchor-relationships-disabled/external/wpt/html/semantics/popovers/popover-minimum-role.html
 -virtual/popover-anchor-relationships-disabled/external/wpt/html/semantics/popovers/popover-open-overflow-display.tentative.html
 -virtual/popover-hint-disabled/external/wpt/html/semantics/popovers/popover-focus.html
diff --git a/third_party/blink/web_tests/external/wpt/css/css-anchor-position/position-try-order-basic.html b/third_party/blink/web_tests/external/wpt/css/css-anchor-position/position-try-order-basic.html
index c7705a71..f54ce44f 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-anchor-position/position-try-order-basic.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-anchor-position/position-try-order-basic.html
@@ -184,14 +184,22 @@
 test_order('most-inline-size --right-sweep, --left-sweep, --bottom-sweep, --top-sweep', '--left-sweep');
 test_order('most-block-size --right-sweep, --left-sweep, --bottom-sweep, --top-sweep', '--top-sweep');
 
+// NOTE: the css-anchor-position-1 spec requires that only a minimum of five
+// fallback positions be respected. So this test, while intended to test across
+// all 8 fallbacks, intentionally leaves off 3 of them.
 test_order(`most-inline-size
   --right-sweep, --left-sweep, --bottom-sweep, --top-sweep,
-  --right, --left, --bottom, --top
-  `, '--left-sweep');
+  /*  --right, --left, --bottom, --top */
+  --bottom
+  `, '--bottom');
 
+// NOTE: the css-anchor-position-1 spec requires that only a minimum of five
+// fallback positions be respected. So this test, while intended to test across
+// all 8 fallbacks, intentionally leaves off 3 of them.
 test_order(`most-block-size
   --right-sweep, --left-sweep, --bottom-sweep, --top-sweep,
-  --right, --left, --bottom, --top
+  /*  --right, --left, --bottom, --top */
+  --right
   `, '--right');
 
 </script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-anchor-position/position-try-order-position-area.html b/third_party/blink/web_tests/external/wpt/css/css-anchor-position/position-try-order-position-area.html
index 3b7a347..4ffbbd0b 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-anchor-position/position-try-order-position-area.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-anchor-position/position-try-order-position-area.html
@@ -183,14 +183,22 @@
 test_position_area_order('most-inline-size --right-sweep, --left-sweep, --bottom-sweep, --top-sweep', '--left-sweep');
 test_position_area_order('most-block-size --right-sweep, --left-sweep, --bottom-sweep, --top-sweep', '--top-sweep');
 
+// NOTE: the css-anchor-position-1 spec requires that only a minimum of five
+// fallback positions be respected. So this test, while intended to test across
+// all 8 fallbacks, intentionally leaves off 3 of them.
 test_position_area_order(`most-inline-size
   --right-sweep, --left-sweep, --bottom-sweep, --top-sweep,
-  --right, --left, --bottom, --top
-  `, '--left-sweep');
+  /* --right, --left, --bottom, --top */
+  --bottom
+  `, '--bottom');
 
+// NOTE: the css-anchor-position-1 spec requires that only a minimum of five
+// fallback positions be respected. So this test, while intended to test across
+// all 8 fallbacks, intentionally leaves off 3 of them.
 test_position_area_order(`most-block-size
   --right-sweep, --left-sweep, --bottom-sweep, --top-sweep,
-  --right, --left, --bottom, --top
+  /* --right, --left, --bottom, --top */
+  --right
   `, '--right');
 
 </script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-view-transitions/empty-render-target-crash.html b/third_party/blink/web_tests/external/wpt/css/css-view-transitions/empty-render-target-crash.html
new file mode 100644
index 0000000..38c32b1
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-view-transitions/empty-render-target-crash.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<title>We shouldn't crash if the composited parents are empty</title>
+<link rel="help" href="https://drafts.csswg.org/css-view-transitions-1">
+<link rel="author" href="mailto:vmpstr@chromium.org">
+
+<body style="offset-path: ray(45deg closest-side contain);xborder-top: 1px solid black;inset-inline-start: 0;align-content: space-evenly flex-start safe;-webkit-mask-image: linear-gradient(white, white);border-inline-start-style: solid;flex-grow: 1.5;border-top-color: black;border-left-color: #000;-webkit-margin-start: 4px;-webkit-margin-before: 1px;offset-position: 30px 10px;-webkit-border-vertical-spacing: 10px;empty-cells: hide;scroll-padding-bottom: 12px;-webkit-clip-path: polygon(nonzero, 10px 75px, 180px 180px, 100px 10px, 10px 180px, 180px 75px, 10px 75px)"> { ;  false;</script><iframe srcdoc="
+"></iframe>
+<script>
+  onload = runTest;
+  async function startTransition(document, oldColor) {
+    await document.startViewTransition(() => {
+    }).ready;
+  }
+  async function runTest() {
+    const iframeDocument = document.querySelector("iframe").contentDocument;
+    await startTransition(iframeDocument, "blue");
+    await startTransition(document);
+  }
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text/2d.text.measure.caret-position-edge-cases.tentative.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text/2d.text.measure.caret-position-edge-cases.tentative.html
deleted file mode 100644
index 6628c93..0000000
--- a/third_party/blink/web_tests/external/wpt/html/canvas/element/text/2d.text.measure.caret-position-edge-cases.tentative.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE html>
-<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
-<meta charset="UTF-8">
-<title>Canvas test: 2d.text.measure.caret-position-edge-cases.tentative</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/html/canvas/resources/canvas-tests.js"></script>
-<link rel="stylesheet" href="/html/canvas/resources/canvas-tests.css">
-<style>
-@font-face {
-  font-family: CanvasTest;
-  src: url("/fonts/CanvasTest.ttf");
-}
-</style>
-<body class="show_output">
-
-<h1>2d.text.measure.caret-position-edge-cases.tentative</h1>
-<p class="desc">Test the edge cases for caretPositionFromPoint, where the point is at the edge of glyph and at the midpoint.</p>
-
-
-<span style="font-family: CanvasTest; position: absolute; visibility: hidden">A</span>
-<p class="output">Actual output:</p>
-<canvas id="c" class="output" width="100" height="50"><p class="fallback">FAIL (fallback content)</p></canvas>
-
-<ul id="d"></ul>
-<script>
-promise_test(async t => {
-
-  var canvas = document.getElementById('c');
-  var ctx = canvas.getContext('2d');
-
-  await document.fonts.ready;
-  ctx.font = '50px CanvasTest';
-  ctx.direction = 'ltr';
-  ctx.align = 'left'
-  ctx.baseline = 'alphabetic'
-  tm = ctx.measureText('A');
-  const a_width = tm.width;
-  tm = ctx.measureText('B');
-  const b_width = tm.width;
-  tm = ctx.measureText('C');
-  const c_width = tm.width;
-  const epsilon = 1.0e-4;
-
-  tm = ctx.measureText('ABC');
-  _assert(tm.caretPositionFromPoint(0) == 0, "tm.caretPositionFromPoint(0) == 0");
-  _assert(tm.caretPositionFromPoint(a_width / 2) == 0, "tm.caretPositionFromPoint(a_width / 2) == 0");
-  _assert(tm.caretPositionFromPoint(a_width / 2 + 1) == 1, "tm.caretPositionFromPoint(a_width / 2 + 1) == 1");
-  _assert(tm.caretPositionFromPoint(a_width) == 1, "tm.caretPositionFromPoint(a_width) == 1");
-  _assert(tm.caretPositionFromPoint(a_width + b_width / 2) == 1, "tm.caretPositionFromPoint(a_width + b_width / 2) == 1");
-  _assert(tm.caretPositionFromPoint(a_width + b_width / 2 + 1) == 2, "tm.caretPositionFromPoint(a_width + b_width / 2 + 1) == 2");
-  _assert(tm.caretPositionFromPoint(a_width + b_width) == 2, "tm.caretPositionFromPoint(a_width + b_width) == 2");
-  _assert(tm.caretPositionFromPoint(a_width + b_width + c_width / 2) == 2, "tm.caretPositionFromPoint(a_width + b_width + c_width / 2) == 2");
-  _assert(tm.caretPositionFromPoint(a_width + b_width + c_width / 2 + 1) == 3, "tm.caretPositionFromPoint(a_width + b_width + c_width / 2 + 1) == 3");
-  _assert(tm.caretPositionFromPoint(a_width + b_width + c_width) == 3, "tm.caretPositionFromPoint(a_width + b_width + c_width) == 3");
-
-}, "Test the edge cases for caretPositionFromPoint, where the point is at the edge of glyph and at the midpoint.");
-</script>
-
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text/2d.text.measure.index-from-offset-edge-cases.tentative.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text/2d.text.measure.index-from-offset-edge-cases.tentative.html
new file mode 100644
index 0000000..b7a327a
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text/2d.text.measure.index-from-offset-edge-cases.tentative.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<meta charset="UTF-8">
+<title>Canvas test: 2d.text.measure.index-from-offset-edge-cases.tentative</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/html/canvas/resources/canvas-tests.js"></script>
+<link rel="stylesheet" href="/html/canvas/resources/canvas-tests.css">
+<style>
+@font-face {
+  font-family: CanvasTest;
+  src: url("/fonts/CanvasTest.ttf");
+}
+</style>
+<body class="show_output">
+
+<h1>2d.text.measure.index-from-offset-edge-cases.tentative</h1>
+<p class="desc">Test the edge cases for getIndexFromOffset, where the point is at the edge of glyph and at the midpoint.</p>
+
+
+<span style="font-family: CanvasTest; position: absolute; visibility: hidden">A</span>
+<p class="output">Actual output:</p>
+<canvas id="c" class="output" width="100" height="50"><p class="fallback">FAIL (fallback content)</p></canvas>
+
+<ul id="d"></ul>
+<script>
+promise_test(async t => {
+
+  var canvas = document.getElementById('c');
+  var ctx = canvas.getContext('2d');
+
+  await document.fonts.ready;
+  ctx.font = '50px CanvasTest';
+  ctx.direction = 'ltr';
+  ctx.align = 'left'
+  ctx.baseline = 'alphabetic'
+  tm = ctx.measureText('A');
+  const a_width = tm.width;
+  tm = ctx.measureText('B');
+  const b_width = tm.width;
+  tm = ctx.measureText('C');
+  const c_width = tm.width;
+  const epsilon = 1.0e-4;
+
+  tm = ctx.measureText('ABC');
+  _assert(tm.getIndexFromOffset(0) == 0, "tm.getIndexFromOffset(0) == 0");
+  _assert(tm.getIndexFromOffset(a_width / 2) == 0, "tm.getIndexFromOffset(a_width / 2) == 0");
+  _assert(tm.getIndexFromOffset(a_width / 2 + 1) == 1, "tm.getIndexFromOffset(a_width / 2 + 1) == 1");
+  _assert(tm.getIndexFromOffset(a_width) == 1, "tm.getIndexFromOffset(a_width) == 1");
+  _assert(tm.getIndexFromOffset(a_width + b_width / 2) == 1, "tm.getIndexFromOffset(a_width + b_width / 2) == 1");
+  _assert(tm.getIndexFromOffset(a_width + b_width / 2 + 1) == 2, "tm.getIndexFromOffset(a_width + b_width / 2 + 1) == 2");
+  _assert(tm.getIndexFromOffset(a_width + b_width) == 2, "tm.getIndexFromOffset(a_width + b_width) == 2");
+  _assert(tm.getIndexFromOffset(a_width + b_width + c_width / 2) == 2, "tm.getIndexFromOffset(a_width + b_width + c_width / 2) == 2");
+  _assert(tm.getIndexFromOffset(a_width + b_width + c_width / 2 + 1) == 3, "tm.getIndexFromOffset(a_width + b_width + c_width / 2 + 1) == 3");
+  _assert(tm.getIndexFromOffset(a_width + b_width + c_width) == 3, "tm.getIndexFromOffset(a_width + b_width + c_width) == 3");
+
+}, "Test the edge cases for getIndexFromOffset, where the point is at the edge of glyph and at the midpoint.");
+</script>
+
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text/2d.text.measure.caret-position-edges.tentative.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text/2d.text.measure.index-from-offset-edges.tentative.html
similarity index 87%
rename from third_party/blink/web_tests/external/wpt/html/canvas/element/text/2d.text.measure.caret-position-edges.tentative.html
rename to third_party/blink/web_tests/external/wpt/html/canvas/element/text/2d.text.measure.index-from-offset-edges.tentative.html
index cd56e20..842f508 100644
--- a/third_party/blink/web_tests/external/wpt/html/canvas/element/text/2d.text.measure.caret-position-edges.tentative.html
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text/2d.text.measure.index-from-offset-edges.tentative.html
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
 <meta charset="UTF-8">
-<title>Canvas test: 2d.text.measure.caret-position-edges.tentative</title>
+<title>Canvas test: 2d.text.measure.index-from-offset-edges.tentative</title>
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="/html/canvas/resources/canvas-tests.js"></script>
 <link rel="stylesheet" href="/html/canvas/resources/canvas-tests.css">
 
-<h1>2d.text.measure.caret-position-edges.tentative</h1>
+<h1>2d.text.measure.index-from-offset-edges.tentative</h1>
 
 <script>
 
@@ -73,13 +73,13 @@
   text_width = tm.width;
   for (const multiple of kPoints) {
     offset = multiple * text_width;
-    tm_position = tm.caretPositionFromPoint(offset);
+    tm_position = tm.getIndexFromOffset(offset);
     expected_position = computeExpected(text, text_width, offset);
     assert_equals(tm_position,
                   expected_position,
                   "for " + text + " multiple " + multiple);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction ltr and text align left.");
+}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction ltr and text align left.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -143,13 +143,13 @@
   text_width = tm.width;
   for (const multiple of kPoints) {
     offset = multiple * text_width;
-    tm_position = tm.caretPositionFromPoint(offset);
+    tm_position = tm.getIndexFromOffset(offset);
     expected_position = computeExpected(text, text_width, offset);
     assert_equals(tm_position,
                   expected_position,
                   "for " + text + " multiple " + multiple);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction rtl and text align left.");
+}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction rtl and text align left.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -213,13 +213,13 @@
   text_width = tm.width;
   for (const multiple of kPoints) {
     offset = multiple * text_width;
-    tm_position = tm.caretPositionFromPoint(offset);
+    tm_position = tm.getIndexFromOffset(offset);
     expected_position = computeExpected(text, text_width, offset);
     assert_equals(tm_position,
                   expected_position,
                   "for " + text + " multiple " + multiple);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction ltr and text align center.");
+}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction ltr and text align center.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -283,13 +283,13 @@
   text_width = tm.width;
   for (const multiple of kPoints) {
     offset = multiple * text_width;
-    tm_position = tm.caretPositionFromPoint(offset);
+    tm_position = tm.getIndexFromOffset(offset);
     expected_position = computeExpected(text, text_width, offset);
     assert_equals(tm_position,
                   expected_position,
                   "for " + text + " multiple " + multiple);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction rtl and text align center.");
+}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction rtl and text align center.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -353,13 +353,13 @@
   text_width = tm.width;
   for (const multiple of kPoints) {
     offset = multiple * text_width;
-    tm_position = tm.caretPositionFromPoint(offset);
+    tm_position = tm.getIndexFromOffset(offset);
     expected_position = computeExpected(text, text_width, offset);
     assert_equals(tm_position,
                   expected_position,
                   "for " + text + " multiple " + multiple);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction ltr and text align right.");
+}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction ltr and text align right.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -423,13 +423,13 @@
   text_width = tm.width;
   for (const multiple of kPoints) {
     offset = multiple * text_width;
-    tm_position = tm.caretPositionFromPoint(offset);
+    tm_position = tm.getIndexFromOffset(offset);
     expected_position = computeExpected(text, text_width, offset);
     assert_equals(tm_position,
                   expected_position,
                   "for " + text + " multiple " + multiple);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction rtl and text align right.");
+}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction rtl and text align right.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -493,13 +493,13 @@
   text_width = tm.width;
   for (const multiple of kPoints) {
     offset = multiple * text_width;
-    tm_position = tm.caretPositionFromPoint(offset);
+    tm_position = tm.getIndexFromOffset(offset);
     expected_position = computeExpected(text, text_width, offset);
     assert_equals(tm_position,
                   expected_position,
                   "for " + text + " multiple " + multiple);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction ltr and text align start.");
+}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction ltr and text align start.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -563,13 +563,13 @@
   text_width = tm.width;
   for (const multiple of kPoints) {
     offset = multiple * text_width;
-    tm_position = tm.caretPositionFromPoint(offset);
+    tm_position = tm.getIndexFromOffset(offset);
     expected_position = computeExpected(text, text_width, offset);
     assert_equals(tm_position,
                   expected_position,
                   "for " + text + " multiple " + multiple);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction rtl and text align start.");
+}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction rtl and text align start.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -633,13 +633,13 @@
   text_width = tm.width;
   for (const multiple of kPoints) {
     offset = multiple * text_width;
-    tm_position = tm.caretPositionFromPoint(offset);
+    tm_position = tm.getIndexFromOffset(offset);
     expected_position = computeExpected(text, text_width, offset);
     assert_equals(tm_position,
                   expected_position,
                   "for " + text + " multiple " + multiple);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction ltr and text align end.");
+}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction ltr and text align end.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -703,13 +703,13 @@
   text_width = tm.width;
   for (const multiple of kPoints) {
     offset = multiple * text_width;
-    tm_position = tm.caretPositionFromPoint(offset);
+    tm_position = tm.getIndexFromOffset(offset);
     expected_position = computeExpected(text, text_width, offset);
     assert_equals(tm_position,
                   expected_position,
                   "for " + text + " multiple " + multiple);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction rtl and text align end.");
+}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction rtl and text align end.");
 
 </script>
 </div>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text/2d.text.measure.caret-position.tentative.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text/2d.text.measure.index-from-offset.tentative.html
similarity index 88%
rename from third_party/blink/web_tests/external/wpt/html/canvas/element/text/2d.text.measure.caret-position.tentative.html
rename to third_party/blink/web_tests/external/wpt/html/canvas/element/text/2d.text.measure.index-from-offset.tentative.html
index 4b223c8..9893fcd 100644
--- a/third_party/blink/web_tests/external/wpt/html/canvas/element/text/2d.text.measure.caret-position.tentative.html
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text/2d.text.measure.index-from-offset.tentative.html
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
 <meta charset="UTF-8">
-<title>Canvas test: 2d.text.measure.caret-position.tentative</title>
+<title>Canvas test: 2d.text.measure.index-from-offset.tentative</title>
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="/html/canvas/resources/canvas-tests.js"></script>
 <link rel="stylesheet" href="/html/canvas/resources/canvas-tests.css">
 
-<h1>2d.text.measure.caret-position.tentative</h1>
+<h1>2d.text.measure.index-from-offset.tentative</h1>
 
 <script>
 
@@ -85,7 +85,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -93,7 +93,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -101,7 +101,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -109,13 +109,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align left, 0px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align left, 0px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -191,7 +191,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -199,7 +199,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -207,7 +207,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -215,13 +215,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align left, 0px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align left, 0px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -297,7 +297,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -305,7 +305,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -313,7 +313,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -321,13 +321,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align center, 0px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align center, 0px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -403,7 +403,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -411,7 +411,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -419,7 +419,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -427,13 +427,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align center, 0px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align center, 0px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -509,7 +509,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -517,7 +517,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -525,7 +525,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -533,13 +533,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align right, 0px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align right, 0px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -615,7 +615,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -623,7 +623,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -631,7 +631,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -639,13 +639,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align right, 0px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align right, 0px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -721,7 +721,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -729,7 +729,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -737,7 +737,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -745,13 +745,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align start, 0px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align start, 0px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -827,7 +827,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -835,7 +835,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -843,7 +843,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -851,13 +851,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align start, 0px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align start, 0px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -933,7 +933,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -941,7 +941,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -949,7 +949,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -957,13 +957,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align end, 0px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align end, 0px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -1039,7 +1039,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1047,7 +1047,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1055,7 +1055,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1063,13 +1063,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align end, 0px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align end, 0px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -1145,7 +1145,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1153,7 +1153,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1161,7 +1161,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1169,13 +1169,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align left, 10px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align left, 10px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -1251,7 +1251,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1259,7 +1259,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1267,7 +1267,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1275,13 +1275,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align left, 10px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align left, 10px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -1357,7 +1357,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1365,7 +1365,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1373,7 +1373,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1381,13 +1381,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align center, 10px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align center, 10px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -1463,7 +1463,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1471,7 +1471,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1479,7 +1479,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1487,13 +1487,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align center, 10px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align center, 10px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -1569,7 +1569,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1577,7 +1577,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1585,7 +1585,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1593,13 +1593,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align right, 10px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align right, 10px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -1675,7 +1675,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1683,7 +1683,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1691,7 +1691,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1699,13 +1699,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align right, 10px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align right, 10px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -1781,7 +1781,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1789,7 +1789,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1797,7 +1797,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1805,13 +1805,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align start, 10px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align start, 10px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -1887,7 +1887,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1895,7 +1895,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1903,7 +1903,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1911,13 +1911,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align start, 10px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align start, 10px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -1993,7 +1993,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2001,7 +2001,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2009,7 +2009,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2017,13 +2017,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align end, 10px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align end, 10px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -2099,7 +2099,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2107,7 +2107,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2115,7 +2115,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2123,13 +2123,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align end, 10px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align end, 10px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -2216,7 +2216,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2224,7 +2224,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2232,7 +2232,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2240,13 +2240,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align left, 0px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align left, 0px letter spacing and directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -2333,7 +2333,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2341,7 +2341,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2349,7 +2349,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2357,13 +2357,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align left, 0px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align left, 0px letter spacing and directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -2450,7 +2450,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2458,7 +2458,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2466,7 +2466,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2474,13 +2474,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align center, 0px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align center, 0px letter spacing and directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -2567,7 +2567,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2575,7 +2575,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2583,7 +2583,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2591,13 +2591,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align center, 0px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align center, 0px letter spacing and directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -2684,7 +2684,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2692,7 +2692,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2700,7 +2700,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2708,13 +2708,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align right, 0px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align right, 0px letter spacing and directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -2801,7 +2801,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2809,7 +2809,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2817,7 +2817,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2825,13 +2825,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align right, 0px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align right, 0px letter spacing and directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -2918,7 +2918,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2926,7 +2926,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2934,7 +2934,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2942,13 +2942,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align start, 0px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align start, 0px letter spacing and directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -3035,7 +3035,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3043,7 +3043,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3051,7 +3051,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3059,13 +3059,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align start, 0px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align start, 0px letter spacing and directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -3152,7 +3152,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3160,7 +3160,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3168,7 +3168,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3176,13 +3176,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align end, 0px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align end, 0px letter spacing and directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -3269,7 +3269,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3277,7 +3277,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3285,7 +3285,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3293,13 +3293,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align end, 0px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align end, 0px letter spacing and directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -3386,7 +3386,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3394,7 +3394,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3402,7 +3402,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3410,13 +3410,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align left, 10px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align left, 10px letter spacing and directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -3503,7 +3503,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3511,7 +3511,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3519,7 +3519,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3527,13 +3527,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align left, 10px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align left, 10px letter spacing and directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -3620,7 +3620,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3628,7 +3628,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3636,7 +3636,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3644,13 +3644,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align center, 10px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align center, 10px letter spacing and directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -3737,7 +3737,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3745,7 +3745,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3753,7 +3753,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3761,13 +3761,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align center, 10px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align center, 10px letter spacing and directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -3854,7 +3854,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3862,7 +3862,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3870,7 +3870,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3878,13 +3878,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align right, 10px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align right, 10px letter spacing and directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -3971,7 +3971,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3979,7 +3979,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3987,7 +3987,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3995,13 +3995,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align right, 10px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align right, 10px letter spacing and directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -4088,7 +4088,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -4096,7 +4096,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -4104,7 +4104,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -4112,13 +4112,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align start, 10px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align start, 10px letter spacing and directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -4205,7 +4205,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -4213,7 +4213,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -4221,7 +4221,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -4229,13 +4229,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align start, 10px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align start, 10px letter spacing and directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -4322,7 +4322,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -4330,7 +4330,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -4338,7 +4338,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -4346,13 +4346,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align end, 10px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align end, 10px letter spacing and directional-override.");
 
 test(t => {
   const canvas = document.createElement('canvas');
@@ -4439,7 +4439,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -4447,7 +4447,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -4455,7 +4455,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -4463,13 +4463,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align end, 10px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align end, 10px letter spacing and directional-override.");
 
 </script>
 </div>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/text/2d.text.measure.text-clusters-rendering-options.tentative.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/text/2d.text.measure.text-clusters-rendering-options.tentative.html
new file mode 100644
index 0000000..10a433c
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/text/2d.text.measure.text-clusters-rendering-options.tentative.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<meta charset="UTF-8">
+<title>Canvas test: 2d.text.measure.text-clusters-rendering-options.tentative</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/html/canvas/resources/canvas-tests.js"></script>
+<link rel="stylesheet" href="/html/canvas/resources/canvas-tests.css">
+<style>
+@font-face {
+  font-family: CanvasTest;
+  src: url("/fonts/CanvasTest.ttf");
+}
+</style>
+<body class="show_output">
+
+<h1>2d.text.measure.text-clusters-rendering-options.tentative</h1>
+<p class="desc">Test that fillTextCluster() correctly applies the options passed as a dictionary.</p>
+
+
+<span style="font-family: CanvasTest; position: absolute; visibility: hidden">A</span>
+<p class="output">Actual output:</p>
+<canvas id="c" class="output" width="100" height="300"><p class="fallback">FAIL (fallback content)</p></canvas>
+
+<ul id="d"></ul>
+<script>
+promise_test(async t => {
+
+  var canvas = document.getElementById('c');
+  var ctx = canvas.getContext('2d');
+
+  await document.fonts.ready;
+
+  ctx.font = '50px CanvasTest';
+  ctx.textAlign = 'left';
+  ctx.textBaseline = 'top';
+  const text = 'E';
+  const tm = ctx.measureText(text);
+  const cluster = tm.getTextClusters()[0];
+
+  // Background color.
+  ctx.fillStyle = '#f00';
+  ctx.fillRect(0, 0, canvas.width, canvas.height);
+
+  ctx.fillStyle = '#0f0';
+
+  // Override the align and baseline of the cluster.
+  ctx.fillTextCluster(cluster, 50, 50, {align: 'right', baseline: 'bottom'});
+  _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 45,5, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 45,45, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 55,5, 255,0,0,255, 2);
+  _assertPixelApprox(canvas, 5,55, 255,0,0,255, 2);
+  _assertPixelApprox(canvas, 5,55, 255,0,0,255, 2);
+  _assertPixelApprox(canvas, 55,55, 255,0,0,255, 2);
+
+  // Override the x and y values of the cluster.
+  ctx.fillTextCluster(cluster, 0, 100, {x: 10, y: 10});
+  _assertPixelApprox(canvas, 15,115, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 55,115, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 15,155, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 55,155, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 65,115, 255,0,0,255, 2);
+  _assertPixelApprox(canvas, 15,165, 255,0,0,255, 2);
+  _assertPixelApprox(canvas, 65,165, 255,0,0,255, 2);
+
+  // Override the align, baseline, x, and y values of the cluster.
+  ctx.fillTextCluster(cluster, 50, 250,
+                      {align: 'right', baseline: 'bottom', x: 10,  y: 10});
+  _assertPixelApprox(canvas, 15,215, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 55,215, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 15,255, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 55,255, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 65,215, 255,0,0,255, 2);
+  _assertPixelApprox(canvas, 15,265, 255,0,0,255, 2);
+  _assertPixelApprox(canvas, 65,265, 255,0,0,255, 2);
+
+}, "Test that fillTextCluster() correctly applies the options passed as a dictionary.");
+</script>
+
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.caret-position-edge-cases.tentative.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.caret-position-edge-cases.tentative.html
deleted file mode 100644
index a9bf8b4..0000000
--- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.caret-position-edge-cases.tentative.html
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE html>
-<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
-<meta charset="UTF-8">
-<title>OffscreenCanvas test: 2d.text.measure.caret-position-edge-cases.tentative</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/html/canvas/resources/canvas-tests.js"></script>
-
-<h1>2d.text.measure.caret-position-edge-cases.tentative</h1>
-<p class="desc">Test the edge cases for caretPositionFromPoint, where the point is at the edge of glyph and at the midpoint.</p>
-
-
-<script>
-promise_test(async t => {
-
-  var canvas = new OffscreenCanvas(100, 50);
-  var ctx = canvas.getContext('2d');
-
-  var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
-  f.load();
-  document.fonts.add(f);
-  await document.fonts.ready;
-  ctx.font = '50px CanvasTest';
-  ctx.direction = 'ltr';
-  ctx.align = 'left'
-  ctx.baseline = 'alphabetic'
-  tm = ctx.measureText('A');
-  const a_width = tm.width;
-  tm = ctx.measureText('B');
-  const b_width = tm.width;
-  tm = ctx.measureText('C');
-  const c_width = tm.width;
-  const epsilon = 1.0e-4;
-
-  tm = ctx.measureText('ABC');
-  _assert(tm.caretPositionFromPoint(0) == 0, "tm.caretPositionFromPoint(0) == 0");
-  _assert(tm.caretPositionFromPoint(a_width / 2) == 0, "tm.caretPositionFromPoint(a_width / 2) == 0");
-  _assert(tm.caretPositionFromPoint(a_width / 2 + 1) == 1, "tm.caretPositionFromPoint(a_width / 2 + 1) == 1");
-  _assert(tm.caretPositionFromPoint(a_width) == 1, "tm.caretPositionFromPoint(a_width) == 1");
-  _assert(tm.caretPositionFromPoint(a_width + b_width / 2) == 1, "tm.caretPositionFromPoint(a_width + b_width / 2) == 1");
-  _assert(tm.caretPositionFromPoint(a_width + b_width / 2 + 1) == 2, "tm.caretPositionFromPoint(a_width + b_width / 2 + 1) == 2");
-  _assert(tm.caretPositionFromPoint(a_width + b_width) == 2, "tm.caretPositionFromPoint(a_width + b_width) == 2");
-  _assert(tm.caretPositionFromPoint(a_width + b_width + c_width / 2) == 2, "tm.caretPositionFromPoint(a_width + b_width + c_width / 2) == 2");
-  _assert(tm.caretPositionFromPoint(a_width + b_width + c_width / 2 + 1) == 3, "tm.caretPositionFromPoint(a_width + b_width + c_width / 2 + 1) == 3");
-  _assert(tm.caretPositionFromPoint(a_width + b_width + c_width) == 3, "tm.caretPositionFromPoint(a_width + b_width + c_width) == 3");
-
-}, "Test the edge cases for caretPositionFromPoint, where the point is at the edge of glyph and at the midpoint.");
-</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.caret-position-edge-cases.tentative.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.caret-position-edge-cases.tentative.worker.js
deleted file mode 100644
index 8353922..0000000
--- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.caret-position-edge-cases.tentative.worker.js
+++ /dev/null
@@ -1,41 +0,0 @@
-// DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py.
-// OffscreenCanvas test in a worker:2d.text.measure.caret-position-edge-cases.tentative
-// Description:Test the edge cases for caretPositionFromPoint, where the point is at the edge of glyph and at the midpoint.
-// Note:
-
-importScripts("/resources/testharness.js");
-importScripts("/html/canvas/resources/canvas-tests.js");
-
-promise_test(async t => {
-  var canvas = new OffscreenCanvas(100, 50);
-  var ctx = canvas.getContext('2d');
-
-  var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
-  f.load();
-  self.fonts.add(f);
-  await self.fonts.ready;
-  ctx.font = '50px CanvasTest';
-  ctx.direction = 'ltr';
-  ctx.align = 'left'
-  ctx.baseline = 'alphabetic'
-  tm = ctx.measureText('A');
-  const a_width = tm.width;
-  tm = ctx.measureText('B');
-  const b_width = tm.width;
-  tm = ctx.measureText('C');
-  const c_width = tm.width;
-  const epsilon = 1.0e-4;
-
-  tm = ctx.measureText('ABC');
-  _assert(tm.caretPositionFromPoint(0) == 0, "tm.caretPositionFromPoint(0) == 0");
-  _assert(tm.caretPositionFromPoint(a_width / 2) == 0, "tm.caretPositionFromPoint(a_width / 2) == 0");
-  _assert(tm.caretPositionFromPoint(a_width / 2 + 1) == 1, "tm.caretPositionFromPoint(a_width / 2 + 1) == 1");
-  _assert(tm.caretPositionFromPoint(a_width) == 1, "tm.caretPositionFromPoint(a_width) == 1");
-  _assert(tm.caretPositionFromPoint(a_width + b_width / 2) == 1, "tm.caretPositionFromPoint(a_width + b_width / 2) == 1");
-  _assert(tm.caretPositionFromPoint(a_width + b_width / 2 + 1) == 2, "tm.caretPositionFromPoint(a_width + b_width / 2 + 1) == 2");
-  _assert(tm.caretPositionFromPoint(a_width + b_width) == 2, "tm.caretPositionFromPoint(a_width + b_width) == 2");
-  _assert(tm.caretPositionFromPoint(a_width + b_width + c_width / 2) == 2, "tm.caretPositionFromPoint(a_width + b_width + c_width / 2) == 2");
-  _assert(tm.caretPositionFromPoint(a_width + b_width + c_width / 2 + 1) == 3, "tm.caretPositionFromPoint(a_width + b_width + c_width / 2 + 1) == 3");
-  _assert(tm.caretPositionFromPoint(a_width + b_width + c_width) == 3, "tm.caretPositionFromPoint(a_width + b_width + c_width) == 3");
-}, "Test the edge cases for caretPositionFromPoint, where the point is at the edge of glyph and at the midpoint.");
-done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.index-from-offset-edge-cases.tentative.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.index-from-offset-edge-cases.tentative.html
new file mode 100644
index 0000000..5f0236b
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.index-from-offset-edge-cases.tentative.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<meta charset="UTF-8">
+<title>OffscreenCanvas test: 2d.text.measure.index-from-offset-edge-cases.tentative</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/html/canvas/resources/canvas-tests.js"></script>
+
+<h1>2d.text.measure.index-from-offset-edge-cases.tentative</h1>
+<p class="desc">Test the edge cases for getIndexFromOffset, where the point is at the edge of glyph and at the midpoint.</p>
+
+
+<script>
+promise_test(async t => {
+
+  var canvas = new OffscreenCanvas(100, 50);
+  var ctx = canvas.getContext('2d');
+
+  var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+  f.load();
+  document.fonts.add(f);
+  await document.fonts.ready;
+  ctx.font = '50px CanvasTest';
+  ctx.direction = 'ltr';
+  ctx.align = 'left'
+  ctx.baseline = 'alphabetic'
+  tm = ctx.measureText('A');
+  const a_width = tm.width;
+  tm = ctx.measureText('B');
+  const b_width = tm.width;
+  tm = ctx.measureText('C');
+  const c_width = tm.width;
+  const epsilon = 1.0e-4;
+
+  tm = ctx.measureText('ABC');
+  _assert(tm.getIndexFromOffset(0) == 0, "tm.getIndexFromOffset(0) == 0");
+  _assert(tm.getIndexFromOffset(a_width / 2) == 0, "tm.getIndexFromOffset(a_width / 2) == 0");
+  _assert(tm.getIndexFromOffset(a_width / 2 + 1) == 1, "tm.getIndexFromOffset(a_width / 2 + 1) == 1");
+  _assert(tm.getIndexFromOffset(a_width) == 1, "tm.getIndexFromOffset(a_width) == 1");
+  _assert(tm.getIndexFromOffset(a_width + b_width / 2) == 1, "tm.getIndexFromOffset(a_width + b_width / 2) == 1");
+  _assert(tm.getIndexFromOffset(a_width + b_width / 2 + 1) == 2, "tm.getIndexFromOffset(a_width + b_width / 2 + 1) == 2");
+  _assert(tm.getIndexFromOffset(a_width + b_width) == 2, "tm.getIndexFromOffset(a_width + b_width) == 2");
+  _assert(tm.getIndexFromOffset(a_width + b_width + c_width / 2) == 2, "tm.getIndexFromOffset(a_width + b_width + c_width / 2) == 2");
+  _assert(tm.getIndexFromOffset(a_width + b_width + c_width / 2 + 1) == 3, "tm.getIndexFromOffset(a_width + b_width + c_width / 2 + 1) == 3");
+  _assert(tm.getIndexFromOffset(a_width + b_width + c_width) == 3, "tm.getIndexFromOffset(a_width + b_width + c_width) == 3");
+
+}, "Test the edge cases for getIndexFromOffset, where the point is at the edge of glyph and at the midpoint.");
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.index-from-offset-edge-cases.tentative.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.index-from-offset-edge-cases.tentative.worker.js
new file mode 100644
index 0000000..ae08c78d
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.index-from-offset-edge-cases.tentative.worker.js
@@ -0,0 +1,41 @@
+// DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py.
+// OffscreenCanvas test in a worker:2d.text.measure.index-from-offset-edge-cases.tentative
+// Description:Test the edge cases for getIndexFromOffset, where the point is at the edge of glyph and at the midpoint.
+// Note:
+
+importScripts("/resources/testharness.js");
+importScripts("/html/canvas/resources/canvas-tests.js");
+
+promise_test(async t => {
+  var canvas = new OffscreenCanvas(100, 50);
+  var ctx = canvas.getContext('2d');
+
+  var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+  f.load();
+  self.fonts.add(f);
+  await self.fonts.ready;
+  ctx.font = '50px CanvasTest';
+  ctx.direction = 'ltr';
+  ctx.align = 'left'
+  ctx.baseline = 'alphabetic'
+  tm = ctx.measureText('A');
+  const a_width = tm.width;
+  tm = ctx.measureText('B');
+  const b_width = tm.width;
+  tm = ctx.measureText('C');
+  const c_width = tm.width;
+  const epsilon = 1.0e-4;
+
+  tm = ctx.measureText('ABC');
+  _assert(tm.getIndexFromOffset(0) == 0, "tm.getIndexFromOffset(0) == 0");
+  _assert(tm.getIndexFromOffset(a_width / 2) == 0, "tm.getIndexFromOffset(a_width / 2) == 0");
+  _assert(tm.getIndexFromOffset(a_width / 2 + 1) == 1, "tm.getIndexFromOffset(a_width / 2 + 1) == 1");
+  _assert(tm.getIndexFromOffset(a_width) == 1, "tm.getIndexFromOffset(a_width) == 1");
+  _assert(tm.getIndexFromOffset(a_width + b_width / 2) == 1, "tm.getIndexFromOffset(a_width + b_width / 2) == 1");
+  _assert(tm.getIndexFromOffset(a_width + b_width / 2 + 1) == 2, "tm.getIndexFromOffset(a_width + b_width / 2 + 1) == 2");
+  _assert(tm.getIndexFromOffset(a_width + b_width) == 2, "tm.getIndexFromOffset(a_width + b_width) == 2");
+  _assert(tm.getIndexFromOffset(a_width + b_width + c_width / 2) == 2, "tm.getIndexFromOffset(a_width + b_width + c_width / 2) == 2");
+  _assert(tm.getIndexFromOffset(a_width + b_width + c_width / 2 + 1) == 3, "tm.getIndexFromOffset(a_width + b_width + c_width / 2 + 1) == 3");
+  _assert(tm.getIndexFromOffset(a_width + b_width + c_width) == 3, "tm.getIndexFromOffset(a_width + b_width + c_width) == 3");
+}, "Test the edge cases for getIndexFromOffset, where the point is at the edge of glyph and at the midpoint.");
+done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.caret-position-edges.tentative.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.index-from-offset-edges.tentative.html
similarity index 87%
rename from third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.caret-position-edges.tentative.html
rename to third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.index-from-offset-edges.tentative.html
index a6e45274..fbefdd5 100644
--- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.caret-position-edges.tentative.html
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.index-from-offset-edges.tentative.html
@@ -1,12 +1,12 @@
 <!DOCTYPE html>
 <!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
 <meta charset="UTF-8">
-<title>OffscreenCanvas test: 2d.text.measure.caret-position-edges.tentative</title>
+<title>OffscreenCanvas test: 2d.text.measure.index-from-offset-edges.tentative</title>
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="/html/canvas/resources/canvas-tests.js"></script>
 
-<h1>2d.text.measure.caret-position-edges.tentative</h1>
+<h1>2d.text.measure.index-from-offset-edges.tentative</h1>
 
 <script>
 
@@ -72,13 +72,13 @@
   text_width = tm.width;
   for (const multiple of kPoints) {
     offset = multiple * text_width;
-    tm_position = tm.caretPositionFromPoint(offset);
+    tm_position = tm.getIndexFromOffset(offset);
     expected_position = computeExpected(text, text_width, offset);
     assert_equals(tm_position,
                   expected_position,
                   "for " + text + " multiple " + multiple);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction ltr and text align left.");
+}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction ltr and text align left.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -142,13 +142,13 @@
   text_width = tm.width;
   for (const multiple of kPoints) {
     offset = multiple * text_width;
-    tm_position = tm.caretPositionFromPoint(offset);
+    tm_position = tm.getIndexFromOffset(offset);
     expected_position = computeExpected(text, text_width, offset);
     assert_equals(tm_position,
                   expected_position,
                   "for " + text + " multiple " + multiple);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction rtl and text align left.");
+}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction rtl and text align left.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -212,13 +212,13 @@
   text_width = tm.width;
   for (const multiple of kPoints) {
     offset = multiple * text_width;
-    tm_position = tm.caretPositionFromPoint(offset);
+    tm_position = tm.getIndexFromOffset(offset);
     expected_position = computeExpected(text, text_width, offset);
     assert_equals(tm_position,
                   expected_position,
                   "for " + text + " multiple " + multiple);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction ltr and text align center.");
+}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction ltr and text align center.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -282,13 +282,13 @@
   text_width = tm.width;
   for (const multiple of kPoints) {
     offset = multiple * text_width;
-    tm_position = tm.caretPositionFromPoint(offset);
+    tm_position = tm.getIndexFromOffset(offset);
     expected_position = computeExpected(text, text_width, offset);
     assert_equals(tm_position,
                   expected_position,
                   "for " + text + " multiple " + multiple);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction rtl and text align center.");
+}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction rtl and text align center.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -352,13 +352,13 @@
   text_width = tm.width;
   for (const multiple of kPoints) {
     offset = multiple * text_width;
-    tm_position = tm.caretPositionFromPoint(offset);
+    tm_position = tm.getIndexFromOffset(offset);
     expected_position = computeExpected(text, text_width, offset);
     assert_equals(tm_position,
                   expected_position,
                   "for " + text + " multiple " + multiple);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction ltr and text align right.");
+}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction ltr and text align right.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -422,13 +422,13 @@
   text_width = tm.width;
   for (const multiple of kPoints) {
     offset = multiple * text_width;
-    tm_position = tm.caretPositionFromPoint(offset);
+    tm_position = tm.getIndexFromOffset(offset);
     expected_position = computeExpected(text, text_width, offset);
     assert_equals(tm_position,
                   expected_position,
                   "for " + text + " multiple " + multiple);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction rtl and text align right.");
+}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction rtl and text align right.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -492,13 +492,13 @@
   text_width = tm.width;
   for (const multiple of kPoints) {
     offset = multiple * text_width;
-    tm_position = tm.caretPositionFromPoint(offset);
+    tm_position = tm.getIndexFromOffset(offset);
     expected_position = computeExpected(text, text_width, offset);
     assert_equals(tm_position,
                   expected_position,
                   "for " + text + " multiple " + multiple);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction ltr and text align start.");
+}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction ltr and text align start.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -562,13 +562,13 @@
   text_width = tm.width;
   for (const multiple of kPoints) {
     offset = multiple * text_width;
-    tm_position = tm.caretPositionFromPoint(offset);
+    tm_position = tm.getIndexFromOffset(offset);
     expected_position = computeExpected(text, text_width, offset);
     assert_equals(tm_position,
                   expected_position,
                   "for " + text + " multiple " + multiple);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction rtl and text align start.");
+}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction rtl and text align start.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -632,13 +632,13 @@
   text_width = tm.width;
   for (const multiple of kPoints) {
     offset = multiple * text_width;
-    tm_position = tm.caretPositionFromPoint(offset);
+    tm_position = tm.getIndexFromOffset(offset);
     expected_position = computeExpected(text, text_width, offset);
     assert_equals(tm_position,
                   expected_position,
                   "for " + text + " multiple " + multiple);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction ltr and text align end.");
+}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction ltr and text align end.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -702,12 +702,12 @@
   text_width = tm.width;
   for (const multiple of kPoints) {
     offset = multiple * text_width;
-    tm_position = tm.caretPositionFromPoint(offset);
+    tm_position = tm.getIndexFromOffset(offset);
     expected_position = computeExpected(text, text_width, offset);
     assert_equals(tm_position,
                   expected_position,
                   "for " + text + " multiple " + multiple);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction rtl and text align end.");
+}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction rtl and text align end.");
 
 </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.caret-position-edges.tentative.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.index-from-offset-edges.tentative.worker.js
similarity index 88%
rename from third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.caret-position-edges.tentative.worker.js
rename to third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.index-from-offset-edges.tentative.worker.js
index 2cef843..2ec89e8 100644
--- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.caret-position-edges.tentative.worker.js
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.index-from-offset-edges.tentative.worker.js
@@ -1,5 +1,5 @@
 // DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py.
-// OffscreenCanvas test in a worker:2d.text.measure.caret-position-edges.tentative
+// OffscreenCanvas test in a worker:2d.text.measure.index-from-offset-edges.tentative
 // Description:
 // Note:
 
@@ -68,13 +68,13 @@
   text_width = tm.width;
   for (const multiple of kPoints) {
     offset = multiple * text_width;
-    tm_position = tm.caretPositionFromPoint(offset);
+    tm_position = tm.getIndexFromOffset(offset);
     expected_position = computeExpected(text, text_width, offset);
     assert_equals(tm_position,
                   expected_position,
                   "for " + text + " multiple " + multiple);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction ltr and text align left.");
+}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction ltr and text align left.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -138,13 +138,13 @@
   text_width = tm.width;
   for (const multiple of kPoints) {
     offset = multiple * text_width;
-    tm_position = tm.caretPositionFromPoint(offset);
+    tm_position = tm.getIndexFromOffset(offset);
     expected_position = computeExpected(text, text_width, offset);
     assert_equals(tm_position,
                   expected_position,
                   "for " + text + " multiple " + multiple);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction rtl and text align left.");
+}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction rtl and text align left.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -208,13 +208,13 @@
   text_width = tm.width;
   for (const multiple of kPoints) {
     offset = multiple * text_width;
-    tm_position = tm.caretPositionFromPoint(offset);
+    tm_position = tm.getIndexFromOffset(offset);
     expected_position = computeExpected(text, text_width, offset);
     assert_equals(tm_position,
                   expected_position,
                   "for " + text + " multiple " + multiple);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction ltr and text align center.");
+}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction ltr and text align center.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -278,13 +278,13 @@
   text_width = tm.width;
   for (const multiple of kPoints) {
     offset = multiple * text_width;
-    tm_position = tm.caretPositionFromPoint(offset);
+    tm_position = tm.getIndexFromOffset(offset);
     expected_position = computeExpected(text, text_width, offset);
     assert_equals(tm_position,
                   expected_position,
                   "for " + text + " multiple " + multiple);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction rtl and text align center.");
+}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction rtl and text align center.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -348,13 +348,13 @@
   text_width = tm.width;
   for (const multiple of kPoints) {
     offset = multiple * text_width;
-    tm_position = tm.caretPositionFromPoint(offset);
+    tm_position = tm.getIndexFromOffset(offset);
     expected_position = computeExpected(text, text_width, offset);
     assert_equals(tm_position,
                   expected_position,
                   "for " + text + " multiple " + multiple);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction ltr and text align right.");
+}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction ltr and text align right.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -418,13 +418,13 @@
   text_width = tm.width;
   for (const multiple of kPoints) {
     offset = multiple * text_width;
-    tm_position = tm.caretPositionFromPoint(offset);
+    tm_position = tm.getIndexFromOffset(offset);
     expected_position = computeExpected(text, text_width, offset);
     assert_equals(tm_position,
                   expected_position,
                   "for " + text + " multiple " + multiple);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction rtl and text align right.");
+}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction rtl and text align right.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -488,13 +488,13 @@
   text_width = tm.width;
   for (const multiple of kPoints) {
     offset = multiple * text_width;
-    tm_position = tm.caretPositionFromPoint(offset);
+    tm_position = tm.getIndexFromOffset(offset);
     expected_position = computeExpected(text, text_width, offset);
     assert_equals(tm_position,
                   expected_position,
                   "for " + text + " multiple " + multiple);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction ltr and text align start.");
+}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction ltr and text align start.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -558,13 +558,13 @@
   text_width = tm.width;
   for (const multiple of kPoints) {
     offset = multiple * text_width;
-    tm_position = tm.caretPositionFromPoint(offset);
+    tm_position = tm.getIndexFromOffset(offset);
     expected_position = computeExpected(text, text_width, offset);
     assert_equals(tm_position,
                   expected_position,
                   "for " + text + " multiple " + multiple);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction rtl and text align start.");
+}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction rtl and text align start.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -628,13 +628,13 @@
   text_width = tm.width;
   for (const multiple of kPoints) {
     offset = multiple * text_width;
-    tm_position = tm.caretPositionFromPoint(offset);
+    tm_position = tm.getIndexFromOffset(offset);
     expected_position = computeExpected(text, text_width, offset);
     assert_equals(tm_position,
                   expected_position,
                   "for " + text + " multiple " + multiple);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction ltr and text align end.");
+}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction ltr and text align end.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -698,12 +698,12 @@
   text_width = tm.width;
   for (const multiple of kPoints) {
     offset = multiple * text_width;
-    tm_position = tm.caretPositionFromPoint(offset);
+    tm_position = tm.getIndexFromOffset(offset);
     expected_position = computeExpected(text, text_width, offset);
     assert_equals(tm_position,
                   expected_position,
                   "for " + text + " multiple " + multiple);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction rtl and text align end.");
+}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction rtl and text align end.");
 
 done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.caret-position.tentative.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.index-from-offset.tentative.html
similarity index 88%
rename from third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.caret-position.tentative.html
rename to third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.index-from-offset.tentative.html
index 3c1873a..18e42af 100644
--- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.caret-position.tentative.html
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.index-from-offset.tentative.html
@@ -1,12 +1,12 @@
 <!DOCTYPE html>
 <!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
 <meta charset="UTF-8">
-<title>OffscreenCanvas test: 2d.text.measure.caret-position.tentative</title>
+<title>OffscreenCanvas test: 2d.text.measure.index-from-offset.tentative</title>
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="/html/canvas/resources/canvas-tests.js"></script>
 
-<h1>2d.text.measure.caret-position.tentative</h1>
+<h1>2d.text.measure.index-from-offset.tentative</h1>
 
 <script>
 
@@ -84,7 +84,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -92,7 +92,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -100,7 +100,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -108,13 +108,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align left, 0px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align left, 0px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -190,7 +190,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -198,7 +198,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -206,7 +206,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -214,13 +214,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align left, 0px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align left, 0px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -296,7 +296,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -304,7 +304,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -312,7 +312,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -320,13 +320,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align center, 0px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align center, 0px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -402,7 +402,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -410,7 +410,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -418,7 +418,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -426,13 +426,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align center, 0px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align center, 0px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -508,7 +508,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -516,7 +516,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -524,7 +524,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -532,13 +532,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align right, 0px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align right, 0px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -614,7 +614,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -622,7 +622,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -630,7 +630,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -638,13 +638,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align right, 0px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align right, 0px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -720,7 +720,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -728,7 +728,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -736,7 +736,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -744,13 +744,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align start, 0px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align start, 0px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -826,7 +826,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -834,7 +834,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -842,7 +842,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -850,13 +850,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align start, 0px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align start, 0px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -932,7 +932,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -940,7 +940,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -948,7 +948,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -956,13 +956,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align end, 0px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align end, 0px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -1038,7 +1038,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1046,7 +1046,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1054,7 +1054,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1062,13 +1062,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align end, 0px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align end, 0px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -1144,7 +1144,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1152,7 +1152,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1160,7 +1160,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1168,13 +1168,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align left, 10px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align left, 10px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -1250,7 +1250,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1258,7 +1258,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1266,7 +1266,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1274,13 +1274,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align left, 10px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align left, 10px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -1356,7 +1356,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1364,7 +1364,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1372,7 +1372,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1380,13 +1380,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align center, 10px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align center, 10px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -1462,7 +1462,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1470,7 +1470,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1478,7 +1478,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1486,13 +1486,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align center, 10px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align center, 10px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -1568,7 +1568,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1576,7 +1576,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1584,7 +1584,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1592,13 +1592,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align right, 10px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align right, 10px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -1674,7 +1674,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1682,7 +1682,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1690,7 +1690,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1698,13 +1698,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align right, 10px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align right, 10px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -1780,7 +1780,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1788,7 +1788,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1796,7 +1796,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1804,13 +1804,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align start, 10px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align start, 10px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -1886,7 +1886,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1894,7 +1894,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1902,7 +1902,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -1910,13 +1910,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align start, 10px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align start, 10px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -1992,7 +1992,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2000,7 +2000,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2008,7 +2008,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2016,13 +2016,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align end, 10px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align end, 10px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -2098,7 +2098,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2106,7 +2106,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2114,7 +2114,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2122,13 +2122,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align end, 10px letter spacing and no-directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align end, 10px letter spacing and no-directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -2215,7 +2215,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2223,7 +2223,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2231,7 +2231,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2239,13 +2239,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align left, 0px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align left, 0px letter spacing and directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -2332,7 +2332,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2340,7 +2340,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2348,7 +2348,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2356,13 +2356,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align left, 0px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align left, 0px letter spacing and directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -2449,7 +2449,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2457,7 +2457,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2465,7 +2465,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2473,13 +2473,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align center, 0px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align center, 0px letter spacing and directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -2566,7 +2566,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2574,7 +2574,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2582,7 +2582,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2590,13 +2590,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align center, 0px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align center, 0px letter spacing and directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -2683,7 +2683,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2691,7 +2691,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2699,7 +2699,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2707,13 +2707,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align right, 0px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align right, 0px letter spacing and directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -2800,7 +2800,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2808,7 +2808,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2816,7 +2816,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2824,13 +2824,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align right, 0px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align right, 0px letter spacing and directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -2917,7 +2917,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2925,7 +2925,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2933,7 +2933,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -2941,13 +2941,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align start, 0px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align start, 0px letter spacing and directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -3034,7 +3034,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3042,7 +3042,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3050,7 +3050,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3058,13 +3058,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align start, 0px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align start, 0px letter spacing and directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -3151,7 +3151,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3159,7 +3159,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3167,7 +3167,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3175,13 +3175,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align end, 0px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align end, 0px letter spacing and directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -3268,7 +3268,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3276,7 +3276,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3284,7 +3284,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3292,13 +3292,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align end, 0px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align end, 0px letter spacing and directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -3385,7 +3385,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3393,7 +3393,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3401,7 +3401,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3409,13 +3409,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align left, 10px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align left, 10px letter spacing and directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -3502,7 +3502,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3510,7 +3510,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3518,7 +3518,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3526,13 +3526,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align left, 10px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align left, 10px letter spacing and directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -3619,7 +3619,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3627,7 +3627,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3635,7 +3635,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3643,13 +3643,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align center, 10px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align center, 10px letter spacing and directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -3736,7 +3736,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3744,7 +3744,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3752,7 +3752,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3760,13 +3760,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align center, 10px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align center, 10px letter spacing and directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -3853,7 +3853,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3861,7 +3861,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3869,7 +3869,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3877,13 +3877,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align right, 10px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align right, 10px letter spacing and directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -3970,7 +3970,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3978,7 +3978,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3986,7 +3986,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -3994,13 +3994,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align right, 10px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align right, 10px letter spacing and directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -4087,7 +4087,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -4095,7 +4095,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -4103,7 +4103,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -4111,13 +4111,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align start, 10px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align start, 10px letter spacing and directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -4204,7 +4204,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -4212,7 +4212,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -4220,7 +4220,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -4228,13 +4228,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align start, 10px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align start, 10px letter spacing and directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -4321,7 +4321,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -4329,7 +4329,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -4337,7 +4337,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -4345,13 +4345,13 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction ltr, text align end, 10px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction ltr, text align end, 10px letter spacing and directional-override.");
 
 test(t => {
   const canvas = new OffscreenCanvas(100, 50);
@@ -4438,7 +4438,7 @@
 
     offset = step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -4446,7 +4446,7 @@
 
     offset = text_width / 2 - 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -4454,7 +4454,7 @@
 
     offset = text_width / 2 + 10;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
@@ -4462,12 +4462,12 @@
 
     offset = text_width - step;
     adjusted_offset = alignOffset(offset, text_width);
-    tm_position = tm.caretPositionFromPoint(adjusted_offset);
+    tm_position = tm.getIndexFromOffset(adjusted_offset);
     doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
     assert_equals(tm_position,
                   doc_position,
                   "for " + text + " offset " + offset);
   }
-}, "Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, where possible, with direction rtl, text align end, 10px letter spacing and directional-override.");
+}, "Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction rtl, text align end, 10px letter spacing and directional-override.");
 
 </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.text-clusters-rendering-options.tentative.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.text-clusters-rendering-options.tentative.html
new file mode 100644
index 0000000..6450135
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.text-clusters-rendering-options.tentative.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<meta charset="UTF-8">
+<title>OffscreenCanvas test: 2d.text.measure.text-clusters-rendering-options.tentative</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/html/canvas/resources/canvas-tests.js"></script>
+
+<h1>2d.text.measure.text-clusters-rendering-options.tentative</h1>
+<p class="desc">Test that fillTextCluster() correctly applies the options passed as a dictionary.</p>
+
+
+<script>
+promise_test(async t => {
+
+  var canvas = new OffscreenCanvas(100, 300);
+  var ctx = canvas.getContext('2d');
+
+  var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+  f.load();
+  document.fonts.add(f);
+  await document.fonts.ready;
+
+  ctx.font = '50px CanvasTest';
+  ctx.textAlign = 'left';
+  ctx.textBaseline = 'top';
+  const text = 'E';
+  const tm = ctx.measureText(text);
+  const cluster = tm.getTextClusters()[0];
+
+  // Background color.
+  ctx.fillStyle = '#f00';
+  ctx.fillRect(0, 0, canvas.width, canvas.height);
+
+  ctx.fillStyle = '#0f0';
+
+  // Override the align and baseline of the cluster.
+  ctx.fillTextCluster(cluster, 50, 50, {align: 'right', baseline: 'bottom'});
+  _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 45,5, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 45,45, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 55,5, 255,0,0,255, 2);
+  _assertPixelApprox(canvas, 5,55, 255,0,0,255, 2);
+  _assertPixelApprox(canvas, 5,55, 255,0,0,255, 2);
+  _assertPixelApprox(canvas, 55,55, 255,0,0,255, 2);
+
+  // Override the x and y values of the cluster.
+  ctx.fillTextCluster(cluster, 0, 100, {x: 10, y: 10});
+  _assertPixelApprox(canvas, 15,115, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 55,115, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 15,155, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 55,155, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 65,115, 255,0,0,255, 2);
+  _assertPixelApprox(canvas, 15,165, 255,0,0,255, 2);
+  _assertPixelApprox(canvas, 65,165, 255,0,0,255, 2);
+
+  // Override the align, baseline, x, and y values of the cluster.
+  ctx.fillTextCluster(cluster, 50, 250,
+                      {align: 'right', baseline: 'bottom', x: 10,  y: 10});
+  _assertPixelApprox(canvas, 15,215, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 55,215, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 15,255, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 55,255, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 65,215, 255,0,0,255, 2);
+  _assertPixelApprox(canvas, 15,265, 255,0,0,255, 2);
+  _assertPixelApprox(canvas, 65,265, 255,0,0,255, 2);
+
+}, "Test that fillTextCluster() correctly applies the options passed as a dictionary.");
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.text-clusters-rendering-options.tentative.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.text-clusters-rendering-options.tentative.worker.js
new file mode 100644
index 0000000..f55d2c4
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.measure.text-clusters-rendering-options.tentative.worker.js
@@ -0,0 +1,63 @@
+// DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py.
+// OffscreenCanvas test in a worker:2d.text.measure.text-clusters-rendering-options.tentative
+// Description:Test that fillTextCluster() correctly applies the options passed as a dictionary.
+// Note:
+
+importScripts("/resources/testharness.js");
+importScripts("/html/canvas/resources/canvas-tests.js");
+
+promise_test(async t => {
+  var canvas = new OffscreenCanvas(100, 300);
+  var ctx = canvas.getContext('2d');
+
+  var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')");
+  f.load();
+  self.fonts.add(f);
+  await self.fonts.ready;
+
+  ctx.font = '50px CanvasTest';
+  ctx.textAlign = 'left';
+  ctx.textBaseline = 'top';
+  const text = 'E';
+  const tm = ctx.measureText(text);
+  const cluster = tm.getTextClusters()[0];
+
+  // Background color.
+  ctx.fillStyle = '#f00';
+  ctx.fillRect(0, 0, canvas.width, canvas.height);
+
+  ctx.fillStyle = '#0f0';
+
+  // Override the align and baseline of the cluster.
+  ctx.fillTextCluster(cluster, 50, 50, {align: 'right', baseline: 'bottom'});
+  _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 45,5, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 45,45, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 55,5, 255,0,0,255, 2);
+  _assertPixelApprox(canvas, 5,55, 255,0,0,255, 2);
+  _assertPixelApprox(canvas, 5,55, 255,0,0,255, 2);
+  _assertPixelApprox(canvas, 55,55, 255,0,0,255, 2);
+
+  // Override the x and y values of the cluster.
+  ctx.fillTextCluster(cluster, 0, 100, {x: 10, y: 10});
+  _assertPixelApprox(canvas, 15,115, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 55,115, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 15,155, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 55,155, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 65,115, 255,0,0,255, 2);
+  _assertPixelApprox(canvas, 15,165, 255,0,0,255, 2);
+  _assertPixelApprox(canvas, 65,165, 255,0,0,255, 2);
+
+  // Override the align, baseline, x, and y values of the cluster.
+  ctx.fillTextCluster(cluster, 50, 250,
+                      {align: 'right', baseline: 'bottom', x: 10,  y: 10});
+  _assertPixelApprox(canvas, 15,215, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 55,215, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 15,255, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 55,255, 0,255,0,255, 2);
+  _assertPixelApprox(canvas, 65,215, 255,0,0,255, 2);
+  _assertPixelApprox(canvas, 15,265, 255,0,0,255, 2);
+  _assertPixelApprox(canvas, 65,265, 255,0,0,255, 2);
+}, "Test that fillTextCluster() correctly applies the options passed as a dictionary.");
+done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml-new/text.yaml b/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml-new/text.yaml
index 3863050..42bf9a3 100644
--- a/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml-new/text.yaml
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml-new/text.yaml
@@ -1719,9 +1719,9 @@
                         () => tm.getActualBoundingBox(text.length, text.length + 1) );
     }
 
-- name: 2d.text.measure.caret-position.tentative
+- name: 2d.text.measure.index-from-offset.tentative
   desc: >-
-    Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent,
+    Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent,
     where possible, with direction {{ text_direction }}, text align
     {{ text_align }}, {{ letter_spacing }} letter spacing and
     {{ variant_names[3] }}.
@@ -1812,7 +1812,7 @@
 
       offset = step;
       adjusted_offset = alignOffset(offset, text_width);
-      tm_position = tm.caretPositionFromPoint(adjusted_offset);
+      tm_position = tm.getIndexFromOffset(adjusted_offset);
       doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
       assert_equals(tm_position,
                     doc_position,
@@ -1820,7 +1820,7 @@
 
       offset = text_width / 2 - 10;
       adjusted_offset = alignOffset(offset, text_width);
-      tm_position = tm.caretPositionFromPoint(adjusted_offset);
+      tm_position = tm.getIndexFromOffset(adjusted_offset);
       doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
       assert_equals(tm_position,
                     doc_position,
@@ -1828,7 +1828,7 @@
 
       offset = text_width / 2 + 10;
       adjusted_offset = alignOffset(offset, text_width);
-      tm_position = tm.caretPositionFromPoint(adjusted_offset);
+      tm_position = tm.getIndexFromOffset(adjusted_offset);
       doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
       assert_equals(tm_position,
                     doc_position,
@@ -1836,7 +1836,7 @@
 
       offset = text_width - step;
       adjusted_offset = alignOffset(offset, text_width);
-      tm_position = tm.caretPositionFromPoint(adjusted_offset);
+      tm_position = tm.getIndexFromOffset(adjusted_offset);
       doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset);
       assert_equals(tm_position,
                     doc_position,
@@ -1867,9 +1867,9 @@
     directional-override:
       use_directional_override: true
 
-- name: 2d.text.measure.caret-position-edges.tentative
+- name: 2d.text.measure.index-from-offset-edges.tentative
   desc: >-
-    Check that TextMetrics::caretPositionFromPoint() gives correct edges when
+    Check that TextMetrics::getIndexFromOffset() gives correct edges when
     the requested point is outside the range, with direction {{ text_direction }}
     and text align {{ text_align }}.
   code: |
@@ -1931,7 +1931,7 @@
     text_width = tm.width;
     for (const multiple of kPoints) {
       offset = multiple * text_width;
-      tm_position = tm.caretPositionFromPoint(offset);
+      tm_position = tm.getIndexFromOffset(offset);
       expected_position = computeExpected(text, text_width, offset);
       assert_equals(tm_position,
                     expected_position,
@@ -1954,9 +1954,9 @@
     align-end:
       text_align: end
 
-- name: 2d.text.measure.caret-position-edge-cases.tentative
+- name: 2d.text.measure.index-from-offset-edge-cases.tentative
   desc: >-
-    Test the edge cases for caretPositionFromPoint, where the point is at the
+    Test the edge cases for getIndexFromOffset, where the point is at the
     edge of glyph and at the midpoint.
   test_type: promise
   fonts:
@@ -1976,16 +1976,16 @@
     const epsilon = 1.0e-4;
 
     tm = ctx.measureText('ABC');
-    @assert tm.caretPositionFromPoint(0) == 0;
-    @assert tm.caretPositionFromPoint(a_width / 2) == 0;
-    @assert tm.caretPositionFromPoint(a_width / 2 + 1) == 1;
-    @assert tm.caretPositionFromPoint(a_width) == 1;
-    @assert tm.caretPositionFromPoint(a_width + b_width / 2) == 1;
-    @assert tm.caretPositionFromPoint(a_width + b_width / 2 + 1) == 2;
-    @assert tm.caretPositionFromPoint(a_width + b_width) == 2;
-    @assert tm.caretPositionFromPoint(a_width + b_width + c_width / 2) == 2;
-    @assert tm.caretPositionFromPoint(a_width + b_width + c_width / 2 + 1) == 3;
-    @assert tm.caretPositionFromPoint(a_width + b_width + c_width) == 3;
+    @assert tm.getIndexFromOffset(0) == 0;
+    @assert tm.getIndexFromOffset(a_width / 2) == 0;
+    @assert tm.getIndexFromOffset(a_width / 2 + 1) == 1;
+    @assert tm.getIndexFromOffset(a_width) == 1;
+    @assert tm.getIndexFromOffset(a_width + b_width / 2) == 1;
+    @assert tm.getIndexFromOffset(a_width + b_width / 2 + 1) == 2;
+    @assert tm.getIndexFromOffset(a_width + b_width) == 2;
+    @assert tm.getIndexFromOffset(a_width + b_width + c_width / 2) == 2;
+    @assert tm.getIndexFromOffset(a_width + b_width + c_width / 2 + 1) == 3;
+    @assert tm.getIndexFromOffset(a_width + b_width + c_width) == 3;
   variants:
   - *load-font-variant-definition
 
@@ -2300,6 +2300,64 @@
   variants:
   - *load-font-variant-definition
 
+- name: 2d.text.measure.text-clusters-rendering-options.tentative
+  desc: >-
+    Test that fillTextCluster() correctly applies the options passed as a
+    dictionary.
+  test_type: promise
+  fonts:
+  - CanvasTest
+  size: [100, 300]
+  code: |
+    {{ load_font }}
+
+    ctx.font = '50px CanvasTest';
+    ctx.textAlign = 'left';
+    ctx.textBaseline = 'top';
+    const text = 'E';
+    const tm = ctx.measureText(text);
+    const cluster = tm.getTextClusters()[0];
+
+    // Background color.
+    ctx.fillStyle = '#f00';
+    ctx.fillRect(0, 0, canvas.width, canvas.height);
+
+    ctx.fillStyle = '#0f0';
+
+    // Override the align and baseline of the cluster.
+    ctx.fillTextCluster(cluster, 50, 50, {align: 'right', baseline: 'bottom'});
+    @assert pixel 5,5 ==~ 0,255,0,255;
+    @assert pixel 45,5 ==~ 0,255,0,255;
+    @assert pixel 5,45 ==~ 0,255,0,255;
+    @assert pixel 45,45 ==~ 0,255,0,255;
+    @assert pixel 55,5 ==~ 255,0,0,255;
+    @assert pixel 5,55 ==~ 255,0,0,255;
+    @assert pixel 5,55 ==~ 255,0,0,255;
+    @assert pixel 55,55 ==~ 255,0,0,255;
+
+    // Override the x and y values of the cluster.
+    ctx.fillTextCluster(cluster, 0, 100, {x: 10, y: 10});
+    @assert pixel 15,115 ==~ 0,255,0,255;
+    @assert pixel 55,115 ==~ 0,255,0,255;
+    @assert pixel 15,155 ==~ 0,255,0,255;
+    @assert pixel 55,155 ==~ 0,255,0,255;
+    @assert pixel 65,115 ==~ 255,0,0,255;
+    @assert pixel 15,165 ==~ 255,0,0,255;
+    @assert pixel 65,165 ==~ 255,0,0,255;
+
+    // Override the align, baseline, x, and y values of the cluster.
+    ctx.fillTextCluster(cluster, 50, 250,
+                        {align: 'right', baseline: 'bottom', x: 10,  y: 10});
+    @assert pixel 15,215 ==~ 0,255,0,255;
+    @assert pixel 55,215 ==~ 0,255,0,255;
+    @assert pixel 15,255 ==~ 0,255,0,255;
+    @assert pixel 55,255 ==~ 0,255,0,255;
+    @assert pixel 65,215 ==~ 255,0,0,255;
+    @assert pixel 15,265 ==~ 255,0,0,255;
+    @assert pixel 65,265 ==~ 255,0,0,255;
+  variants:
+  - *load-font-variant-definition
+
 - name: 2d.text.drawing.style.absolute.spacing
   desc: Testing letter spacing and word spacing with absolute length
   code: |
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/popovers/popover-minimum-role.html b/third_party/blink/web_tests/external/wpt/html/semantics/popovers/popover-minimum-role.html
index 8606f9839..b46ca81f 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/popovers/popover-minimum-role.html
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/popovers/popover-minimum-role.html
@@ -5,30 +5,39 @@
 <link rel=help href="https://www.w3.org/TR/html-aam-1.0/#att-popover">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
 <script src="resources/popover-utils.js"></script>
 
-<div popover id=popover>Popover</div>
-<div id=div style="display:block">Div</div>
-
+<body>
 <script>
-test((t) => {
-  const popover = document.querySelector('#popover');
-  assert_equals(popover.computedRole,'generic','Closed popover: role is generic');
-  t.add_cleanup(() => popover.hidePopover());
+async function assertRoleEquals(element,expectedRole,message) {
+  const actualRole = await test_driver.get_computed_role(element);
+  assert_equals(actualRole,expectedRole,message);
+}
+function initPopover(t) {
+  const popover = document.createElement('div');
+  t.add_cleanup(() => popover.remove());
+  document.body.appendChild(popover);
+  popover.popover = 'auto';
+  return popover;
+}
+promise_test(async (t) => {
+  const popover = initPopover(t);
+  await assertRoleEquals(popover,'none','role starts as none');
   popover.showPopover();
-  assert_equals(popover.computedRole,'group','With popover attribute, role is group');
-},'If specified on an element with an implicit role of generic, then the element\'s role instead maps to group.');
+  await assertRoleEquals(popover,'group','When the popover is showing, minimum role is group');
+},'The popover attribute, on an element with no implicit role, then the element\'s role instead maps to group.');
 
-test((t) => {
-  const div = document.querySelector('#div');
-  assert_equals(div.computedRole,'generic','Without popover attribute, role is generic');
-  div.setAttribute('popover','');
-  assert_true(isElementVisible(div),'element is visible due to display:block');
-  assert_equals(div.computedRole,'generic','With popover attribute, but before showPopover(), role is still generic');
-  t.add_cleanup(() => div.hidePopover());
-  div.showPopover();
-  assert_equals(div.computedRole,'group','When showing as a popover, role is group');
-  div.removeAttribute('style');
-  assert_equals(div.computedRole,'group','Including with style rule removed');
+promise_test(async (t) => {
+  const popover = initPopover(t);
+  await assertRoleEquals(popover,'none','role starts as none');
+  popover.style='display:block'; // Force visible
+  assert_true(isElementVisible(popover),'element is visible due to display:block');
+  await assertRoleEquals(popover,'group','With popover attribute, when visible (even before showPopover()), role is group');
+  popover.showPopover();
+  await assertRoleEquals(popover,'group','When showing as a popover, role is still group');
+  popover.removeAttribute('style');
+  await assertRoleEquals(popover,'group','Including with style rule removed');
 },'Dynamic changes to popover attribute should change the role.');
 </script>
diff --git a/third_party/blink/web_tests/external/wpt/input-events/input-events-range-exceptions.tentative.html b/third_party/blink/web_tests/external/wpt/input-events/input-events-range-exceptions.tentative.html
new file mode 100644
index 0000000..d2a2b66
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/input-events/input-events-range-exceptions.tentative.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html>
+<meta charset="UTF-8">
+<title>InputEvent.getTargetRanges() should return same array in various timings</title>
+<div contenteditable id="target"></div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+"use strict";
+
+// https://w3c.github.io/input-events/#events-inputevents is not clear that
+// the StaticRange-based APIs are internally represented as Range during event
+// propagation.  However, at least Blink does this, and it requires that an
+// exception thrown when converting a StaticRange to a Range propagates the
+// exception.
+
+let target = document.getElementById("target");
+
+test(() => {
+  target.innerHTML = "hello<span> </span>world";
+  let ev = new InputEvent("input",
+                          {
+                            data: "a",
+                            inputType: "insertText",
+                            targetRanges: [
+                              new StaticRange({
+                                                startContainer: target,
+                                                startOffset: 0,
+                                                endContainer: target,
+                                                endOffset: 3,
+                                              }),
+                            ],
+                          });
+  target.querySelector("span").remove();
+  target.normalize();
+  let ranges = ev.getTargetRanges();
+  assert_equals(ranges.length, 1);
+  assert_equals(ranges[0].startContainer, target);
+  assert_equals(ranges[0].startOffset, 0);
+  assert_equals(ranges[0].endContainer, target);
+  assert_equals(ranges[0].endOffset, 1);
+}, "valid target ranges in Element don't throw exceptions");
+
+test(() => {
+  target.innerHTML = "hello<span> </span>world";
+  assert_throws_dom(
+    "IndexSizeError",
+    () => {
+      // This should throw:
+      let ev = new InputEvent("input",
+                              {
+                                data: "a",
+                                inputType: "insertText",
+                                targetRanges: [
+                                  new StaticRange({
+                                                    startContainer: target,
+                                                    startOffset: 0,
+                                                    endContainer: target,
+                                                    endOffset: 5,
+                                                  }),
+                                ],
+                              });
+      // Run this in case it doesn't throw, to make sure it doesn't crash:
+      ev.getTargetRanges()[0].endOffset;
+    });
+}, "InputEvent constructor throws with invalid range in Element");
+
+test(() => {
+  target.innerHTML = "hello<span> </span>world";
+  let text = target.firstChild;
+  let ev = new InputEvent("input",
+                          {
+                            data: "a",
+                            inputType: "insertText",
+                            targetRanges: [
+                              new StaticRange({
+                                                startContainer: text,
+                                                startOffset: 0,
+                                                endContainer: text,
+                                                endOffset: 3,
+                                              }),
+                            ],
+                          });
+  text.replaceData(1, 1, "eee");
+  let ranges = ev.getTargetRanges();
+  assert_equals(ranges.length, 1);
+  assert_equals(ranges[0].startContainer, text);
+  assert_equals(ranges[0].startOffset, 0);
+  assert_equals(ranges[0].endContainer, text);
+  assert_equals(ranges[0].endOffset, 5);
+}, "valid target ranges in Text don't throw exceptions");
+
+test(() => {
+  target.innerHTML = "hello<span> </span>world";
+  let text = target.firstChild;
+  assert_throws_dom(
+    "IndexSizeError",
+    () => {
+      // This should throw:
+      let ev = new InputEvent("input",
+                              {
+                                data: "a",
+                                inputType: "insertText",
+                                targetRanges: [
+                                  new StaticRange({
+                                                    startContainer: text,
+                                                    startOffset: 0,
+                                                    endContainer: text,
+                                                    endOffset: 12,
+                                                  }),
+                                ],
+                              });
+      // Run this in case it doesn't throw, to make sure it doesn't crash:
+      ev.getTargetRanges()[0].endOffset;
+    });
+}, "InputEvent constructor throws with invalid range in Text");
+
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/navigation-timing/nav2-test-timing-persistent.html b/third_party/blink/web_tests/external/wpt/navigation-timing/nav2-test-timing-persistent.html
index d0fc8c0..4a590b8f 100644
--- a/third_party/blink/web_tests/external/wpt/navigation-timing/nav2-test-timing-persistent.html
+++ b/third_party/blink/web_tests/external/wpt/navigation-timing/nav2-test-timing-persistent.html
@@ -35,8 +35,8 @@
       'loadEventStart',
       'loadEventEnd',
       'redirectCount',
-      `redirectStart`,
-      `redirectEnd`,
+      'redirectStart',
+      'redirectEnd',
       'fetchStart',
       'responseEnd',
     ];
@@ -71,8 +71,44 @@
         verify_timing(pnt, "timing values should remain positive numbers after iframe is removed:")
         resolve();
       })
-    }, "iframe navigation times are persistent after the iframe is removed.");
+    }, "iframe navigation times are persistent after the iframe is removed. Part 1.");
 
+    function getOutOfLoadEventHandler(t) {
+      return new Promise(resolve => t.step_timeout(resolve, 0));
+    }
+
+    function waitForLoad(obj) {
+      return new Promise(resolve => {
+        obj.addEventListener("load", resolve, { once: true });
+      });
+    }
+
+    // 'type' entry should be persistent.
+    promise_test(async function (t) {
+      const iframe = document.createElement("iframe");
+      document.body.appendChild(iframe);
+
+      iframe.src = start_page;
+      await waitForLoad(iframe);
+      await getOutOfLoadEventHandler(t);
+      iframe.contentWindow.location.href = end_page;
+      await waitForLoad(iframe);
+
+      iframe.contentWindow.history.back();
+      await waitForLoad(iframe);
+
+      await new Promise(resolve => {
+        const entries = iframe.contentWindow.performance.getEntriesByType("navigation");
+        assert_equals(entries.length, 1, "Only one navigation time entry");
+        const pnt = entries[0];
+        assert_equals(pnt.name, iframe.contentWindow.location.toString(), "navigation name matches the window.location");
+        assert_true(pnt.name.endsWith("blank_page_green.html"), "navigation name is blank_page_green.html");
+        assert_equals(pnt.type, "back_forward", "type should be back_forward after going back to history");
+        iframe.remove();
+        assert_equals(pnt.type, "back_forward", "type should remain back_forward after iframe is removed");
+        resolve();
+      })
+    }, "iframe navigation times are persistent after the iframe is removed Part 2.");
 
   </script>
 </body>
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/network/cookies-protocol-test.js b/third_party/blink/web_tests/http/tests/inspector-protocol/network/cookies-protocol-test.js
index 1444299..c18fa97 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/network/cookies-protocol-test.js
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/network/cookies-protocol-test.js
@@ -78,6 +78,32 @@
     testRunner.log(`Cookies as seen on server: ${JSON.stringify(body)}`);
   }
 
+  class Barrier {
+    constructor(nExpectedEvents) {
+      ({promise: this.promise, resolve: this.resolve} = Promise.withResolvers());
+      this.count = 0;
+      this.nExpectedEvents = nExpectedEvents;
+    }
+
+    onEvent() {
+      this.count++;
+      if (this.count == this.nExpectedEvents) {
+        this.resolve();
+      }
+    }
+  }
+
+  function listenerWithBarrier(nExpectedEvents, eventListenerCb) {
+    const barrier = new Barrier(nExpectedEvents);
+    return {
+      promise: barrier.promise,
+      listener(event) {
+        eventListenerCb(event);
+        barrier.onEvent();
+      },
+    };
+  }
+
   function listenForSiteHasCookieInOtherPartition(event) {
     testRunner.log(
       'Site has cookie in other partition: '
@@ -92,15 +118,17 @@
   }
 
   async function getPartitionedCookies() {
-    dp.Network.onRequestWillBeSentExtraInfo(
-        listenForSiteHasCookieInOtherPartition);
-    dp.Network.onResponseReceivedExtraInfo(listenForResponsePartitionKey);
+    const reqBarrier = listenerWithBarrier(2, listenForSiteHasCookieInOtherPartition);
+    const respBarrier = listenerWithBarrier(2, listenForResponsePartitionKey);
+    dp.Network.onRequestWillBeSentExtraInfo(reqBarrier.listener);
+    dp.Network.onResponseReceivedExtraInfo(respBarrier.listener);
+
     // This will set a partitioned cookie
     await page.navigate('https://devtools.test:8443/inspector-protocol/resources/iframe-third-party-cookie-parent.php');
 
-    dp.Network.offRequestWillBeSentExtraInfo(
-      listenForSiteHasCookieInOtherPartition);
-    dp.Network.offResponseReceivedExtraInfo(listenForResponsePartitionKey);
+    await Promise.all([reqBarrier.promise, respBarrier.promise]);
+    dp.Network.offRequestWillBeSentExtraInfo(reqBarrier.listener);
+    dp.Network.offResponseReceivedExtraInfo(respBarrier.listener);
 
     await logCookies();
   }
@@ -251,16 +279,17 @@
     deleteAllCookies,
 
     async function getPartitionedCookieFromOpaqueOrigin() {
-      dp.Network.onRequestWillBeSentExtraInfo(
-        listenForSiteHasCookieInOtherPartition);
-      dp.Network.onResponseReceivedExtraInfo(listenForResponsePartitionKey);
+      const reqBarrier = listenerWithBarrier(2, listenForSiteHasCookieInOtherPartition);
+      const respBarrier = listenerWithBarrier(2, listenForResponsePartitionKey);
+      dp.Network.onRequestWillBeSentExtraInfo(reqBarrier.listener);
+      dp.Network.onResponseReceivedExtraInfo(respBarrier.listener);
 
       await page.navigate('https://devtools.test:8443/inspector-protocol/resources/iframe-third-party-cookie-parent.php?opaque');
       await logCookies((await dp.Network.getCookies()).result);
 
-      dp.Network.offRequestWillBeSentExtraInfo(
-        listenForSiteHasCookieInOtherPartition);
-      dp.Network.offResponseReceivedExtraInfo(listenForResponsePartitionKey);
+      await Promise.all([reqBarrier.promise, respBarrier.promise]);
+      dp.Network.offRequestWillBeSentExtraInfo(reqBarrier.listener);
+      dp.Network.offResponseReceivedExtraInfo(respBarrier.listener);
     },
 
     deleteAllCookies,
diff --git a/third_party/blink/web_tests/http/tests/loading/sxg/resources/README.md b/third_party/blink/web_tests/http/tests/loading/sxg/resources/README.md
index e83c19bb..895ad99 100644
--- a/third_party/blink/web_tests/http/tests/loading/sxg/resources/README.md
+++ b/third_party/blink/web_tests/http/tests/loading/sxg/resources/README.md
@@ -1,5 +1,6 @@
 To regenerate the key/certificate pair for the signed-exchanges in this
-directory, run `generate-test-certs.sh`.
+directory, run `generate-test-certs.sh`. Please make sure openssl is in
+the path.
 
 The signed exchange files in this directory are generated using
 `generate-test-sxgs.sh`. it requires command-line tools in the
diff --git a/third_party/blink/web_tests/http/tests/loading/sxg/resources/generate-test-certs.sh b/third_party/blink/web_tests/http/tests/loading/sxg/resources/generate-test-certs.sh
index ca53fa9c..4f7af3d 100755
--- a/third_party/blink/web_tests/http/tests/loading/sxg/resources/generate-test-certs.sh
+++ b/third_party/blink/web_tests/http/tests/loading/sxg/resources/generate-test-certs.sh
@@ -7,7 +7,7 @@
 set -e
 
 topdir=$(git rev-parse --show-toplevel)
-cd $topdir/third_party/blink/tools/blinkpy/third_party/wpt/certs
+cd $topdir/third_party/wpt_tools/certs
 
 openssl ecparam -out 127.0.0.1.sxg.key -name prime256v1 -genkey;
 openssl req -new -sha256 -key 127.0.0.1.sxg.key -out 127.0.0.1.sxg.csr \
@@ -15,5 +15,5 @@
   -config 127.0.0.1.sxg.cnf;
 openssl x509 -req -days 3650 \
   -in 127.0.0.1.sxg.csr -extfile 127.0.0.1.sxg.ext \
-  -CA cacert.pem -CAkey cakey.pem -passin pass:web-platform-tests \
+  -CA cacert.pem -CAkey cacert.key -passin pass:web-platform-tests \
   -set_serial 3 -out 127.0.0.1.sxg.pem
diff --git a/third_party/blink/web_tests/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt b/third_party/blink/web_tests/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt
index a44f9c9..d803e00 100644
--- a/third_party/blink/web_tests/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt
+++ b/third_party/blink/web_tests/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt
@@ -1992,8 +1992,6 @@
     getter x
     getter y
     method constructor
-    setter x
-    setter y
 interface TextDecoder
     attribute @@toStringTag
     getter encoding
@@ -2039,9 +2037,9 @@
     getter hangingBaseline
     getter ideographicBaseline
     getter width
-    method caretPositionFromPoint
     method constructor
     method getActualBoundingBox
+    method getIndexFromOffset
     method getSelectionRects
     method getTextClusters
 interface TimestampTrigger
diff --git a/third_party/blink/web_tests/webexposed/global-interface-listing-dedicated-worker-expected.txt b/third_party/blink/web_tests/webexposed/global-interface-listing-dedicated-worker-expected.txt
index 9b86a38..64f7be2 100644
--- a/third_party/blink/web_tests/webexposed/global-interface-listing-dedicated-worker-expected.txt
+++ b/third_party/blink/web_tests/webexposed/global-interface-listing-dedicated-worker-expected.txt
@@ -2199,8 +2199,6 @@
 [Worker]     getter x
 [Worker]     getter y
 [Worker]     method constructor
-[Worker]     setter x
-[Worker]     setter y
 [Worker] interface TextDecoder
 [Worker]     attribute @@toStringTag
 [Worker]     getter encoding
@@ -2246,9 +2244,9 @@
 [Worker]     getter hangingBaseline
 [Worker]     getter ideographicBaseline
 [Worker]     getter width
-[Worker]     method caretPositionFromPoint
 [Worker]     method constructor
 [Worker]     method getActualBoundingBox
+[Worker]     method getIndexFromOffset
 [Worker]     method getSelectionRects
 [Worker]     method getTextClusters
 [Worker] interface TimestampTrigger
diff --git a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
index 8c9f380..f67055b 100644
--- a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
+++ b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
@@ -9830,8 +9830,6 @@
     getter x
     getter y
     method constructor
-    setter x
-    setter y
 interface TextDecoder
     attribute @@toStringTag
     getter encoding
@@ -9900,9 +9898,9 @@
     getter hangingBaseline
     getter ideographicBaseline
     getter width
-    method caretPositionFromPoint
     method constructor
     method getActualBoundingBox
+    method getIndexFromOffset
     method getSelectionRects
     method getTextClusters
 interface TextTrack : EventTarget
diff --git a/third_party/blink/web_tests/webexposed/global-interface-listing-shared-worker-expected.txt b/third_party/blink/web_tests/webexposed/global-interface-listing-shared-worker-expected.txt
index c150172..8f8620a 100644
--- a/third_party/blink/web_tests/webexposed/global-interface-listing-shared-worker-expected.txt
+++ b/third_party/blink/web_tests/webexposed/global-interface-listing-shared-worker-expected.txt
@@ -1901,8 +1901,6 @@
 [Worker]     getter x
 [Worker]     getter y
 [Worker]     method constructor
-[Worker]     setter x
-[Worker]     setter y
 [Worker] interface TextDecoder
 [Worker]     attribute @@toStringTag
 [Worker]     getter encoding
@@ -1948,9 +1946,9 @@
 [Worker]     getter hangingBaseline
 [Worker]     getter ideographicBaseline
 [Worker]     getter width
-[Worker]     method caretPositionFromPoint
 [Worker]     method constructor
 [Worker]     method getActualBoundingBox
+[Worker]     method getIndexFromOffset
 [Worker]     method getSelectionRects
 [Worker]     method getTextClusters
 [Worker] interface TimestampTrigger
diff --git a/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/resources/customizable-select-styles.css b/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/resources/customizable-select-styles.css
index a82f808..116c6d8 100644
--- a/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/resources/customizable-select-styles.css
+++ b/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/resources/customizable-select-styles.css
@@ -7,7 +7,7 @@
 }
 
 .customizable-select-popover {
-  overflow: auto;
+  box-sizing: border-box;
   border: 1px solid;
   padding: 0;
   color: CanvasText;
@@ -16,17 +16,15 @@
   inset: auto;
   min-inline-size: anchor-size(self-inline);
   min-block-size: 1lh;
-  position-area: block-end span-inline-end;
-  position-try-fallbacks: block-start span-inline-end,
-    block-end span-inline-start,block-start span-inline-start,
-    --below-right-scrollable;
-}
-
-@position-try --below-right-scrollable {
-  position-area: block-end span-inline-end;
-  height: 100%;
+  max-block-size: -webkit-fill-available; /* Can be removed when stretch ships */
+  max-block-size: stretch;
   overflow: auto;
-  align-self: stretch;
+  position-area: block-end span-inline-end;
+  position-try-order: most-block-size;
+  position-try-fallbacks:
+    block-start span-inline-end,
+    block-end span-inline-start,
+    block-start span-inline-start;
 }
 
 .customizable-select-option {
diff --git a/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-left-scroller-ref.html b/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-left-scroller-ref.html
new file mode 100644
index 0000000..687e64d
--- /dev/null
+++ b/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-left-scroller-ref.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<script src="resources/fallback-helper.js"></script>
+<body>
+<script>
+(async () => {
+  await generateReferenceFrame(15,200,1000,`
+    [popover] {
+      position-area: bottom span-left;
+      position-try: unset;
+      height: 100%;
+      overflow: auto;
+      align-self: stretch;
+    }
+  `);
+})();
+</script>
diff --git a/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-scroller.tentative.html b/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-left-scroller.tentative.html
similarity index 71%
copy from third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-scroller.tentative.html
copy to third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-left-scroller.tentative.html
index 9b77a5f..77f97efa 100644
--- a/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-scroller.tentative.html
+++ b/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-left-scroller.tentative.html
@@ -1,14 +1,13 @@
 <!DOCTYPE html>
 <html class=reftest-wait>
 <link rel=author href="mailto:masonf@chromium.org">
-<link rel=match href="select-appearance-fallback-scroller-ref.html">
+<link rel=match href="select-appearance-fallback-bottom-left-scroller-ref.html">
 <script src="/resources/testdriver.js"></script>
 <script src="/resources/testdriver-vendor.js"></script>
 <script src="resources/fallback-helper.js"></script>
-
 <body>
 <script>
 (async () => {
-  await generateTestFrame(15,600,1000);
+  await generateTestFrame(15,200,1000);
 })();
 </script>
diff --git a/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-scroller-ref.html b/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-right-scroller-ref.html
similarity index 100%
rename from third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-scroller-ref.html
rename to third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-right-scroller-ref.html
diff --git a/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-scroller.tentative.html b/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-right-scroller.tentative.html
similarity index 80%
rename from third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-scroller.tentative.html
rename to third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-right-scroller.tentative.html
index 9b77a5f..b7eefc2 100644
--- a/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-scroller.tentative.html
+++ b/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-right-scroller.tentative.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <html class=reftest-wait>
 <link rel=author href="mailto:masonf@chromium.org">
-<link rel=match href="select-appearance-fallback-scroller-ref.html">
+<link rel=match href="select-appearance-fallback-bottom-right-scroller-ref.html">
 <script src="/resources/testdriver.js"></script>
 <script src="/resources/testdriver-vendor.js"></script>
 <script src="resources/fallback-helper.js"></script>
diff --git a/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-left-scroller-ref.html b/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-left-scroller-ref.html
new file mode 100644
index 0000000..3822fb3
--- /dev/null
+++ b/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-left-scroller-ref.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<script src="resources/fallback-helper.js"></script>
+<body>
+<script>
+(async () => {
+  await generateReferenceFrame(15,200,800,`
+    [popover] {
+      position-area: top span-left;
+      position-try: unset;
+      height: 100%;
+      overflow: auto;
+      align-self: stretch;
+    }
+  `);
+})();
+</script>
diff --git a/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-scroller.tentative.html b/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-left-scroller.tentative.html
similarity index 71%
copy from third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-scroller.tentative.html
copy to third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-left-scroller.tentative.html
index 9b77a5f..3f8358f 100644
--- a/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-scroller.tentative.html
+++ b/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-left-scroller.tentative.html
@@ -1,14 +1,13 @@
 <!DOCTYPE html>
 <html class=reftest-wait>
 <link rel=author href="mailto:masonf@chromium.org">
-<link rel=match href="select-appearance-fallback-scroller-ref.html">
+<link rel=match href="select-appearance-fallback-top-left-scroller-ref.html">
 <script src="/resources/testdriver.js"></script>
 <script src="/resources/testdriver-vendor.js"></script>
 <script src="resources/fallback-helper.js"></script>
-
 <body>
 <script>
 (async () => {
-  await generateTestFrame(15,600,1000);
+  await generateTestFrame(15,200,800);
 })();
 </script>
diff --git a/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-right-scroller-ref.html b/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-right-scroller-ref.html
new file mode 100644
index 0000000..5488461
--- /dev/null
+++ b/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-right-scroller-ref.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<script src="resources/fallback-helper.js"></script>
+
+<body>
+<script>
+(async () => {
+  await generateReferenceFrame(15,600,800,`
+    [popover] {
+      position-area: top span-right;
+      position-try: unset;
+      height: 100%;
+      overflow: auto;
+      align-self: stretch;
+    }
+  `);
+})();
+</script>
diff --git a/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-scroller.tentative.html b/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-right-scroller.tentative.html
similarity index 71%
copy from third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-scroller.tentative.html
copy to third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-right-scroller.tentative.html
index 9b77a5f..4d04a7c 100644
--- a/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-scroller.tentative.html
+++ b/third_party/blink/web_tests/wpt_internal/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-right-scroller.tentative.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <html class=reftest-wait>
 <link rel=author href="mailto:masonf@chromium.org">
-<link rel=match href="select-appearance-fallback-scroller-ref.html">
+<link rel=match href="select-appearance-fallback-top-right-scroller-ref.html">
 <script src="/resources/testdriver.js"></script>
 <script src="/resources/testdriver-vendor.js"></script>
 <script src="resources/fallback-helper.js"></script>
@@ -9,6 +9,6 @@
 <body>
 <script>
 (async () => {
-  await generateTestFrame(15,600,1000);
+  await generateTestFrame(15,600,800);
 })();
 </script>
diff --git a/third_party/boringssl/src b/third_party/boringssl/src
index b6eec48..470d9b0 160000
--- a/third_party/boringssl/src
+++ b/third_party/boringssl/src
@@ -1 +1 @@
-Subproject commit b6eec48a579eff1abe70ce6d480a017d6ca3a32c
+Subproject commit 470d9b07dd07353b7b0880f5b843f489ca24330e
diff --git a/third_party/chromium-variations b/third_party/chromium-variations
index 7af220e..d8d5c45 160000
--- a/third_party/chromium-variations
+++ b/third_party/chromium-variations
@@ -1 +1 @@
-Subproject commit 7af220e108a6bfad281d1e8b7c923a269e3654c1
+Subproject commit d8d5c452baadcdcdb85b57b443e211e26d0ad5e6
diff --git a/third_party/d3/README.chromium b/third_party/d3/README.chromium
index 6bf04dc..0a2315da 100644
--- a/third_party/d3/README.chromium
+++ b/third_party/d3/README.chromium
@@ -3,7 +3,7 @@
 URL: https://github.com/d3/d3
 Version: 7.8.4
 CPEPrefix: cpe:/a:d3.js_project:d3.js:7.8.4::~~~node.js~~
-Date: Fri Mar 31 10:43 PM 2023 EDT
+Date: 2023-03-31
 Revision: 37b1960e0af52d12bc7bbea2ed932ea954c36d14
 License: BSD 3-Clause
 License File: src/LICENSE
diff --git a/third_party/depot_tools b/third_party/depot_tools
index 8d20c1e0..c30219e 160000
--- a/third_party/depot_tools
+++ b/third_party/depot_tools
@@ -1 +1 @@
-Subproject commit 8d20c1e0b56c68b14878b597080484f9445962b4
+Subproject commit c30219e4a720a4f91f66983fdb11c5a665da63ac
diff --git a/third_party/devtools-frontend-internal b/third_party/devtools-frontend-internal
index d568021..2534d7d 160000
--- a/third_party/devtools-frontend-internal
+++ b/third_party/devtools-frontend-internal
@@ -1 +1 @@
-Subproject commit d568021d39553f3923662cb2e7badb114fea980b
+Subproject commit 2534d7deee0d3f46def3299aced0f4866ac978de
diff --git a/third_party/eigen3/README.chromium b/third_party/eigen3/README.chromium
index 9b8740c..0fe3f32a 100644
--- a/third_party/eigen3/README.chromium
+++ b/third_party/eigen3/README.chromium
@@ -3,7 +3,7 @@
 URL: https://gitlab.com/libeigen/eigen
 Version: 5610a13b7767a94e063342277e0b9de4de13be57
 Date: 2024-11-25
-License: MPL 2
+License: MPL-2.0
 License File: LICENSE
 Security Critical: Yes
 Shipped: yes
diff --git a/third_party/instrumented_libs b/third_party/instrumented_libs
index bb6dbcf..3cc4311 160000
--- a/third_party/instrumented_libs
+++ b/third_party/instrumented_libs
@@ -1 +1 @@
-Subproject commit bb6dbcf2df7a9beb34c3773ef4df161800e3aed9
+Subproject commit 3cc43119a29158bcde39d288a8def4b8ec49baf8
diff --git a/third_party/libavif/BUILD.gn b/third_party/libavif/BUILD.gn
index 8a50c8c..ca21763 100644
--- a/third_party/libavif/BUILD.gn
+++ b/third_party/libavif/BUILD.gn
@@ -7,7 +7,7 @@
 
 # Public configuration exported to users of the libavif target.
 config("avif_public_config") {
-  defines = [ "AVIF_ENABLE_EXPERIMENTAL_GAIN_MAP" ]
+  defines = [ "AVIF_ENABLE_GAIN_MAP" ]
   if (is_component_build) {
     defines += [ "AVIF_DLL" ]
   }
diff --git a/third_party/libavif/src b/third_party/libavif/src
index 03738d5..3196438 160000
--- a/third_party/libavif/src
+++ b/third_party/libavif/src
@@ -1 +1 @@
-Subproject commit 03738d58595e0d62f0b9f8815a27cc7eb52d1c2a
+Subproject commit 3196438660ca478f85e8a3d209b166adcd845c4a
diff --git a/third_party/llvm-libc/src b/third_party/llvm-libc/src
index 4d75039..ab2f32b 160000
--- a/third_party/llvm-libc/src
+++ b/third_party/llvm-libc/src
@@ -1 +1 @@
-Subproject commit 4d75039545cf1c121eddfb9636e4d19dfbb7fe29
+Subproject commit ab2f32b66014843f072d32d72c560b7dd229c0f3
diff --git a/third_party/nearby/README.chromium b/third_party/nearby/README.chromium
index 32bc6e6..91fe617 100644
--- a/third_party/nearby/README.chromium
+++ b/third_party/nearby/README.chromium
@@ -1,7 +1,7 @@
 Name: Nearby Connections Library
 Short Name: Nearby
 URL: https://github.com/google/nearby
-Version: 0803db861f8db6873b6db96a999ed2254b13836d
+Version: a08b4205455bbf1f05a91b8d4abcce8d2f0156e7
 License: Apache-2.0
 License File: LICENSE
 Security Critical: yes
diff --git a/third_party/nearby/src b/third_party/nearby/src
index 0803db8..a08b420 160000
--- a/third_party/nearby/src
+++ b/third_party/nearby/src
@@ -1 +1 @@
-Subproject commit 0803db861f8db6873b6db96a999ed2254b13836d
+Subproject commit a08b4205455bbf1f05a91b8d4abcce8d2f0156e7
diff --git a/third_party/pdfium b/third_party/pdfium
index c8caabb..6d1b0b3 160000
--- a/third_party/pdfium
+++ b/third_party/pdfium
@@ -1 +1 @@
-Subproject commit c8caabb5a306cc313c41af5bf84fa82ea35f3701
+Subproject commit 6d1b0b3ba801f9c1c87dea35823b5abcaf1ba72f
diff --git a/third_party/perfetto b/third_party/perfetto
index 1a0d053..b4c1dfa 160000
--- a/third_party/perfetto
+++ b/third_party/perfetto
@@ -1 +1 @@
-Subproject commit 1a0d053d2f0d440bd8cfd1fc6421bccd63dd4041
+Subproject commit b4c1dfa24715ef5600fd068b646447707cb9ee08
diff --git a/third_party/skia b/third_party/skia
index 7752438..4c5f736b 160000
--- a/third_party/skia
+++ b/third_party/skia
@@ -1 +1 @@
-Subproject commit 77524387094192e4639253eeabca6ed3fb46dfc0
+Subproject commit 4c5f736b89157519dcdad75c9801c1af9d765f8f
diff --git a/third_party/swiftshader b/third_party/swiftshader
index d91e98d..7e54d43 160000
--- a/third_party/swiftshader
+++ b/third_party/swiftshader
@@ -1 +1 @@
-Subproject commit d91e98d1aa3f18398fd6bfadbb45060cd6e0db3b
+Subproject commit 7e54d43d6905f978ccf90680dd22a48b0ede8d8b
diff --git a/third_party/updater/README.chromium b/third_party/updater/README.chromium
index c55df5da..41cc622a 100644
--- a/third_party/updater/README.chromium
+++ b/third_party/updater/README.chromium
@@ -6,7 +6,7 @@
 License File: LICENSE
 Security Critical: Yes
 Shipped: yes
-CPEPrefix: cpe:2.3:a:google:updater:
+CPEPrefix: cpe:2.3:a:google:updater:*:*:*:*:*:*:*:*
 
 Description:
 The ChromiumUpdater package contains the ChromiumUpdater app bundle, which is
diff --git a/third_party/webgpu-cts/src b/third_party/webgpu-cts/src
index 9223c26..3ed497b 160000
--- a/third_party/webgpu-cts/src
+++ b/third_party/webgpu-cts/src
@@ -1 +1 @@
-Subproject commit 9223c2618d5cb7fe45a90eb1d06c735db8338a39
+Subproject commit 3ed497b59345978f8460b5e375e7cd18f3b98872
diff --git a/third_party/webrtc b/third_party/webrtc
index 93f5f9e..8d5b344 160000
--- a/third_party/webrtc
+++ b/third_party/webrtc
@@ -1 +1 @@
-Subproject commit 93f5f9e8677d61eff3e8669ade6224195a421ebf
+Subproject commit 8d5b344b05e2415be08d31a21c09f89c1d220741
diff --git a/third_party/wpt_tools/README.md b/third_party/wpt_tools/README.md
index c1b655eb..af63bb3 100644
--- a/third_party/wpt_tools/README.md
+++ b/third_party/wpt_tools/README.md
@@ -38,7 +38,7 @@
 "openssl" command, but we check in pre-generated files to avoid "openssl"
 dependency.
 
-These certificates will expire in January 2025. Here is an instruction to
+These certificates will expire in February 2033. Here is an instruction to
 re-generate them:
 
 1. Make sure the following commands are in $PATH.
@@ -49,13 +49,10 @@
  - sed
 2. Run update_certs.py
 3. Look at the "Not After" date in the output of the command, and update
-  "January 2025" in this document and expiration_date in wptserve.py to new
+  "February 2033" in this document and expiration_date in wptserve.py to new
   expiration date.
-4. Update certs/127.0.0.1.sxg.\*.
-  Please refer to
-  //third_party/blink/web_tests/http/tests/loading/sxg/resources/README.md
-5. git commit
-6. git cl upload, etc.
+4. git commit
+5. git cl upload, etc.
 
 Rolling in WPT
 ==============
diff --git a/third_party/wpt_tools/certs/01.pem b/third_party/wpt_tools/certs/01.pem
deleted file mode 100644
index ff31326..0000000
--- a/third_party/wpt_tools/certs/01.pem
+++ /dev/null
@@ -1,83 +0,0 @@
-Certificate:
-    Data:
-        Version: 3 (0x2)
-        Serial Number: 1 (0x1)
-    Signature Algorithm: sha256WithRSAEncryption
-        Issuer: CN=web-platform-tests
-        Validity
-            Not Before: Oct 18 08:36:53 2016 GMT
-            Not After : Jan  4 08:36:53 2025 GMT
-        Subject: CN=web-platform-tests
-        Subject Public Key Info:
-            Public Key Algorithm: rsaEncryption
-                Public-Key: (2048 bit)
-                Modulus:
-                    00:c9:e3:69:85:18:ad:1a:df:ba:6c:05:96:0c:c1:
-                    22:51:78:3a:90:42:88:72:f7:f4:8c:81:59:43:5b:
-                    ea:13:0e:e7:ac:27:c2:72:55:c6:53:48:4f:08:37:
-                    a1:5f:e1:5c:78:24:d3:12:2d:2b:71:c3:51:a3:ad:
-                    0b:c6:a1:95:2d:f5:cf:db:50:64:c8:fa:d0:2a:bc:
-                    ae:a8:2b:44:53:a2:a9:e8:55:92:b7:95:4f:d2:f3:
-                    d9:f1:e1:0b:17:11:ad:62:50:c5:57:4d:43:ed:fc:
-                    6f:14:99:52:ab:27:f4:59:45:f8:86:77:d1:fc:00:
-                    8a:b3:4c:7e:66:1a:b3:04:58:e5:9e:57:52:b8:9d:
-                    ef:cc:ef:59:6e:a0:99:2c:e1:e1:1b:da:19:be:61:
-                    f9:c3:89:76:1e:88:1e:86:64:1f:5b:27:3e:44:7c:
-                    ad:d0:04:b0:57:db:79:bd:1e:7d:4a:73:52:c9:2d:
-                    16:6d:f0:80:2e:07:70:09:2f:ca:a2:c3:12:ae:2c:
-                    51:3d:d4:f3:4e:f6:53:c2:9d:e0:6c:56:6d:36:38:
-                    bc:1e:4f:d9:7e:1e:b9:26:fe:2f:f0:d6:6b:af:02:
-                    bf:4d:93:4b:a7:e7:bd:eb:e7:79:69:b1:65:1f:88:
-                    f0:fd:cc:03:ce:5e:00:83:b9:ad:70:6a:95:78:5b:
-                    97:fb
-                Exponent: 65537 (0x10001)
-        X509v3 extensions:
-            X509v3 Basic Constraints: 
-                CA:TRUE
-            X509v3 Subject Key Identifier: 
-                4E:65:0D:3B:92:B3:5A:4B:34:75:FB:29:26:CA:53:6B:A1:65:15:7E
-            X509v3 Authority Key Identifier: 
-                keyid:4E:65:0D:3B:92:B3:5A:4B:34:75:FB:29:26:CA:53:6B:A1:65:15:7E
-                DirName:/CN=web-platform-tests
-                serial:01
-
-            X509v3 Key Usage: 
-                Certificate Sign
-            X509v3 Extended Key Usage: 
-                TLS Web Server Authentication
-    Signature Algorithm: sha256WithRSAEncryption
-         c6:f0:d9:1e:24:82:3a:b8:d4:b3:92:00:ea:0e:d6:17:e9:8d:
-         a0:7a:35:bc:59:b9:2d:b0:6b:c2:27:74:66:6f:26:18:c2:75:
-         14:4c:29:76:3d:28:3c:6e:66:be:3c:27:55:17:09:f3:f4:2d:
-         1b:ab:b5:b5:5c:f6:5c:24:d1:7d:35:45:30:7e:41:19:79:f8:
-         a1:38:ca:ce:30:35:e0:de:1c:77:f8:fe:cd:dd:25:4c:13:18:
-         d7:9e:8b:35:04:58:24:7e:a3:f5:89:48:fc:28:e7:11:88:ec:
-         b8:37:e5:2f:8b:61:b9:f3:44:12:6a:62:cb:b3:16:5f:61:77:
-         8c:e6:d5:3f:ec:43:9a:22:7b:d2:e0:3a:25:15:49:e4:75:09:
-         a3:9e:82:64:a9:3f:94:86:c7:a8:87:a2:34:51:87:c9:58:89:
-         76:42:00:bc:7c:d3:17:7a:40:79:b1:f5:ac:0d:9d:14:a5:db:
-         57:7f:10:36:21:79:7e:8f:62:91:68:d2:1f:c9:d3:76:18:cf:
-         98:13:bf:21:a1:09:c3:40:17:9e:16:80:f4:61:23:46:cf:78:
-         9b:00:a7:fa:53:00:b5:67:d3:82:84:79:50:c0:ae:e0:0f:51:
-         55:84:e8:5a:cd:c7:6a:83:11:de:82:58:70:11:b8:1e:67:ab:
-         30:1d:a6:82
------BEGIN CERTIFICATE-----
-MIIDTzCCAjegAwIBAgIBATANBgkqhkiG9w0BAQsFADAdMRswGQYDVQQDDBJ3ZWIt
-cGxhdGZvcm0tdGVzdHMwHhcNMTYxMDE4MDgzNjUzWhcNMjUwMTA0MDgzNjUzWjAd
-MRswGQYDVQQDDBJ3ZWItcGxhdGZvcm0tdGVzdHMwggEiMA0GCSqGSIb3DQEBAQUA
-A4IBDwAwggEKAoIBAQDJ42mFGK0a37psBZYMwSJReDqQQohy9/SMgVlDW+oTDues
-J8JyVcZTSE8IN6Ff4Vx4JNMSLStxw1GjrQvGoZUt9c/bUGTI+tAqvK6oK0RToqno
-VZK3lU/S89nx4QsXEa1iUMVXTUPt/G8UmVKrJ/RZRfiGd9H8AIqzTH5mGrMEWOWe
-V1K4ne/M71luoJks4eEb2hm+YfnDiXYeiB6GZB9bJz5EfK3QBLBX23m9Hn1Kc1LJ
-LRZt8IAuB3AJL8qiwxKuLFE91PNO9lPCneBsVm02OLweT9l+Hrkm/i/w1muvAr9N
-k0un573r53lpsWUfiPD9zAPOXgCDua1wapV4W5f7AgMBAAGjgZkwgZYwDAYDVR0T
-BAUwAwEB/zAdBgNVHQ4EFgQUTmUNO5KzWks0dfspJspTa6FlFX4wRQYDVR0jBD4w
-PIAUTmUNO5KzWks0dfspJspTa6FlFX6hIaQfMB0xGzAZBgNVBAMMEndlYi1wbGF0
-Zm9ybS10ZXN0c4IBATALBgNVHQ8EBAMCAgQwEwYDVR0lBAwwCgYIKwYBBQUHAwEw
-DQYJKoZIhvcNAQELBQADggEBAMbw2R4kgjq41LOSAOoO1hfpjaB6NbxZuS2wa8In
-dGZvJhjCdRRMKXY9KDxuZr48J1UXCfP0LRurtbVc9lwk0X01RTB+QRl5+KE4ys4w
-NeDeHHf4/s3dJUwTGNeeizUEWCR+o/WJSPwo5xGI7Lg35S+LYbnzRBJqYsuzFl9h
-d4zm1T/sQ5oie9LgOiUVSeR1CaOegmSpP5SGx6iHojRRh8lYiXZCALx80xd6QHmx
-9awNnRSl21d/EDYheX6PYpFo0h/J03YYz5gTvyGhCcNAF54WgPRhI0bPeJsAp/pT
-ALVn04KEeVDAruAPUVWE6FrNx2qDEd6CWHARuB5nqzAdpoI=
------END CERTIFICATE-----
diff --git a/third_party/wpt_tools/certs/0176D0.pem b/third_party/wpt_tools/certs/0176D0.pem
new file mode 100644
index 0000000..1a164b4
--- /dev/null
+++ b/third_party/wpt_tools/certs/0176D0.pem
@@ -0,0 +1,26 @@
+-----BEGIN CERTIFICATE-----
+MIIEZzCCA0+gAwIBAgIDAXbQMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNVBAMMEndl
+Yi1wbGF0Zm9ybS10ZXN0czAeFw0yNDEyMDYxNzEyMzZaFw0zMzAyMjIxNzEyMzZa
+MB0xGzAZBgNVBAMMEndlYi1wbGF0Zm9ybS10ZXN0czCCASIwDQYJKoZIhvcNAQEB
+BQADggEPADCCAQoCggEBANLSIrfRgpKRqrStXQozVQdMKratbUX+8Fg9Skd/1SE9
+AUlInKaqaxHukIKTRH+FplqwiKK18So3T2TdfrL/eAGyktKe3Bg4q1ODppEiBycw
+h7mmtfIWHS4xpOPyBEO6oIpgIq6QHIMIqJMusCL8/XjfMyJzT1J3xWuSmtiJEhN/
+8C1VpOV+/39pfLVrpHi7A8L3OAm7nsMQ4CqpUwYJqJl/laKUdkshdINJceZav3VE
+xKFv5BXo+wcFdpmHNpitWydS8UHRI0vngxBWqWz/t0JgUB3nAqD/gXj0hlaIIFmw
+ddrAn+ZlUP16wvvw7hQQnCbMOIt7OQqwTc9+1hQEM8kCAwEAAaOCAa4wggGqMAwG
+A1UdEwQFMAMBAf8wHQYDVR0OBBYEFEfI/SXsZV9Pbe+MvJLzPZATtSUeMEcGA1Ud
+IwRAMD6AFEfI/SXsZV9Pbe+MvJLzPZATtSUeoSGkHzAdMRswGQYDVQQDDBJ3ZWIt
+cGxhdGZvcm0tdGVzdHOCAwF20DALBgNVHQ8EBAMCAgQwgY8GA1UdHgSBhzCBhKCB
+gTALggkxMjcuMC4wLjEwD4INd3d3LjEyNy4wLjAuMTAQgg53d3cxLjEyNy4wLjAu
+MTAQgg53d3cyLjEyNy4wLjAuMTAYghZ4bi0tbHZlLTZsYWQuMTI3LjAuMC4xMCOC
+IXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLjEyNy4wLjAuMTATBgNVHSUEDDAKBggr
+BgEFBQcDATB+BgNVHREEdzB1ggkxMjcuMC4wLjGCDXd3dy4xMjcuMC4wLjGCDnd3
+dzEuMTI3LjAuMC4xgg53d3cyLjEyNy4wLjAuMYIWeG4tLWx2ZS02bGFkLjEyNy4w
+LjAuMYIheG4tLW44ajZkczUzbHd3a3JxaHYyOGEuMTI3LjAuMC4xMA0GCSqGSIb3
+DQEBCwUAA4IBAQAs+CZ7M/vMVSXS5xjI6dS7qv8hh4D6NueoPaotPKn28r0jYsDj
+ZfFZ0FDO8mZQXMZvLWsgNh6ePmS3vfDN8jaun2h0vyrAzkeThjNqNVDlcn7/nkp2
+gfOjSkh4kUYRYEpsvX7MuFXZsBSohW+89IqHZrEvo4sShSFnfW1izjrwnAibKdcG
++GzSpDACjqfMdTDA8VH7re3FAeomL7Eh+oUhWTe7j7RpAB2LgXqek7amFVFx8rq6
+TXARRepD4IBtW5GONmOMZjWWagVNR4zMWVJUsvSHFiHYzFBx95E56XdEtgKRZPKW
+s/2/k3gEcOb0RPLHH820PrR8596JXDWG0eut
+-----END CERTIFICATE-----
diff --git a/third_party/wpt_tools/certs/0176D1.pem b/third_party/wpt_tools/certs/0176D1.pem
new file mode 100644
index 0000000..72fa14b
--- /dev/null
+++ b/third_party/wpt_tools/certs/0176D1.pem
@@ -0,0 +1,85 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 95953 (0x176d1)
+        Signature Algorithm: sha256WithRSAEncryption
+        Issuer: CN=web-platform-tests
+        Validity
+            Not Before: Dec  6 17:12:36 2024 GMT
+            Not After : Feb 22 17:12:36 2033 GMT
+        Subject: CN=127.0.0.1
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:c1:fe:d5:b9:6b:f6:33:13:f9:1a:bf:7a:5b:82:
+                    b5:7a:ad:75:51:9c:27:04:2c:0e:dc:98:dd:0f:1c:
+                    d5:45:f1:ab:53:30:62:46:3f:81:0c:d9:f2:ee:36:
+                    56:0a:48:51:a0:9a:87:8d:f4:0b:55:47:e3:b1:51:
+                    23:a2:47:8c:e1:0b:75:91:5a:6e:95:5e:e3:6f:fd:
+                    e2:c8:36:68:54:88:98:72:87:82:66:29:02:ae:3d:
+                    9d:45:98:21:35:61:a8:42:54:f5:31:9a:8f:d5:d9:
+                    44:a2:6e:f6:f8:ac:e2:06:2d:7c:39:8c:67:c8:b6:
+                    01:09:14:0e:1a:f9:aa:4d:c5:9d:de:d4:a0:5e:37:
+                    fa:df:7f:a9:58:18:b0:35:73:c5:d3:c5:93:fd:16:
+                    21:c4:bd:62:55:7e:ca:86:cb:98:43:52:cc:93:6a:
+                    61:67:50:f3:6b:e4:34:2c:2c:9f:41:6f:fa:5c:f9:
+                    a2:e9:ef:ee:24:8c:35:ff:ee:a0:c3:ef:0f:d6:4c:
+                    73:5e:73:54:d5:f2:bf:05:01:75:4c:47:08:73:ed:
+                    cd:74:6a:ce:63:2a:94:68:00:aa:94:2a:ca:0d:12:
+                    76:b6:c7:8b:05:54:0b:c4:05:8c:53:e4:fa:88:30:
+                    2a:74:5e:12:64:b8:37:38:18:af:eb:08:34:75:59:
+                    b0:29
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: 
+                CA:FALSE
+            X509v3 Subject Key Identifier: 
+                3C:26:F2:6F:7E:7D:8A:AD:1F:6C:0F:96:9C:89:F2:DA:CC:C3:0A:C6
+            X509v3 Authority Key Identifier: 
+                47:C8:FD:25:EC:65:5F:4F:6D:EF:8C:BC:92:F3:3D:90:13:B5:25:1E
+            X509v3 Key Usage: 
+                Digital Signature, Non Repudiation, Key Encipherment
+            X509v3 Extended Key Usage: 
+                TLS Web Server Authentication
+            X509v3 Subject Alternative Name: 
+                DNS:127.0.0.1, DNS:www.127.0.0.1, DNS:www1.127.0.0.1, DNS:www2.127.0.0.1, DNS:xn--lve-6lad.127.0.0.1, DNS:xn--n8j6ds53lwwkrqhv28a.127.0.0.1
+    Signature Algorithm: sha256WithRSAEncryption
+    Signature Value:
+        67:6c:ac:56:fd:82:20:19:20:d9:97:0e:af:75:d3:82:1d:39:
+        db:16:19:6a:9c:57:1c:3e:68:d4:54:bc:5d:9e:86:fa:30:2b:
+        8c:b0:09:2d:08:04:9e:2c:a7:73:9e:e4:27:dc:1a:f9:05:de:
+        8b:44:de:74:c8:9a:f1:ee:ab:fc:a6:2c:ed:a4:91:bc:e0:a7:
+        bc:0c:84:ef:a9:cb:98:8a:96:a0:b0:5c:ba:52:cf:3f:73:22:
+        a3:e2:7d:49:98:db:f0:2f:2f:47:ae:0a:14:20:34:ff:98:73:
+        03:7e:d9:56:34:e6:25:63:f1:7b:43:88:d6:67:9a:38:29:d2:
+        f9:b8:6b:e7:12:ed:9b:3d:01:fc:95:3d:3f:f0:da:77:19:8c:
+        33:c3:3d:b3:a7:66:9a:b3:2a:79:3f:42:21:78:ce:02:d7:9d:
+        7b:54:60:0d:df:25:c7:8f:e3:c8:2f:0b:69:a5:74:a6:53:40:
+        bf:90:a3:5d:95:c8:d7:44:1e:dc:4e:a3:97:4d:db:40:1a:7d:
+        43:e1:69:02:b0:25:eb:0f:8b:37:df:78:d2:f7:09:7b:e7:87:
+        96:1b:46:3e:c1:bd:45:01:71:f3:10:ca:33:b1:0a:3f:3b:45:
+        0e:3c:9a:1a:7a:0b:58:50:d3:ca:b3:bd:f6:d6:16:b5:74:db:
+        86:21:59:2d
+-----BEGIN CERTIFICATE-----
+MIIDnzCCAoegAwIBAgIDAXbRMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNVBAMMEndl
+Yi1wbGF0Zm9ybS10ZXN0czAeFw0yNDEyMDYxNzEyMzZaFw0zMzAyMjIxNzEyMzZa
+MBQxEjAQBgNVBAMMCTEyNy4wLjAuMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
+AQoCggEBAMH+1blr9jMT+Rq/eluCtXqtdVGcJwQsDtyY3Q8c1UXxq1MwYkY/gQzZ
+8u42VgpIUaCah430C1VH47FRI6JHjOELdZFabpVe42/94sg2aFSImHKHgmYpAq49
+nUWYITVhqEJU9TGaj9XZRKJu9vis4gYtfDmMZ8i2AQkUDhr5qk3Fnd7UoF43+t9/
+qVgYsDVzxdPFk/0WIcS9YlV+yobLmENSzJNqYWdQ82vkNCwsn0Fv+lz5ounv7iSM
+Nf/uoMPvD9ZMc15zVNXyvwUBdUxHCHPtzXRqzmMqlGgAqpQqyg0SdrbHiwVUC8QF
+jFPk+ogwKnReEmS4NzgYr+sINHVZsCkCAwEAAaOB8DCB7TAJBgNVHRMEAjAAMB0G
+A1UdDgQWBBQ8JvJvfn2KrR9sD5acifLazMMKxjAfBgNVHSMEGDAWgBRHyP0l7GVf
+T23vjLyS8z2QE7UlHjALBgNVHQ8EBAMCBeAwEwYDVR0lBAwwCgYIKwYBBQUHAwEw
+fgYDVR0RBHcwdYIJMTI3LjAuMC4xgg13d3cuMTI3LjAuMC4xgg53d3cxLjEyNy4w
+LjAuMYIOd3d3Mi4xMjcuMC4wLjGCFnhuLS1sdmUtNmxhZC4xMjcuMC4wLjGCIXhu
+LS1uOGo2ZHM1M2x3d2tycWh2MjhhLjEyNy4wLjAuMTANBgkqhkiG9w0BAQsFAAOC
+AQEAZ2ysVv2CIBkg2ZcOr3XTgh052xYZapxXHD5o1FS8XZ6G+jArjLAJLQgEniyn
+c57kJ9wa+QXei0TedMia8e6r/KYs7aSRvOCnvAyE76nLmIqWoLBculLPP3Mio+J9
+SZjb8C8vR64KFCA0/5hzA37ZVjTmJWPxe0OI1meaOCnS+bhr5xLtmz0B/JU9P/Da
+dxmMM8M9s6dmmrMqeT9CIXjOAtede1RgDd8lx4/jyC8LaaV0plNAv5CjXZXI10Qe
+3E6jl03bQBp9Q+FpArAl6w+LN9940vcJe+eHlhtGPsG9RQFx8xDKM7EKPztFDjya
+GnoLWFDTyrO99tYWtXTbhiFZLQ==
+-----END CERTIFICATE-----
diff --git a/third_party/wpt_tools/certs/02.pem b/third_party/wpt_tools/certs/02.pem
deleted file mode 100644
index bb883ca..0000000
--- a/third_party/wpt_tools/certs/02.pem
+++ /dev/null
@@ -1,85 +0,0 @@
-Certificate:
-    Data:
-        Version: 3 (0x2)
-        Serial Number: 2 (0x2)
-    Signature Algorithm: sha256WithRSAEncryption
-        Issuer: CN=web-platform-tests
-        Validity
-            Not Before: Oct 18 08:36:53 2016 GMT
-            Not After : Jan  4 08:36:53 2025 GMT
-        Subject: CN=127.0.0.1
-        Subject Public Key Info:
-            Public Key Algorithm: rsaEncryption
-                Public-Key: (2048 bit)
-                Modulus:
-                    00:aa:bd:55:d1:6f:96:08:8b:8f:72:bd:ce:70:2c:
-                    08:f5:28:8b:4c:03:ba:78:ad:d3:5e:a9:26:87:5f:
-                    45:ce:7d:6e:cc:18:f9:73:cb:34:e0:d6:50:bc:47:
-                    51:61:93:2d:4f:18:c5:61:77:9e:4e:8b:3f:eb:36:
-                    f0:b9:1c:a4:c8:3e:73:0e:c8:fd:9a:32:cc:22:28:
-                    46:00:c8:03:4a:46:42:bb:0d:06:c0:0e:87:1b:ca:
-                    91:b8:84:7d:c9:38:41:a8:be:f9:46:cf:9e:7a:f2:
-                    5c:12:98:9a:eb:34:fe:18:8e:e1:4d:f8:06:a9:43:
-                    00:2d:bb:8b:ec:ad:f9:3e:9e:82:5b:83:32:f0:47:
-                    2f:4c:aa:de:e6:83:27:0c:b3:3b:05:d9:ee:ee:1a:
-                    f2:cd:39:d8:15:3a:3a:9d:63:1e:63:ed:77:ab:d9:
-                    02:b1:63:b1:a0:62:49:4a:43:c5:9f:cc:e3:1d:7f:
-                    54:92:9f:5e:4a:d7:27:78:32:c1:fa:33:58:66:86:
-                    0b:44:3a:75:a6:05:2f:41:d3:3b:cb:f6:52:81:d3:
-                    c9:0d:7b:99:22:0e:b9:18:f8:49:b3:99:b3:59:24:
-                    cf:11:90:bb:bb:69:09:ef:9a:f9:8a:32:e0:a8:5c:
-                    30:97:75:9f:0b:4c:80:b1:a3:40:de:e5:8f:d9:b7:
-                    23:6f
-                Exponent: 65537 (0x10001)
-        X509v3 extensions:
-            X509v3 Basic Constraints: 
-                CA:FALSE
-            X509v3 Subject Key Identifier: 
-                A1:21:E0:6B:F3:A6:1B:7D:8C:F0:05:33:61:C7:1D:7D:47:6D:66:99
-            X509v3 Authority Key Identifier: 
-                keyid:4E:65:0D:3B:92:B3:5A:4B:34:75:FB:29:26:CA:53:6B:A1:65:15:7E
-
-            X509v3 Key Usage: 
-                Digital Signature, Non Repudiation, Key Encipherment
-            X509v3 Extended Key Usage: 
-                TLS Web Server Authentication
-            X509v3 Subject Alternative Name: 
-                DNS:127.0.0.1, DNS:www.127.0.0.1, DNS:xn--n8j6ds53lwwkrqhv28a.127.0.0.1, DNS:xn--lve-6lad.127.0.0.1, DNS:www2.127.0.0.1, DNS:www1.127.0.0.1
-    Signature Algorithm: sha256WithRSAEncryption
-         44:47:be:6b:b8:d7:34:79:ac:e7:a6:5a:5f:e8:2b:7f:c9:a9:
-         04:1a:d5:75:a7:d6:3e:f7:98:b3:eb:37:ed:7d:96:37:44:0c:
-         7c:ad:e9:8a:c6:50:69:56:63:91:3f:2b:b4:89:0c:f7:03:ae:
-         69:b1:b0:d6:00:33:a6:7c:83:db:56:d0:e9:d8:fc:53:be:ad:
-         b8:3e:3e:c4:e5:22:cd:d0:eb:a7:a5:75:f1:03:ba:bd:49:32:
-         0b:1b:b7:2f:56:a8:98:14:43:58:d4:23:05:7c:b9:13:00:85:
-         6e:70:e5:5a:45:1f:9e:4a:c0:06:72:93:38:24:9d:d2:d9:82:
-         99:c8:5f:c2:c6:f2:f9:53:49:e1:cb:13:72:aa:07:e8:f3:83:
-         a6:f4:4c:28:a6:94:7c:d7:e4:42:b0:de:d6:ec:0d:e2:af:2f:
-         cd:44:c4:b6:cb:54:7d:d7:1f:32:4d:97:31:c7:6e:13:14:0e:
-         a1:f8:6e:e4:b4:ee:15:83:fd:7e:29:e4:7b:06:35:d2:e3:9a:
-         6e:79:aa:a1:a2:91:65:98:48:46:1b:33:36:ab:26:c2:76:18:
-         94:82:ea:c0:a0:ca:9e:b1:98:5f:98:4d:d7:1c:89:b4:e9:72:
-         0d:fa:b7:a9:c2:69:c3:0a:ee:f3:3e:fd:90:87:c8:0c:33:31:
-         69:e1:c0:99
------BEGIN CERTIFICATE-----
-MIIDnTCCAoWgAwIBAgIBAjANBgkqhkiG9w0BAQsFADAdMRswGQYDVQQDDBJ3ZWIt
-cGxhdGZvcm0tdGVzdHMwHhcNMTYxMDE4MDgzNjUzWhcNMjUwMTA0MDgzNjUzWjAU
-MRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
-AoIBAQCqvVXRb5YIi49yvc5wLAj1KItMA7p4rdNeqSaHX0XOfW7MGPlzyzTg1lC8
-R1Fhky1PGMVhd55Oiz/rNvC5HKTIPnMOyP2aMswiKEYAyANKRkK7DQbADocbypG4
-hH3JOEGovvlGz5568lwSmJrrNP4YjuFN+AapQwAtu4vsrfk+noJbgzLwRy9Mqt7m
-gycMszsF2e7uGvLNOdgVOjqdYx5j7Xer2QKxY7GgYklKQ8WfzOMdf1SSn15K1yd4
-MsH6M1hmhgtEOnWmBS9B0zvL9lKB08kNe5kiDrkY+EmzmbNZJM8RkLu7aQnvmvmK
-MuCoXDCXdZ8LTICxo0De5Y/ZtyNvAgMBAAGjgfAwge0wCQYDVR0TBAIwADAdBgNV
-HQ4EFgQUoSHga/OmG32M8AUzYccdfUdtZpkwHwYDVR0jBBgwFoAUTmUNO5KzWks0
-dfspJspTa6FlFX4wCwYDVR0PBAQDAgXgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMH4G
-A1UdEQR3MHWCCTEyNy4wLjAuMYINd3d3LjEyNy4wLjAuMYIheG4tLW44ajZkczUz
-bHd3a3JxaHYyOGEuMTI3LjAuMC4xghZ4bi0tbHZlLTZsYWQuMTI3LjAuMC4xgg53
-d3cyLjEyNy4wLjAuMYIOd3d3MS4xMjcuMC4wLjEwDQYJKoZIhvcNAQELBQADggEB
-AERHvmu41zR5rOemWl/oK3/JqQQa1XWn1j73mLPrN+19ljdEDHyt6YrGUGlWY5E/
-K7SJDPcDrmmxsNYAM6Z8g9tW0OnY/FO+rbg+PsTlIs3Q66eldfEDur1JMgsbty9W
-qJgUQ1jUIwV8uRMAhW5w5VpFH55KwAZykzgkndLZgpnIX8LG8vlTSeHLE3KqB+jz
-g6b0TCimlHzX5EKw3tbsDeKvL81ExLbLVH3XHzJNlzHHbhMUDqH4buS07hWD/X4p
-5HsGNdLjmm55qqGikWWYSEYbMzarJsJ2GJSC6sCgyp6xmF+YTdccibTpcg36t6nC
-acMK7vM+/ZCHyAwzMWnhwJk=
------END CERTIFICATE-----
diff --git a/third_party/wpt_tools/certs/127.0.0.1.key b/third_party/wpt_tools/certs/127.0.0.1.key
index d11d407..d3c90b4 100644
--- a/third_party/wpt_tools/certs/127.0.0.1.key
+++ b/third_party/wpt_tools/certs/127.0.0.1.key
@@ -1,28 +1,28 @@
 -----BEGIN PRIVATE KEY-----
-MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCqvVXRb5YIi49y
-vc5wLAj1KItMA7p4rdNeqSaHX0XOfW7MGPlzyzTg1lC8R1Fhky1PGMVhd55Oiz/r
-NvC5HKTIPnMOyP2aMswiKEYAyANKRkK7DQbADocbypG4hH3JOEGovvlGz5568lwS
-mJrrNP4YjuFN+AapQwAtu4vsrfk+noJbgzLwRy9Mqt7mgycMszsF2e7uGvLNOdgV
-OjqdYx5j7Xer2QKxY7GgYklKQ8WfzOMdf1SSn15K1yd4MsH6M1hmhgtEOnWmBS9B
-0zvL9lKB08kNe5kiDrkY+EmzmbNZJM8RkLu7aQnvmvmKMuCoXDCXdZ8LTICxo0De
-5Y/ZtyNvAgMBAAECggEAMRSCEdVIxKYRk0M6j4YpAQgpmq1LshsNsp1fJPTfJS9r
-ZSIcuwuD5MnWpXi+zRS4po8RViZDjIJ82kmNwziXqbRB8NMYC3ZktcDr9peIUpaF
-4i0pbpX+gp+laew0GF6iiTZ0g8V04hS/IN1bUxeFn1ubKoWMrKVE7OCHpX6RMk13
-v+ffdWVSjeKGufFUlN6OTCdnwgXsZrJPmj1CWWnyC2kzdKhLk0slEuYRpG5Yhzz2
-oKdivyGcoYmtnPSJa6CJEy6EPEwbecryMPuBwhBJIKQb1EvoWHzxoE9IAfLaGUFD
-xJlT9IbVTR5xZ0MQuXg6zzOoFoa2hFHI+foCFrmDuQKBgQDjQJ0O8SFHLRHEXmwK
-adJcI+2wJHWUtK6ArsM1dPrUZ4sDHbPNPxpZ48WWjEK6vDNfbaYpUHmvV37+kJkM
-P4uunqxkID9nEsctAJRjnKmMf41k0/YwokPraXY/57DsUpWZK39q09c34PqPneBW
-4KEy4j21MRJp9kBgy9QHkHcYRQKBgQDAVpmQBjQiifvi2g6t/kZndEdRnbC/zgNy
-82/1pNKdiewqlF9WsLem4KXSkvRuwlBeF4D1W6mDCwMNBn/YYN/GidmUS51Z96T1
-QFbRliBA/SKbEE9NZc5xlzLkgXHEDFfj3WIRIlgccWu//DcI2w3rfjRZag3GaG+X
-JX7CLZ2qIwKBgQCeNq7h5zjO7+7NsxsvCMuewJjLqCaAWGahSoq3nfC/jjL3AWfb
-vlIfQPegP5h5n2t4xcMIQnHlhFny60LShy89bFUDBHx/y1AF4cBttXVJTshm6Tce
-VupIbE0aYrkHXtuuHt1/x2qwCZ8H+9djRNKVtXNWwYpbYUki2uWMOqTfrQKBgQCk
-WtwKKGLwiLyHUxJsN/ZtfP1cjsV0gVSNK9ymKdwX5r26fOMjLwsgPKM2V4EsDDuk
-y6zU/SjS49wNi1o/yjgubalRgXPKZ0W8lOgbXI/fOPATVVKOrspEYpGIldxjTLDl
-9E1Smuh0Fa+fdKSKmrVAYK3XIjr3KlMA83dn8pbhxQKBgFGI8qh93jkhS+pWSj3u
-vJU7eML8DggzWMsY+lmTHWVAWM0o9LLcr3+LghgFdrerK2RjmGCZQ96YN+eB/XoI
-NQqQj39X5Yst5KhwQc+Iv1d2Wyu6cDECoXFJFL3eW0Cd4YQeaAMvAi6mpfNRAQWy
-UJOa4xQbckFK0V8JXHoVCF9P
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDB/tW5a/YzE/ka
+v3pbgrV6rXVRnCcELA7cmN0PHNVF8atTMGJGP4EM2fLuNlYKSFGgmoeN9AtVR+Ox
+USOiR4zhC3WRWm6VXuNv/eLINmhUiJhyh4JmKQKuPZ1FmCE1YahCVPUxmo/V2USi
+bvb4rOIGLXw5jGfItgEJFA4a+apNxZ3e1KBeN/rff6lYGLA1c8XTxZP9FiHEvWJV
+fsqGy5hDUsyTamFnUPNr5DQsLJ9Bb/pc+aLp7+4kjDX/7qDD7w/WTHNec1TV8r8F
+AXVMRwhz7c10as5jKpRoAKqUKsoNEna2x4sFVAvEBYxT5PqIMCp0XhJkuDc4GK/r
+CDR1WbApAgMBAAECggEANQsYZjBCa7nw2WL0slPdilMmam+fbXEciS3U995i5FKN
+jVwD6wBPKXPojEDYKsyWYSsPmH1bofBbri6o5yTYPOp0tY88AGSnHIaXfTX/Nen5
+gQtTWNqqzHi1aYOMxPtUVfrD5lHENW1Ian+b0Of4j0bdmiCtegBl7RUKPE76xXOi
+OoP281XHN01RoNxSmNb7/Ky7jyqCMQPS2FnoiejPAZhOVwMEKK0zqDO1AJuaBdMS
+f4tqspDFkyUD5FlRQeuW4R0Wf5LVIvcmnw9FxyySIoDHb7Y+BPHshKqhP2EDbb0Z
+ZEQoxZ51AFHRh4SvJR2MzS/A/ZmHJDoT1TDVADHfVwKBgQD4qywFIEcrf3HFAw5G
+3GZnalZ4kMEyt1WDErJYfw2OFZPN/djdAmdVf65/F/3A0w9XnDUTkN7vMKLv1Z41
+7G93P3Ct1l8stAQHNborpjGSa7POodaWlHISMYefJPTq3lD2u8bH1HpqgSPy4f3P
+BOfEN9D7IrBmozAo93bjs8hpHwKBgQDHtwREP+Fb4MO2V7Z+2JycaUuPV5ZdwU+A
+g0+i6awY/NVGS8aLdosqqBTNsksL3oPVBi9se5/7zctqY8Fu6sXHiabEvlb9yMTN
+IsZxjPa/p5FkPWTI6KwaB68GpgBHu2F8/U1kg0VEVVHu6fe0LThxZdKrOKbECOpi
+LNabhakVtwKBgBlZkdY/8SFtD5MO+bCdnU7jl0cZMqjR6cS/7jB5W09lwbiZLTdy
+nEgqCQbp0jOLEKBUy1BgT2nA4otikotavA5DCGCgXvl2rIZzorP6cElF84GYHAEj
+xvE13WaK5PDgkw5kHCKY9ZXP7nM/OJmXHW1yZzqC0crUzf8PIy6ZUE/vAoGAO1gk
+ymr4+iY1wa8aqWKQVuHq8/Mg2Uch6pwaQ9yPqPUoIrVNkA9vlwNO+zhpmGNMZTZr
+TR8HEPm74ic2SVE15+79QSUWEF9iK1qUARXUFGskhta/ZfvNeAakeaNGHgqOE2fp
+YV6obH+10vpvAnkVdoy9Jue0ljfX/cg5FQmIjs0CgYEA8NkbfI4x/UecRF0NDN5u
+vRzHOy84OdbmYcyiIOnLiaOBznxm6i1JfB/euSx336QwKldA2o6yZs9WXH2hdBa9
+JeY+6i3nlEhay3tdD9uOJulQoh/Q9tbHmdGUU7axL40z79sTPH+T1OHrsJruUjy4
+YGaR/HDW5MeRZ7iFpFttDNE=
 -----END PRIVATE KEY-----
diff --git a/third_party/wpt_tools/certs/127.0.0.1.pem b/third_party/wpt_tools/certs/127.0.0.1.pem
index bb883ca..72fa14b 100644
--- a/third_party/wpt_tools/certs/127.0.0.1.pem
+++ b/third_party/wpt_tools/certs/127.0.0.1.pem
@@ -1,85 +1,85 @@
 Certificate:
     Data:
         Version: 3 (0x2)
-        Serial Number: 2 (0x2)
-    Signature Algorithm: sha256WithRSAEncryption
+        Serial Number: 95953 (0x176d1)
+        Signature Algorithm: sha256WithRSAEncryption
         Issuer: CN=web-platform-tests
         Validity
-            Not Before: Oct 18 08:36:53 2016 GMT
-            Not After : Jan  4 08:36:53 2025 GMT
+            Not Before: Dec  6 17:12:36 2024 GMT
+            Not After : Feb 22 17:12:36 2033 GMT
         Subject: CN=127.0.0.1
         Subject Public Key Info:
             Public Key Algorithm: rsaEncryption
                 Public-Key: (2048 bit)
                 Modulus:
-                    00:aa:bd:55:d1:6f:96:08:8b:8f:72:bd:ce:70:2c:
-                    08:f5:28:8b:4c:03:ba:78:ad:d3:5e:a9:26:87:5f:
-                    45:ce:7d:6e:cc:18:f9:73:cb:34:e0:d6:50:bc:47:
-                    51:61:93:2d:4f:18:c5:61:77:9e:4e:8b:3f:eb:36:
-                    f0:b9:1c:a4:c8:3e:73:0e:c8:fd:9a:32:cc:22:28:
-                    46:00:c8:03:4a:46:42:bb:0d:06:c0:0e:87:1b:ca:
-                    91:b8:84:7d:c9:38:41:a8:be:f9:46:cf:9e:7a:f2:
-                    5c:12:98:9a:eb:34:fe:18:8e:e1:4d:f8:06:a9:43:
-                    00:2d:bb:8b:ec:ad:f9:3e:9e:82:5b:83:32:f0:47:
-                    2f:4c:aa:de:e6:83:27:0c:b3:3b:05:d9:ee:ee:1a:
-                    f2:cd:39:d8:15:3a:3a:9d:63:1e:63:ed:77:ab:d9:
-                    02:b1:63:b1:a0:62:49:4a:43:c5:9f:cc:e3:1d:7f:
-                    54:92:9f:5e:4a:d7:27:78:32:c1:fa:33:58:66:86:
-                    0b:44:3a:75:a6:05:2f:41:d3:3b:cb:f6:52:81:d3:
-                    c9:0d:7b:99:22:0e:b9:18:f8:49:b3:99:b3:59:24:
-                    cf:11:90:bb:bb:69:09:ef:9a:f9:8a:32:e0:a8:5c:
-                    30:97:75:9f:0b:4c:80:b1:a3:40:de:e5:8f:d9:b7:
-                    23:6f
+                    00:c1:fe:d5:b9:6b:f6:33:13:f9:1a:bf:7a:5b:82:
+                    b5:7a:ad:75:51:9c:27:04:2c:0e:dc:98:dd:0f:1c:
+                    d5:45:f1:ab:53:30:62:46:3f:81:0c:d9:f2:ee:36:
+                    56:0a:48:51:a0:9a:87:8d:f4:0b:55:47:e3:b1:51:
+                    23:a2:47:8c:e1:0b:75:91:5a:6e:95:5e:e3:6f:fd:
+                    e2:c8:36:68:54:88:98:72:87:82:66:29:02:ae:3d:
+                    9d:45:98:21:35:61:a8:42:54:f5:31:9a:8f:d5:d9:
+                    44:a2:6e:f6:f8:ac:e2:06:2d:7c:39:8c:67:c8:b6:
+                    01:09:14:0e:1a:f9:aa:4d:c5:9d:de:d4:a0:5e:37:
+                    fa:df:7f:a9:58:18:b0:35:73:c5:d3:c5:93:fd:16:
+                    21:c4:bd:62:55:7e:ca:86:cb:98:43:52:cc:93:6a:
+                    61:67:50:f3:6b:e4:34:2c:2c:9f:41:6f:fa:5c:f9:
+                    a2:e9:ef:ee:24:8c:35:ff:ee:a0:c3:ef:0f:d6:4c:
+                    73:5e:73:54:d5:f2:bf:05:01:75:4c:47:08:73:ed:
+                    cd:74:6a:ce:63:2a:94:68:00:aa:94:2a:ca:0d:12:
+                    76:b6:c7:8b:05:54:0b:c4:05:8c:53:e4:fa:88:30:
+                    2a:74:5e:12:64:b8:37:38:18:af:eb:08:34:75:59:
+                    b0:29
                 Exponent: 65537 (0x10001)
         X509v3 extensions:
             X509v3 Basic Constraints: 
                 CA:FALSE
             X509v3 Subject Key Identifier: 
-                A1:21:E0:6B:F3:A6:1B:7D:8C:F0:05:33:61:C7:1D:7D:47:6D:66:99
+                3C:26:F2:6F:7E:7D:8A:AD:1F:6C:0F:96:9C:89:F2:DA:CC:C3:0A:C6
             X509v3 Authority Key Identifier: 
-                keyid:4E:65:0D:3B:92:B3:5A:4B:34:75:FB:29:26:CA:53:6B:A1:65:15:7E
-
+                47:C8:FD:25:EC:65:5F:4F:6D:EF:8C:BC:92:F3:3D:90:13:B5:25:1E
             X509v3 Key Usage: 
                 Digital Signature, Non Repudiation, Key Encipherment
             X509v3 Extended Key Usage: 
                 TLS Web Server Authentication
             X509v3 Subject Alternative Name: 
-                DNS:127.0.0.1, DNS:www.127.0.0.1, DNS:xn--n8j6ds53lwwkrqhv28a.127.0.0.1, DNS:xn--lve-6lad.127.0.0.1, DNS:www2.127.0.0.1, DNS:www1.127.0.0.1
+                DNS:127.0.0.1, DNS:www.127.0.0.1, DNS:www1.127.0.0.1, DNS:www2.127.0.0.1, DNS:xn--lve-6lad.127.0.0.1, DNS:xn--n8j6ds53lwwkrqhv28a.127.0.0.1
     Signature Algorithm: sha256WithRSAEncryption
-         44:47:be:6b:b8:d7:34:79:ac:e7:a6:5a:5f:e8:2b:7f:c9:a9:
-         04:1a:d5:75:a7:d6:3e:f7:98:b3:eb:37:ed:7d:96:37:44:0c:
-         7c:ad:e9:8a:c6:50:69:56:63:91:3f:2b:b4:89:0c:f7:03:ae:
-         69:b1:b0:d6:00:33:a6:7c:83:db:56:d0:e9:d8:fc:53:be:ad:
-         b8:3e:3e:c4:e5:22:cd:d0:eb:a7:a5:75:f1:03:ba:bd:49:32:
-         0b:1b:b7:2f:56:a8:98:14:43:58:d4:23:05:7c:b9:13:00:85:
-         6e:70:e5:5a:45:1f:9e:4a:c0:06:72:93:38:24:9d:d2:d9:82:
-         99:c8:5f:c2:c6:f2:f9:53:49:e1:cb:13:72:aa:07:e8:f3:83:
-         a6:f4:4c:28:a6:94:7c:d7:e4:42:b0:de:d6:ec:0d:e2:af:2f:
-         cd:44:c4:b6:cb:54:7d:d7:1f:32:4d:97:31:c7:6e:13:14:0e:
-         a1:f8:6e:e4:b4:ee:15:83:fd:7e:29:e4:7b:06:35:d2:e3:9a:
-         6e:79:aa:a1:a2:91:65:98:48:46:1b:33:36:ab:26:c2:76:18:
-         94:82:ea:c0:a0:ca:9e:b1:98:5f:98:4d:d7:1c:89:b4:e9:72:
-         0d:fa:b7:a9:c2:69:c3:0a:ee:f3:3e:fd:90:87:c8:0c:33:31:
-         69:e1:c0:99
+    Signature Value:
+        67:6c:ac:56:fd:82:20:19:20:d9:97:0e:af:75:d3:82:1d:39:
+        db:16:19:6a:9c:57:1c:3e:68:d4:54:bc:5d:9e:86:fa:30:2b:
+        8c:b0:09:2d:08:04:9e:2c:a7:73:9e:e4:27:dc:1a:f9:05:de:
+        8b:44:de:74:c8:9a:f1:ee:ab:fc:a6:2c:ed:a4:91:bc:e0:a7:
+        bc:0c:84:ef:a9:cb:98:8a:96:a0:b0:5c:ba:52:cf:3f:73:22:
+        a3:e2:7d:49:98:db:f0:2f:2f:47:ae:0a:14:20:34:ff:98:73:
+        03:7e:d9:56:34:e6:25:63:f1:7b:43:88:d6:67:9a:38:29:d2:
+        f9:b8:6b:e7:12:ed:9b:3d:01:fc:95:3d:3f:f0:da:77:19:8c:
+        33:c3:3d:b3:a7:66:9a:b3:2a:79:3f:42:21:78:ce:02:d7:9d:
+        7b:54:60:0d:df:25:c7:8f:e3:c8:2f:0b:69:a5:74:a6:53:40:
+        bf:90:a3:5d:95:c8:d7:44:1e:dc:4e:a3:97:4d:db:40:1a:7d:
+        43:e1:69:02:b0:25:eb:0f:8b:37:df:78:d2:f7:09:7b:e7:87:
+        96:1b:46:3e:c1:bd:45:01:71:f3:10:ca:33:b1:0a:3f:3b:45:
+        0e:3c:9a:1a:7a:0b:58:50:d3:ca:b3:bd:f6:d6:16:b5:74:db:
+        86:21:59:2d
 -----BEGIN CERTIFICATE-----
-MIIDnTCCAoWgAwIBAgIBAjANBgkqhkiG9w0BAQsFADAdMRswGQYDVQQDDBJ3ZWIt
-cGxhdGZvcm0tdGVzdHMwHhcNMTYxMDE4MDgzNjUzWhcNMjUwMTA0MDgzNjUzWjAU
-MRIwEAYDVQQDDAkxMjcuMC4wLjEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
-AoIBAQCqvVXRb5YIi49yvc5wLAj1KItMA7p4rdNeqSaHX0XOfW7MGPlzyzTg1lC8
-R1Fhky1PGMVhd55Oiz/rNvC5HKTIPnMOyP2aMswiKEYAyANKRkK7DQbADocbypG4
-hH3JOEGovvlGz5568lwSmJrrNP4YjuFN+AapQwAtu4vsrfk+noJbgzLwRy9Mqt7m
-gycMszsF2e7uGvLNOdgVOjqdYx5j7Xer2QKxY7GgYklKQ8WfzOMdf1SSn15K1yd4
-MsH6M1hmhgtEOnWmBS9B0zvL9lKB08kNe5kiDrkY+EmzmbNZJM8RkLu7aQnvmvmK
-MuCoXDCXdZ8LTICxo0De5Y/ZtyNvAgMBAAGjgfAwge0wCQYDVR0TBAIwADAdBgNV
-HQ4EFgQUoSHga/OmG32M8AUzYccdfUdtZpkwHwYDVR0jBBgwFoAUTmUNO5KzWks0
-dfspJspTa6FlFX4wCwYDVR0PBAQDAgXgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMH4G
-A1UdEQR3MHWCCTEyNy4wLjAuMYINd3d3LjEyNy4wLjAuMYIheG4tLW44ajZkczUz
-bHd3a3JxaHYyOGEuMTI3LjAuMC4xghZ4bi0tbHZlLTZsYWQuMTI3LjAuMC4xgg53
-d3cyLjEyNy4wLjAuMYIOd3d3MS4xMjcuMC4wLjEwDQYJKoZIhvcNAQELBQADggEB
-AERHvmu41zR5rOemWl/oK3/JqQQa1XWn1j73mLPrN+19ljdEDHyt6YrGUGlWY5E/
-K7SJDPcDrmmxsNYAM6Z8g9tW0OnY/FO+rbg+PsTlIs3Q66eldfEDur1JMgsbty9W
-qJgUQ1jUIwV8uRMAhW5w5VpFH55KwAZykzgkndLZgpnIX8LG8vlTSeHLE3KqB+jz
-g6b0TCimlHzX5EKw3tbsDeKvL81ExLbLVH3XHzJNlzHHbhMUDqH4buS07hWD/X4p
-5HsGNdLjmm55qqGikWWYSEYbMzarJsJ2GJSC6sCgyp6xmF+YTdccibTpcg36t6nC
-acMK7vM+/ZCHyAwzMWnhwJk=
+MIIDnzCCAoegAwIBAgIDAXbRMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNVBAMMEndl
+Yi1wbGF0Zm9ybS10ZXN0czAeFw0yNDEyMDYxNzEyMzZaFw0zMzAyMjIxNzEyMzZa
+MBQxEjAQBgNVBAMMCTEyNy4wLjAuMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
+AQoCggEBAMH+1blr9jMT+Rq/eluCtXqtdVGcJwQsDtyY3Q8c1UXxq1MwYkY/gQzZ
+8u42VgpIUaCah430C1VH47FRI6JHjOELdZFabpVe42/94sg2aFSImHKHgmYpAq49
+nUWYITVhqEJU9TGaj9XZRKJu9vis4gYtfDmMZ8i2AQkUDhr5qk3Fnd7UoF43+t9/
+qVgYsDVzxdPFk/0WIcS9YlV+yobLmENSzJNqYWdQ82vkNCwsn0Fv+lz5ounv7iSM
+Nf/uoMPvD9ZMc15zVNXyvwUBdUxHCHPtzXRqzmMqlGgAqpQqyg0SdrbHiwVUC8QF
+jFPk+ogwKnReEmS4NzgYr+sINHVZsCkCAwEAAaOB8DCB7TAJBgNVHRMEAjAAMB0G
+A1UdDgQWBBQ8JvJvfn2KrR9sD5acifLazMMKxjAfBgNVHSMEGDAWgBRHyP0l7GVf
+T23vjLyS8z2QE7UlHjALBgNVHQ8EBAMCBeAwEwYDVR0lBAwwCgYIKwYBBQUHAwEw
+fgYDVR0RBHcwdYIJMTI3LjAuMC4xgg13d3cuMTI3LjAuMC4xgg53d3cxLjEyNy4w
+LjAuMYIOd3d3Mi4xMjcuMC4wLjGCFnhuLS1sdmUtNmxhZC4xMjcuMC4wLjGCIXhu
+LS1uOGo2ZHM1M2x3d2tycWh2MjhhLjEyNy4wLjAuMTANBgkqhkiG9w0BAQsFAAOC
+AQEAZ2ysVv2CIBkg2ZcOr3XTgh052xYZapxXHD5o1FS8XZ6G+jArjLAJLQgEniyn
+c57kJ9wa+QXei0TedMia8e6r/KYs7aSRvOCnvAyE76nLmIqWoLBculLPP3Mio+J9
+SZjb8C8vR64KFCA0/5hzA37ZVjTmJWPxe0OI1meaOCnS+bhr5xLtmz0B/JU9P/Da
+dxmMM8M9s6dmmrMqeT9CIXjOAtede1RgDd8lx4/jyC8LaaV0plNAv5CjXZXI10Qe
+3E6jl03bQBp9Q+FpArAl6w+LN9940vcJe+eHlhtGPsG9RQFx8xDKM7EKPztFDjya
+GnoLWFDTyrO99tYWtXTbhiFZLQ==
 -----END CERTIFICATE-----
diff --git a/third_party/wpt_tools/certs/127.0.0.1.sxg.cnf b/third_party/wpt_tools/certs/127.0.0.1.sxg.cnf
deleted file mode 100644
index 05f98c87..0000000
--- a/third_party/wpt_tools/certs/127.0.0.1.sxg.cnf
+++ /dev/null
@@ -1,5 +0,0 @@
-[ req ]
-default_keyfile = 127.0.0.1.sxg.key
-distinguished_name = req_distinguished_name
-
-[ req_distinguished_name ]
diff --git a/third_party/wpt_tools/certs/127.0.0.1.sxg.csr b/third_party/wpt_tools/certs/127.0.0.1.sxg.csr
deleted file mode 100644
index 6483e86..0000000
--- a/third_party/wpt_tools/certs/127.0.0.1.sxg.csr
+++ /dev/null
@@ -1,7 +0,0 @@
------BEGIN CERTIFICATE REQUEST-----
-MIHsMIGSAgEAMDAxEjAQBgNVBAMMCTEyNy4wLjAuMTENMAsGA1UECgwEVGVzdDEL
-MAkGA1UEBhMCVVMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR/rklZfh24553C
-WSMOXJJaVMeK3I2qT7rJjRE5JuATFkJ6KmP6TBZJ21/bnymx2a5b7wT/BgijZY+7
-MA/4om1IoAAwCgYIKoZIzj0EAwIDSQAwRgIhALoilGaa3Vgf/YM6+bgyqOkD0/7W
-vlpL/9wsC6KDEmXhAiEA7yCbq4ywOdL2vnBTvQ1xj9VXQyrKTomEnpCppza2NdY=
------END CERTIFICATE REQUEST-----
diff --git a/third_party/wpt_tools/certs/127.0.0.1.sxg.ext b/third_party/wpt_tools/certs/127.0.0.1.sxg.ext
deleted file mode 100644
index 76e71d4..0000000
--- a/third_party/wpt_tools/certs/127.0.0.1.sxg.ext
+++ /dev/null
@@ -1,7 +0,0 @@
-basicConstraints = CA:FALSE
-# OID required for sxg since d54c469
-1.3.6.1.4.1.11129.2.1.22 = ASN1:NULL
-keyUsage = nonRepudiation, digitalSignature, keyEncipherment
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid,issuer
-subjectAltName='DNS:127.0.0.1,DNS:www.127.0.0.1,DNS:www2.127.0.0.1'
diff --git a/third_party/wpt_tools/certs/127.0.0.1.sxg.key b/third_party/wpt_tools/certs/127.0.0.1.sxg.key
deleted file mode 100644
index 957a847..0000000
--- a/third_party/wpt_tools/certs/127.0.0.1.sxg.key
+++ /dev/null
@@ -1,8 +0,0 @@
------BEGIN EC PRIVATE KEY-----
-MHcCAQEEICifhSsDrekD8ICgzC4S2HVfuJLlWk9TLMqcGCn449G6oAoGCCqGSM49
-AwEHoUQDQgAEf65JWX4duOedwlkjDlySWlTHityNqk+6yY0ROSbgExZCeipj+kwW
-Sdtf258psdmuW+8E/wYIo2WPuzAP+KJtSA==
------END EC PRIVATE KEY-----
------BEGIN EC PARAMETERS-----
-BggqhkjOPQMBBw==
------END EC PARAMETERS-----
diff --git a/third_party/wpt_tools/certs/127.0.0.1.sxg.pem b/third_party/wpt_tools/certs/127.0.0.1.sxg.pem
deleted file mode 100644
index dd8871d..0000000
--- a/third_party/wpt_tools/certs/127.0.0.1.sxg.pem
+++ /dev/null
@@ -1,17 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICoDCCAYigAwIBAgIBAzANBgkqhkiG9w0BAQsFADAdMRswGQYDVQQDDBJ3ZWIt
-cGxhdGZvcm0tdGVzdHMwHhcNMTgwNjI5MDUxMjAzWhcNMjgwNjI2MDUxMjAzWjAw
-MRIwEAYDVQQDDAkxMjcuMC4wLjExDTALBgNVBAoMBFRlc3QxCzAJBgNVBAYTAlVT
-MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEf65JWX4duOedwlkjDlySWlTHityN
-qk+6yY0ROSbgExZCeipj+kwWSdtf258psdmuW+8E/wYIo2WPuzAP+KJtSKOBojCB
-nzAJBgNVHRMEAjAAMBAGCisGAQQB1nkCARYEAgUAMAsGA1UdDwQEAwIF4DAdBgNV
-HQ4EFgQUhaNqMIY0BH36Ed7DQxtCGGzyIt4wHwYDVR0jBBgwFoAUTmUNO5KzWks0
-dfspJspTa6FlFX4wMwYDVR0RBCwwKoIJMTI3LjAuMC4xgg13d3cuMTI3LjAuMC4x
-gg53d3cyLjEyNy4wLjAuMTANBgkqhkiG9w0BAQsFAAOCAQEAsaHDMyEfjS+6OKam
-SZEbGOm67hDW/zxbXVMenWmGFFa1l6Y4gUoLY9QjEvi/9qIRXJ6VNny7VgoUKf9Y
-qsP9gN4MzJyE67fxE8kK909H4nnnQZkVxR91o710BhjZVvYw/l8300aEkBWJb5lu
-BEPVDiqD8ziwWX43oEZshpqjXQ24Lb5WoIfemZj2uFEz7mLarxktx9KU3myG6iFG
-1kPH/hlwTBeNR7z4rmFK87bvAR/VrGRu0W4XEgn63hX9/u5MLsW1v8e6eGxarTlQ
-oHDE2tPCkKSK4F5AYrRU20AV6CwzWgtCqm33xKzrqbIwIQkXkIax9a+T6jUmIj9f
-wttqSQ==
------END CERTIFICATE-----
diff --git a/third_party/wpt_tools/certs/cacert.key b/third_party/wpt_tools/certs/cacert.key
new file mode 100644
index 0000000..f24a7df
--- /dev/null
+++ b/third_party/wpt_tools/certs/cacert.key
@@ -0,0 +1,30 @@
+-----BEGIN ENCRYPTED PRIVATE KEY-----
+MIIFJDBWBgkqhkiG9w0BBQ0wSTAxBgkqhkiG9w0BBQwwJAQQtASJdDq32qeqtMZc
+NNis+AICCAAwDAYIKoZIhvcNAgkFADAUBggqhkiG9w0DBwQIgn83e0fJcc4EggTI
+iv6zQaBEz1huLn9T9/CA7VvtUYMzYYY3ORTUx5PGA03oSbn8dnZLkUyaCrXKcrje
+983Tv6VrKF8VDvgdLUsnvMXhb0HMgVlT1XUNUVqPdmUIcOp/+n/qzUQ1xW/QRjIc
+kMgarFuPuLITx/W5dhgVPmCZdVxV6QsWwioG7Hm5TgCHvJuEM9z8yv79+j1iupks
+N32Ss1Y/8dPD56tzVNt4/Lsc2CDyDP/TvdPmb//f60qE2TjNDpXelt3l/EcRyJp0
+XfoiH9s6LhMpbmjcHXhG8DQ1zZeCkhhZIfLUpocA4yMhZ1hO/xBPi4hRg3gHmAnZ
+X4uVdeX41u5xLKW1wV+vED8TsP35g5WYOHNWdZP9aDMq8ySZ+TCserMb7mQAVKkw
+iHJv28g9bMQqqhM0WxSYF6vIdacpvPK2UPSdELyAHKSNvlECFAl56IPED5iVFSdp
+RHNWWFRbFYVVkIHymjE3q0hUP0AYWXlOKSdk9E3TxWGu2c64a6KWBmynMMrVy93K
+mikH4daq3vJbx2IEGsspl2mxznDfC2ps8gaG51RxJedXXylTO/9fFzQg9mmCNvzo
++P3rxv2twWw+1c3Z8+79kYuU5lS5IVMl0xe+rsJ+Z0QW1Pwqw7Og+Zm5FWu5vNNZ
+Bj28w1Pot1rUnCwFv+N5hAaGzVCpYIPREEZphesvwTAkthng7TQlBOteaTFwDc6R
+LxQAwPtrFl5KsMASbwHX3RQXQMEV5EKd3I/dD9umT1Ep9VUpUGaq1Zzkc1p5dNE8
+SqmI4utMZDstd8kAMa4Fyima8q9myE9e7C/S6620XT4J2XyqP9pe6vEf5wel7WI/
+W5RJ/zj1SKwH9FYkJkdwqgK+kps+6vzgGKojnkTXR38l5OecEclwIt39X4Hmo9af
+fOoDgv9FfI9lB/mAetUE4fVHsHPkZoxXgUo4h+0bcuB/ApmUVffBKXVXDdYurGw4
+bMI2xO+tDx8g59gWUBHql4TqQj5RrAhGmG6EJglQOjKv14f2z61F6qN3gBl/josR
+JyH5D3wQgBV+cKei2JzQnKKlbgxpBkjq2qpK2XelMHSkX703ffWgUo2AXTW49CDB
+IaeDEoxCHAFJEbideJhAgJ4J01RB0zOW/iXPht6a40mhANEEdc5UJ3bwKaAemCM7
+MpNykwR4bo7vUk3KjN8r8QyyfoasekfY4a1cjrXKAEGmjQ6XzxCWwWTXEp5Qi5v4
+cljvxdxqtkdYPeHAJo97yj5vGHJbeN9tU/uH5p/1FiJ5DpDocQcu1WaBwYDmEviq
+kETMt7Z5BTAym+PhKh+BtZhpKnpFvULk538n/2ghPsa7DrXHCB59h7xpI8ffJXri
+rnK44LNcCwxr1/VUx5s5Iy1y94Izxa8adDLhGeh8R9gkfPT45F7q5W+OFD/0mc00
+Fr41T4GBcQdrsD0xM0YY7pXOBIny7Iq9Vw4xx20Mwv4O0ykraoinNnsqw2ch38lA
+gBVcaC6ppWyh2n1297UPbbTg24EOPi9K95K7+jfj6HsJDmtYeZ9DdLsdLKXEfvoe
+ltHvL8ktMZMVIvbpbBA0MLdnNO36aW1agJOdBSZYxQrv7nbUNNBejKctB9UZ4UXV
+g+j2A21wz6TXkgv7JoV3gEOyK+amS6Fj
+-----END ENCRYPTED PRIVATE KEY-----
diff --git a/third_party/wpt_tools/certs/cacert.pem b/third_party/wpt_tools/certs/cacert.pem
index ff31326..1a164b4 100644
--- a/third_party/wpt_tools/certs/cacert.pem
+++ b/third_party/wpt_tools/certs/cacert.pem
@@ -1,83 +1,26 @@
-Certificate:
-    Data:
-        Version: 3 (0x2)
-        Serial Number: 1 (0x1)
-    Signature Algorithm: sha256WithRSAEncryption
-        Issuer: CN=web-platform-tests
-        Validity
-            Not Before: Oct 18 08:36:53 2016 GMT
-            Not After : Jan  4 08:36:53 2025 GMT
-        Subject: CN=web-platform-tests
-        Subject Public Key Info:
-            Public Key Algorithm: rsaEncryption
-                Public-Key: (2048 bit)
-                Modulus:
-                    00:c9:e3:69:85:18:ad:1a:df:ba:6c:05:96:0c:c1:
-                    22:51:78:3a:90:42:88:72:f7:f4:8c:81:59:43:5b:
-                    ea:13:0e:e7:ac:27:c2:72:55:c6:53:48:4f:08:37:
-                    a1:5f:e1:5c:78:24:d3:12:2d:2b:71:c3:51:a3:ad:
-                    0b:c6:a1:95:2d:f5:cf:db:50:64:c8:fa:d0:2a:bc:
-                    ae:a8:2b:44:53:a2:a9:e8:55:92:b7:95:4f:d2:f3:
-                    d9:f1:e1:0b:17:11:ad:62:50:c5:57:4d:43:ed:fc:
-                    6f:14:99:52:ab:27:f4:59:45:f8:86:77:d1:fc:00:
-                    8a:b3:4c:7e:66:1a:b3:04:58:e5:9e:57:52:b8:9d:
-                    ef:cc:ef:59:6e:a0:99:2c:e1:e1:1b:da:19:be:61:
-                    f9:c3:89:76:1e:88:1e:86:64:1f:5b:27:3e:44:7c:
-                    ad:d0:04:b0:57:db:79:bd:1e:7d:4a:73:52:c9:2d:
-                    16:6d:f0:80:2e:07:70:09:2f:ca:a2:c3:12:ae:2c:
-                    51:3d:d4:f3:4e:f6:53:c2:9d:e0:6c:56:6d:36:38:
-                    bc:1e:4f:d9:7e:1e:b9:26:fe:2f:f0:d6:6b:af:02:
-                    bf:4d:93:4b:a7:e7:bd:eb:e7:79:69:b1:65:1f:88:
-                    f0:fd:cc:03:ce:5e:00:83:b9:ad:70:6a:95:78:5b:
-                    97:fb
-                Exponent: 65537 (0x10001)
-        X509v3 extensions:
-            X509v3 Basic Constraints: 
-                CA:TRUE
-            X509v3 Subject Key Identifier: 
-                4E:65:0D:3B:92:B3:5A:4B:34:75:FB:29:26:CA:53:6B:A1:65:15:7E
-            X509v3 Authority Key Identifier: 
-                keyid:4E:65:0D:3B:92:B3:5A:4B:34:75:FB:29:26:CA:53:6B:A1:65:15:7E
-                DirName:/CN=web-platform-tests
-                serial:01
-
-            X509v3 Key Usage: 
-                Certificate Sign
-            X509v3 Extended Key Usage: 
-                TLS Web Server Authentication
-    Signature Algorithm: sha256WithRSAEncryption
-         c6:f0:d9:1e:24:82:3a:b8:d4:b3:92:00:ea:0e:d6:17:e9:8d:
-         a0:7a:35:bc:59:b9:2d:b0:6b:c2:27:74:66:6f:26:18:c2:75:
-         14:4c:29:76:3d:28:3c:6e:66:be:3c:27:55:17:09:f3:f4:2d:
-         1b:ab:b5:b5:5c:f6:5c:24:d1:7d:35:45:30:7e:41:19:79:f8:
-         a1:38:ca:ce:30:35:e0:de:1c:77:f8:fe:cd:dd:25:4c:13:18:
-         d7:9e:8b:35:04:58:24:7e:a3:f5:89:48:fc:28:e7:11:88:ec:
-         b8:37:e5:2f:8b:61:b9:f3:44:12:6a:62:cb:b3:16:5f:61:77:
-         8c:e6:d5:3f:ec:43:9a:22:7b:d2:e0:3a:25:15:49:e4:75:09:
-         a3:9e:82:64:a9:3f:94:86:c7:a8:87:a2:34:51:87:c9:58:89:
-         76:42:00:bc:7c:d3:17:7a:40:79:b1:f5:ac:0d:9d:14:a5:db:
-         57:7f:10:36:21:79:7e:8f:62:91:68:d2:1f:c9:d3:76:18:cf:
-         98:13:bf:21:a1:09:c3:40:17:9e:16:80:f4:61:23:46:cf:78:
-         9b:00:a7:fa:53:00:b5:67:d3:82:84:79:50:c0:ae:e0:0f:51:
-         55:84:e8:5a:cd:c7:6a:83:11:de:82:58:70:11:b8:1e:67:ab:
-         30:1d:a6:82
 -----BEGIN CERTIFICATE-----
-MIIDTzCCAjegAwIBAgIBATANBgkqhkiG9w0BAQsFADAdMRswGQYDVQQDDBJ3ZWIt
-cGxhdGZvcm0tdGVzdHMwHhcNMTYxMDE4MDgzNjUzWhcNMjUwMTA0MDgzNjUzWjAd
-MRswGQYDVQQDDBJ3ZWItcGxhdGZvcm0tdGVzdHMwggEiMA0GCSqGSIb3DQEBAQUA
-A4IBDwAwggEKAoIBAQDJ42mFGK0a37psBZYMwSJReDqQQohy9/SMgVlDW+oTDues
-J8JyVcZTSE8IN6Ff4Vx4JNMSLStxw1GjrQvGoZUt9c/bUGTI+tAqvK6oK0RToqno
-VZK3lU/S89nx4QsXEa1iUMVXTUPt/G8UmVKrJ/RZRfiGd9H8AIqzTH5mGrMEWOWe
-V1K4ne/M71luoJks4eEb2hm+YfnDiXYeiB6GZB9bJz5EfK3QBLBX23m9Hn1Kc1LJ
-LRZt8IAuB3AJL8qiwxKuLFE91PNO9lPCneBsVm02OLweT9l+Hrkm/i/w1muvAr9N
-k0un573r53lpsWUfiPD9zAPOXgCDua1wapV4W5f7AgMBAAGjgZkwgZYwDAYDVR0T
-BAUwAwEB/zAdBgNVHQ4EFgQUTmUNO5KzWks0dfspJspTa6FlFX4wRQYDVR0jBD4w
-PIAUTmUNO5KzWks0dfspJspTa6FlFX6hIaQfMB0xGzAZBgNVBAMMEndlYi1wbGF0
-Zm9ybS10ZXN0c4IBATALBgNVHQ8EBAMCAgQwEwYDVR0lBAwwCgYIKwYBBQUHAwEw
-DQYJKoZIhvcNAQELBQADggEBAMbw2R4kgjq41LOSAOoO1hfpjaB6NbxZuS2wa8In
-dGZvJhjCdRRMKXY9KDxuZr48J1UXCfP0LRurtbVc9lwk0X01RTB+QRl5+KE4ys4w
-NeDeHHf4/s3dJUwTGNeeizUEWCR+o/WJSPwo5xGI7Lg35S+LYbnzRBJqYsuzFl9h
-d4zm1T/sQ5oie9LgOiUVSeR1CaOegmSpP5SGx6iHojRRh8lYiXZCALx80xd6QHmx
-9awNnRSl21d/EDYheX6PYpFo0h/J03YYz5gTvyGhCcNAF54WgPRhI0bPeJsAp/pT
-ALVn04KEeVDAruAPUVWE6FrNx2qDEd6CWHARuB5nqzAdpoI=
+MIIEZzCCA0+gAwIBAgIDAXbQMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNVBAMMEndl
+Yi1wbGF0Zm9ybS10ZXN0czAeFw0yNDEyMDYxNzEyMzZaFw0zMzAyMjIxNzEyMzZa
+MB0xGzAZBgNVBAMMEndlYi1wbGF0Zm9ybS10ZXN0czCCASIwDQYJKoZIhvcNAQEB
+BQADggEPADCCAQoCggEBANLSIrfRgpKRqrStXQozVQdMKratbUX+8Fg9Skd/1SE9
+AUlInKaqaxHukIKTRH+FplqwiKK18So3T2TdfrL/eAGyktKe3Bg4q1ODppEiBycw
+h7mmtfIWHS4xpOPyBEO6oIpgIq6QHIMIqJMusCL8/XjfMyJzT1J3xWuSmtiJEhN/
+8C1VpOV+/39pfLVrpHi7A8L3OAm7nsMQ4CqpUwYJqJl/laKUdkshdINJceZav3VE
+xKFv5BXo+wcFdpmHNpitWydS8UHRI0vngxBWqWz/t0JgUB3nAqD/gXj0hlaIIFmw
+ddrAn+ZlUP16wvvw7hQQnCbMOIt7OQqwTc9+1hQEM8kCAwEAAaOCAa4wggGqMAwG
+A1UdEwQFMAMBAf8wHQYDVR0OBBYEFEfI/SXsZV9Pbe+MvJLzPZATtSUeMEcGA1Ud
+IwRAMD6AFEfI/SXsZV9Pbe+MvJLzPZATtSUeoSGkHzAdMRswGQYDVQQDDBJ3ZWIt
+cGxhdGZvcm0tdGVzdHOCAwF20DALBgNVHQ8EBAMCAgQwgY8GA1UdHgSBhzCBhKCB
+gTALggkxMjcuMC4wLjEwD4INd3d3LjEyNy4wLjAuMTAQgg53d3cxLjEyNy4wLjAu
+MTAQgg53d3cyLjEyNy4wLjAuMTAYghZ4bi0tbHZlLTZsYWQuMTI3LjAuMC4xMCOC
+IXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLjEyNy4wLjAuMTATBgNVHSUEDDAKBggr
+BgEFBQcDATB+BgNVHREEdzB1ggkxMjcuMC4wLjGCDXd3dy4xMjcuMC4wLjGCDnd3
+dzEuMTI3LjAuMC4xgg53d3cyLjEyNy4wLjAuMYIWeG4tLWx2ZS02bGFkLjEyNy4w
+LjAuMYIheG4tLW44ajZkczUzbHd3a3JxaHYyOGEuMTI3LjAuMC4xMA0GCSqGSIb3
+DQEBCwUAA4IBAQAs+CZ7M/vMVSXS5xjI6dS7qv8hh4D6NueoPaotPKn28r0jYsDj
+ZfFZ0FDO8mZQXMZvLWsgNh6ePmS3vfDN8jaun2h0vyrAzkeThjNqNVDlcn7/nkp2
+gfOjSkh4kUYRYEpsvX7MuFXZsBSohW+89IqHZrEvo4sShSFnfW1izjrwnAibKdcG
++GzSpDACjqfMdTDA8VH7re3FAeomL7Eh+oUhWTe7j7RpAB2LgXqek7amFVFx8rq6
+TXARRepD4IBtW5GONmOMZjWWagVNR4zMWVJUsvSHFiHYzFBx95E56XdEtgKRZPKW
+s/2/k3gEcOb0RPLHH820PrR8596JXDWG0eut
 -----END CERTIFICATE-----
diff --git a/third_party/wpt_tools/certs/cakey.pem b/third_party/wpt_tools/certs/cakey.pem
deleted file mode 100644
index 7de82894..0000000
--- a/third_party/wpt_tools/certs/cakey.pem
+++ /dev/null
@@ -1,30 +0,0 @@
------BEGIN ENCRYPTED PRIVATE KEY-----
-MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIkWIO4EtVGkYCAggA
-MBQGCCqGSIb3DQMHBAi3OesMu9lDwgSCBMjDYQ4+dIkQmN4JbaHXINc8O3DU78J/
-ToUEkMz7t3G2aVRJk7C3Rbzk3u8OMs1p+3CaoH7fpF86kvDjeHwGygRPSZ/ZEh9W
-Si4zMd1xFVlfdbGf1/9n4nEGeorK8rGShXnhs/x1v9ZAmkl3xl9UUkNeRqfmgfor
-FefDcqWaLbGfyq2GVrUk6P2F9klfitdWvqoatKkUjLyO04r4cr7orpLI60gbO7tb
-Huis1C8rmcbAkI5alHZuvlJrAcFacV4oO9SXrIgYiYiLb+8vyGz2Ol6YaFUN+KXq
-K467P0K6y2BxWB6N8UbeQSwgyOA5ckS0kdFeDsBv8WR8eXpDPhLETYEDoNJcUpN2
-Je1hrRUgCDsllSK92NQt2atuXKdUBJCNQ+Y5X/8HsLDqDynm3ea1Sc5gj9a/H0OQ
-yGj5S+xSRQcLTHKANwvOoT1jgrnA5lJSYrbYMY9Wqdt2bJMgxbXsf3CRY0p2uf9m
-9AkYZzDZVocV1mGgtrSSIcFFvEYI8D10z6rRIhTcx/4k0mmyMWxVTW35JHyLvLQd
-nIRbGXYz9zgUYRiOGUDLbrYYZud13rE+62Y8AxVHbrUXMSala3jFN+Ly5JXnLL1P
-5Cy6Hab1BZ4WOBUHEOP5GhKmnrWGkRBSPhQVlOXW5ymTZoSwBgslovZZAhZU4yp0
-RvTldjygC499hTdAfQfrQYok0RnCfVqKIZkng8O5j6IbtPn7dyq4Zv/6sNdNwzPD
-EkkkbPpzvbrboOVf4dmLo8PBIRgJTKZoBBj/RSEVLwx2Zv9azJ0OuQEIY62a9039
-Ithl7HbQYSr8B0JJheL/dYdeICiz9sU97nAf/I9oXGeVj/rX5KwEbSIi10TFTKkA
-9v+tbmeHj8B/87xHexZ8NIMXDTYq2TY4PFlUjFIClNofVPrcJidpBfdyF5RPqfrw
-tH53Cc2sxN+woefPNQPoQHw8WUQ0MgxdN1XwuizvZKM3+44wqhsQloSNrzngjAJ4
-Y4A+oNkTqCuk0uonln3G8Ay2W5A0MKNSSmPXqUeGeANn2Lqj7UCVBeFwx0kjwKGF
-Bn1+xff/Uk09sy8SBlQRqoFkYak4QIrA1AznzQz860zHLmfoH0el8GSQQ26F2xT2
-ICZ0ma52tcAleTH3z6qLcAqh4ykKEMVoIun/ZwVYpqsucntCNQh35M5EUjb+9Tl7
-hGg3Ez8IZ2lkYlpYPzYEd5+vrl4AP/tGWOSmvb9LziulCn0WkZyroTCN7q66WEyo
-fqRIgk+5//NX3CSNKc+bVjNIxQvgh1xQX1zKwcWVbwLykTTkqIaiDsqDVteyOawh
-s1Zb253GSul0mCgixZG0nGciIYZpK7ky6PWC1SbQEKh8VlYgusqgJ7cMtAlb4Cgy
-p2WM/my+FN9DbzUYlgzE8XtWoYbf5NPk7Dx/iOp2mePMunhjc6TaM9T4fAsec7sf
-R8QHIeaQiP2P8ngnhgRe2iSWN1PzAq4ecs/WJ7w+Gpto+QWXy6nzEfcrL55uvIl3
-G2BANBvZnOoymYuZHGArlHT4xFISz3dFPuYzk56ux1riLMB2GKgjoSwU/Mkx5+Df
-dN/ECIt28jcJIWUHhg91FaWXLvmp1peGydi2CHyPzWR43szB2Z/mkrzz6vVomBXc
-Blo=
------END ENCRYPTED PRIVATE KEY-----
diff --git a/third_party/wpt_tools/certs/index.txt b/third_party/wpt_tools/certs/index.txt
index c51d519..5e84914 100644
--- a/third_party/wpt_tools/certs/index.txt
+++ b/third_party/wpt_tools/certs/index.txt
@@ -1,2 +1,2 @@
-V	250104083653Z		01	unknown	/CN=web-platform-tests
-V	250104083653Z		02	unknown	/CN=127.0.0.1
+V	330222171236Z		0176D0	unknown	/CN=web-platform-tests
+V	330222171236Z		0176D1	unknown	/CN=127.0.0.1
diff --git a/third_party/wpt_tools/certs/index.txt.old b/third_party/wpt_tools/certs/index.txt.old
index d9c0e58..ed35c575e 100644
--- a/third_party/wpt_tools/certs/index.txt.old
+++ b/third_party/wpt_tools/certs/index.txt.old
@@ -1 +1 @@
-V	250104083653Z		01	unknown	/CN=web-platform-tests
+V	330222171236Z		0176D0	unknown	/CN=web-platform-tests
diff --git a/third_party/wpt_tools/certs/serial b/third_party/wpt_tools/certs/serial
index 75016ea3..accd6a7a 100644
--- a/third_party/wpt_tools/certs/serial
+++ b/third_party/wpt_tools/certs/serial
@@ -1 +1 @@
-03
+0176D2
diff --git a/third_party/wpt_tools/certs/serial.old b/third_party/wpt_tools/certs/serial.old
index 9e22bcb8..84f5c8c 100644
--- a/third_party/wpt_tools/certs/serial.old
+++ b/third_party/wpt_tools/certs/serial.old
@@ -1 +1 @@
-02
+0176D1
diff --git a/third_party/wpt_tools/update_certs.py b/third_party/wpt_tools/update_certs.py
index 8111bd1..c60105cc 100755
--- a/third_party/wpt_tools/update_certs.py
+++ b/third_party/wpt_tools/update_certs.py
@@ -46,7 +46,7 @@
         key_basename = os.path.basename(key_path)
         pem_basename = os.path.basename(pem_path)
         config_path = os.path.join(_THIS_DIR, os.pardir, 'blink', 'web_tests',
-                                   'external', 'wpt', 'config.json')
+                                   'external', 'wpt', '.config.json')
         if subprocess.call(['sed', '-i', '-E',
                             's%/[^/]+[.]key%/{key}%g;s%/[^/]+[.]pem%/{pem}%g'.format(
                                 key=key_basename, pem=pem_basename),
diff --git a/tools/android/build_speed/benchmark.py b/tools/android/build_speed/benchmark.py
index 0073881..ef034a4 100755
--- a/tools/android/build_speed/benchmark.py
+++ b/tools/android/build_speed/benchmark.py
@@ -27,14 +27,13 @@
 import functools
 import logging
 import pathlib
-import re
 import statistics
 import subprocess
 import sys
 import time
 import shutil
 
-from typing import Dict, Callable, Iterator, List, Tuple, Optional
+from typing import Dict, Callable, Iterator, List, Optional
 
 USE_PYTHON_3 = f'{__file__} will only run under python3.'
 
@@ -62,24 +61,39 @@
     'generic_android24.textpb': 'x86',
     'generic_android25.textpb': 'x86',
     'generic_android26.textpb': 'x86',
+    'generic_android26_local.textpb': 'x86',
     'generic_android27.textpb': 'x86',
+    'generic_android27_local.textpb': 'x86',
     'android_28_google_apis_x86.textpb': 'x86',
+    'android_28_google_apis_x86_local.textpb': 'x86',
     'android_29_google_apis_x86.textpb': 'x86',
+    'android_29_google_apis_x86_local.textpb': 'x86',
     'android_30_google_apis_x86.textpb': 'x86',
+    'android_30_google_apis_x86_local.textpb': 'x86',
     'android_31_google_apis_x64.textpb': 'x64',
+    'android_31_google_apis_x64_local.textpb': 'x64',
     'android_32_google_apis_x64_foldable.textpb': 'x64',
-    'android_33_google_apis_x64': 'x64',
-    'android_34_google_apis_x64': 'x64',
-    'android_35_google_apis_x64': 'x64',
+    'android_32_google_apis_x64_foldable_local.textpb': 'x64',
+    'android_33_google_apis_x64.textpb': 'x64',
+    'android_33_google_apis_x64_local.textpb': 'x64',
+    'android_34_google_apis_x64.textpb': 'x64',
+    'android_34_google_apis_x64_local.textpb': 'x64',
+    'android_35_google_apis_x64.textpb': 'x64',
+    'android_35_google_apis_x64_local.textpb': 'x64',
+    'android_b_google_apis_x64.textpb': 'x64',
+    'android_b_google_apis_x64_local.textpb': 'x64',
 }
 
 _GN_ARGS = [
     'target_os="android"',
-    'incremental_install=true',
     'use_remoteexec=true',
     'use_siso=true',
 ]
 
+_INCREMENTAL_INSTALL = [
+    'incremental_install=true',
+]
+
 _TARGETS = {
     'bundle': 'monochrome_public_bundle',
     'apk': 'chrome_public_apk',
@@ -457,6 +471,9 @@
                         action='store_true',
                         help='Do not start a faster local dev server before '
                         'running the test.')
+    parser.add_argument('--no-incremental-install',
+                        action='store_true',
+                        help='Do not use incremental install.')
     parser.add_argument('-r',
                         '--repeat',
                         type=int,
@@ -495,7 +512,10 @@
     logging.basicConfig(
         level=level, format='%(levelname).1s %(relativeCreated)6d %(message)s')
 
-    gn_args = _GN_ARGS
+    if args.no_incremental_install:
+        gn_args = _GN_ARGS
+    else:
+        gn_args = _GN_ARGS + _INCREMENTAL_INSTALL
 
     if args.emulator:
         devil_chromium.Initialize()
diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec
index 8cc75da..f52225fd 100644
--- a/tools/gritsettings/resource_ids.spec
+++ b/tools/gritsettings/resource_ids.spec
@@ -939,13 +939,13 @@
   "components/headless/command_handler/headless_command.grd": {
     "includes": [7120],
   },
-  # metrics/internal/url_constants.grd and metrics/url_constants.grd must
-  # share the same id because they define the same strings, but only one of them
-  # is built depending on whether src_internal is available.
-  "components/metrics/internal/url_constants.grd": {
+  # metrics/internal/server_urls.grd and metrics/server_urls.grd must share the
+  # same id because they define the same strings, but only one of them is built
+  # depending on whether src_internal is available.
+  "components/metrics/internal/server_urls.grd": {
     "messages": [7130],
   },
-  "components/metrics/url_constants.grd": {
+  "components/metrics/server_urls.grd": {
     "messages": [7130],
   },
   "components/omnibox/resources/omnibox_pedal_synonyms.grd": {
diff --git a/tools/gritsettings/translation_expectations.pyl b/tools/gritsettings/translation_expectations.pyl
index 0467fe8..49e9f94 100644
--- a/tools/gritsettings/translation_expectations.pyl
+++ b/tools/gritsettings/translation_expectations.pyl
@@ -123,7 +123,7 @@
     "chrome/app/resources/locale_settings_win.grd": "Not UI strings; localized separately",
     "chromecast/app/resources/chromecast_settings.grd": "Not UI strings; localized separately",
     "components/components_locale_settings.grd": "Not UI strings; localized separately",
-    "components/metrics/url_constants.grd": "Not UI strings; URLs of metrics endpoints",
+    "components/metrics/server_urls.grd": "Not UI strings; URLs of metrics endpoints",
     "components/search_engine_descriptions_strings.grd": "The strings are already translated when provided",
     "components/plus_addresses/resources/strings/plus_addresses_strings.grd": "UX research ongoing - strings are not yet finalized",
     "components/policy/resources/policy_templates.build.grd": "Copy of policy_templates.grd used locally for build only",
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 33592f22..cc1f862 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -10930,6 +10930,7 @@
       label="V8AuthenticatorAttestationResponse_GetPublicKey_Method"/>
   <int value="5215" label="CloseWatcherScriptConstructor"/>
   <int value="5216" label="Canvas2DImageSmoothingQuality2"/>
+  <int value="5217" label="NonNoneTouchActionWouldLoseEditableHandwriting"/>
 </enum>
 
 <!-- LINT.ThenChange(//third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom:WebFeature) -->
diff --git a/tools/metrics/histograms/metadata/blink/enums.xml b/tools/metrics/histograms/metadata/blink/enums.xml
index 1e7e9c1..e2aae23 100644
--- a/tools/metrics/histograms/metadata/blink/enums.xml
+++ b/tools/metrics/histograms/metadata/blink/enums.xml
@@ -334,6 +334,9 @@
   <int value="2"
       label="Proceeds by completing login to IDP flow in pop-up or CCT"/>
   <int value="3" label="Tab or window is destroyed"/>
+  <int value="4" label="Bottom sheet swiped down on Android"/>
+  <int value="5" label="Bottom sheet swiped back on Android"/>
+  <int value="6" label="Tap scrim on Android"/>
 </enum>
 
 <enum name="FedCmMismatchDialogResult">
diff --git a/tools/metrics/histograms/metadata/geolocation/enums.xml b/tools/metrics/histograms/metadata/geolocation/enums.xml
index 796486a..40f411b3 100644
--- a/tools/metrics/histograms/metadata/geolocation/enums.xml
+++ b/tools/metrics/histograms/metadata/geolocation/enums.xml
@@ -86,6 +86,7 @@
   <int value="2" label="kCustomOnly"/>
   <int value="3" label="kHybridPlatform"/>
   <int value="4" label="kHybridFallbackNetwork"/>
+  <int value="5" label="kHybridPlatform2"/>
 </enum>
 
 <enum name="LocationProviderManagerSource">
diff --git a/tools/metrics/histograms/metadata/image/histograms.xml b/tools/metrics/histograms/metadata/image/histograms.xml
index 9c1d27128..90c1f52 100644
--- a/tools/metrics/histograms/metadata/image/histograms.xml
+++ b/tools/metrics/histograms/metadata/image/histograms.xml
@@ -415,7 +415,7 @@
 </histogram>
 
 <histogram name="ImageDecoder.Png.UiGfxIntoSkBitmap" units="microseconds"
-    expires_after="2025-01-20">
+    expires_after="M137">
   <owner>lukasza@chromium.org</owner>
   <owner>chrome-rust-experiments@google.com</owner>
   <summary>
@@ -433,7 +433,7 @@
 </histogram>
 
 <histogram name="ImageDecoder.Png.UiGfxIntoVector" units="microseconds"
-    expires_after="2025-01-20">
+    expires_after="M137">
   <owner>lukasza@chromium.org</owner>
   <owner>chrome-rust-experiments@google.com</owner>
   <summary>
diff --git a/tools/metrics/histograms/metadata/magic_stack/enums.xml b/tools/metrics/histograms/metadata/magic_stack/enums.xml
index 09ab001..4de8256 100644
--- a/tools/metrics/histograms/metadata/magic_stack/enums.xml
+++ b/tools/metrics/histograms/metadata/magic_stack/enums.xml
@@ -86,6 +86,10 @@
   <int value="3" label="Safety hub module"/>
   <int value="4" label="Educational tip module"/>
   <int value="5" label="Auxiliary search module"/>
+  <int value="6" label="Default Browser Promo Card"/>
+  <int value="7" label="Tab Group Promo Card"/>
+  <int value="8" label="Tab Group Sync Promo Card"/>
+  <int value="9" label="Quick Delete Promo Card"/>
 </enum>
 
 </enums>
diff --git a/tools/metrics/histograms/metadata/magic_stack/histograms.xml b/tools/metrics/histograms/metadata/magic_stack/histograms.xml
index 4a21533..50febdc 100644
--- a/tools/metrics/histograms/metadata/magic_stack/histograms.xml
+++ b/tools/metrics/histograms/metadata/magic_stack/histograms.xml
@@ -86,6 +86,17 @@
   </summary>
 </histogram>
 
+<histogram name="MagicStack.Clank.NewTabPage.Module.EducationalTip.Impression"
+    enum="ModuleType" expires_after="2025-05-11">
+  <owner>xinyiji@google.com</owner>
+  <owner>hanxi@google.com</owner>
+  <summary>
+    Records the total number of times the different educational tip cards are
+    shown to the user within the magic stack. The histogram is logged when the
+    card is shown to the user in the Magic Stack. Android-only.
+  </summary>
+</histogram>
+
 <histogram
     name="MagicStack.Clank.NewTabPage.Module.FetchDataDurationMs.{ModuleType}"
     units="ms" expires_after="2025-03-02">
diff --git a/tools/metrics/histograms/metadata/media/histograms.xml b/tools/metrics/histograms/metadata/media/histograms.xml
index 59c74d7..45573e5 100644
--- a/tools/metrics/histograms/metadata/media/histograms.xml
+++ b/tools/metrics/histograms/metadata/media/histograms.xml
@@ -6000,7 +6000,7 @@
 </histogram>
 
 <histogram name="Media.VideoCapture.Device.Opened.ByModelId" units="usb_id"
-    expires_after="2025-03-30">
+    expires_after="2025-12-15">
   <owner>bryantchandler@chromium.org</owner>
   <owner>openscreen-eng@google.com</owner>
   <summary>
@@ -6017,7 +6017,7 @@
 </histogram>
 
 <histogram name="Media.VideoCapture.Device.Opened.PixelFormat"
-    enum="VideoPixelFormatUnion" expires_after="2025-01-05">
+    enum="VideoPixelFormatUnion" expires_after="2025-12-15">
   <owner>bryantchandler@chromium.org</owner>
   <owner>openscreen-eng@google.com</owner>
   <summary>
@@ -6027,7 +6027,7 @@
 </histogram>
 
 <histogram name="Media.VideoCapture.Device.Opened.Resolution"
-    units="resolution" expires_after="2025-07-22">
+    units="resolution" expires_after="2025-12-15">
   <owner>bryantchandler@chromium.org</owner>
   <owner>openscreen-eng@google.com</owner>
   <summary>
@@ -6053,7 +6053,7 @@
 </histogram>
 
 <histogram name="Media.VideoCapture.Device.SupportedResolution"
-    enum="VideoResolutionDesignation" expires_after="2025-07-22">
+    enum="VideoResolutionDesignation" expires_after="2025-12-15">
   <owner>bryantchandler@chromium.org</owner>
   <owner>eshr@google.com</owner>
   <owner>handellm@google.com</owner>
@@ -6069,7 +6069,7 @@
 </histogram>
 
 <histogram name="Media.VideoCapture.Device.TotalAvailable" units="count"
-    expires_after="2025-04-13">
+    expires_after="2025-12-15">
   <owner>bryantchandler@chromium.org</owner>
   <owner>openscreen-eng@google.com</owner>
   <summary>
@@ -6079,7 +6079,7 @@
 </histogram>
 
 <histogram name="Media.VideoCapture.Error" enum="VideoCaptureError"
-    expires_after="2025-03-30">
+    expires_after="2025-12-15">
   <owner>mcasas@chromium.org</owner>
   <owner>guidou@chromium.org</owner>
   <owner>armax@chromium.org</owner>
@@ -6093,7 +6093,7 @@
 </histogram>
 
 <histogram name="Media.VideoCapture.FrameRate" units="fps"
-    expires_after="2025-03-30">
+    expires_after="2025-12-15">
   <owner>mcasas@chromium.org</owner>
   <owner>guidou@chromium.org</owner>
   <owner>armax@chromium.org</owner>
@@ -7223,7 +7223,7 @@
 </histogram>
 
 <histogram name="MediaRouter.Cast.Discovery.ConnectedDevicesCount"
-    units="devices" expires_after="2025-01-11">
+    units="devices" expires_after="2025-12-09">
   <owner>mfoltz@chromium.org</owner>
   <owner>openscreen-eng@google.com</owner>
   <summary>
diff --git a/tools/metrics/histograms/metadata/optimization/histograms.xml b/tools/metrics/histograms/metadata/optimization/histograms.xml
index 946f992..5c78aac 100644
--- a/tools/metrics/histograms/metadata/optimization/histograms.xml
+++ b/tools/metrics/histograms/metadata/optimization/histograms.xml
@@ -905,7 +905,7 @@
 
 <histogram
     name="OptimizationGuide.ModelExecution.OnDeviceResponseCompleteTime.{ModelExecutionFeature}"
-    units="ms" expires_after="2025-03-02">
+    units="ms" expires_after="2025-06-05">
   <owner>cduvall@chromium.org</owner>
   <owner>sophiechang@chromium.org</owner>
   <summary>
@@ -917,6 +917,18 @@
 </histogram>
 
 <histogram
+    name="OptimizationGuide.ModelExecution.OnDeviceResponseCompleteTokens.{ModelExecutionFeature}"
+    units="tokens" expires_after="2025-06-05">
+  <owner>cduvall@chromium.org</owner>
+  <owner>sophiechang@chromium.org</owner>
+  <summary>
+    Records the number of output tokens when the execution finishes. Recorded on
+    successful completion of for each execution of the on device model.
+  </summary>
+  <token key="ModelExecutionFeature" variants="ModelExecutionFeature"/>
+</histogram>
+
+<histogram
     name="OptimizationGuide.ModelExecution.OnDeviceResponseHasRepeats.{ModelExecutionFeature}"
     enum="Boolean" expires_after="2025-06-27">
   <owner>cduvall@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/others/enums.xml b/tools/metrics/histograms/metadata/others/enums.xml
index e28fa459..2a38cfe 100644
--- a/tools/metrics/histograms/metadata/others/enums.xml
+++ b/tools/metrics/histograms/metadata/others/enums.xml
@@ -203,6 +203,391 @@
   <int value="12" label="SignalParseFailed"/>
 </enum>
 
+<!-- From https://github.com/apple-oss-distributions/Security/blob/3dab46a11f45f2ffdbd70e2127cc5a8ce4a1f222/base/SecBase.h#L320 -->
+
+<enum name="SecurityFrameworkOSStatus">
+  <int value="-67903" label="errSecCertificateDuplicateExtension"/>
+  <int value="-67902" label="errSecCertificateIsCA"/>
+  <int value="-67901" label="errSecCertificateValidityPeriodTooLong"/>
+  <int value="-67900" label="errSecCertificateNameNotAllowed"/>
+  <int value="-67899" label="errSecCertificatePolicyNotAllowed"/>
+  <int value="-67898" label="errSecTimestampRevocationNotification"/>
+  <int value="-67897" label="errSecTimestampRevocationWarning"/>
+  <int value="-67896" label="errSecTimestampWaiting"/>
+  <int value="-67895" label="errSecTimestampRejection"/>
+  <int value="-67894" label="errSecSigningTimeMissing"/>
+  <int value="-67893" label="errSecTimestampSystemFailure"/>
+  <int value="-67892" label="errSecTimestampAddInfoNotAvailable"/>
+  <int value="-67891" label="errSecTimestampUnacceptedExtension"/>
+  <int value="-67890" label="errSecTimestampUnacceptedPolicy"/>
+  <int value="-67889" label="errSecTimestampTimeNotAvailable"/>
+  <int value="-67888" label="errSecTimestampBadDataFormat"/>
+  <int value="-67887" label="errSecTimestampBadRequest"/>
+  <int value="-67886" label="errSecTimestampBadAlg"/>
+  <int value="-67885" label="errSecTimestampServiceNotAvailable"/>
+  <int value="-67884" label="errSecTimestampNotTrusted"/>
+  <int value="-67883" label="errSecTimestampInvalid"/>
+  <int value="-67882" label="errSecTimestampMissing"/>
+  <int value="-67881" label="errSecExtendedKeyUsageNotCritical"/>
+  <int value="-67880" label="errSecMissingRequiredExtension"/>
+  <int value="-67879" label="errSecInvalidModifyMode"/>
+  <int value="-67878" label="errSecInvalidNewOwner"/>
+  <int value="-67877" label="errSecInvalidIndexInfo"/>
+  <int value="-67876" label="errSecInvalidAccessRequest"/>
+  <int value="-67875" label="errSecInvalidDBLocation"/>
+  <int value="-67874" label="errSecUnsupportedOperator"/>
+  <int value="-67873" label="errSecUnsupportedNumSelectionPreds"/>
+  <int value="-67872" label="errSecUnsupportedQueryLimits"/>
+  <int value="-67871" label="errSecMissingValue"/>
+  <int value="-67870" label="errSecDatastoreIsOpen"/>
+  <int value="-67869" label="errSecDatabaseLocked"/>
+  <int value="-67868" label="errSecInvalidParsingModule"/>
+  <int value="-67867" label="errSecIncompatibleFieldFormat"/>
+  <int value="-67866" label="errSecFieldSpecifiedMultiple"/>
+  <int value="-67865" label="errSecUnsupportedNumRecordTypes"/>
+  <int value="-67864" label="errSecUnsupportedNumIndexes"/>
+  <int value="-67863" label="errSecUnsupportedNumAttributes"/>
+  <int value="-67862" label="errSecUnsupportedLocality"/>
+  <int value="-67861" label="errSecUnsupportedIndexInfo"/>
+  <int value="-67860" label="errSecUnsupportedFieldFormat"/>
+  <int value="-67859" label="errSecNoFieldValues"/>
+  <int value="-67858" label="errSecInvalidCRLIndex"/>
+  <int value="-67857" label="errSecInvalidBundleInfo"/>
+  <int value="-67856" label="errSecRequestDescriptor"/>
+  <int value="-67855" label="errSecInvalidRequestor"/>
+  <int value="-67854" label="errSecInvalidValidityPeriod"/>
+  <int value="-67853" label="errSecInvalidEncoding"/>
+  <int value="-67852" label="errSecInvalidTupleCredentials"/>
+  <int value="-67851" label="errSecInvalidBaseACLs"/>
+  <int value="-67850" label="errSecInvalidTupleGroup"/>
+  <int value="-67849" label="errSecUnsupportedService"/>
+  <int value="-67848" label="errSecUnsupportedAddressType"/>
+  <int value="-67847" label="errSecRequestRejected"/>
+  <int value="-67846" label="errSecRequestLost"/>
+  <int value="-67845" label="errSecRejectedForm"/>
+  <int value="-67844" label="errSecNoDefaultAuthority"/>
+  <int value="-67843" label="errSecNotTrusted"/>
+  <int value="-67842" label="errSecMultipleValuesUnsupported"/>
+  <int value="-67841" label="errSecInvalidTuple"/>
+  <int value="-67840" label="errSecInvalidStopOnPolicy"/>
+  <int value="-67839" label="errSecInvalidResponseVector"/>
+  <int value="-67838" label="errSecInvalidRequestInputs"/>
+  <int value="-67837" label="errSecInvalidReason"/>
+  <int value="-67836" label="errSecInvalidTimeString"/>
+  <int value="-67835" label="errSecInvalidPolicyIdentifiers"/>
+  <int value="-67834" label="errSecInvalidIndex"/>
+  <int value="-67833" label="errSecInvalidIdentifier"/>
+  <int value="-67832" label="errSecInvalidID"/>
+  <int value="-67831" label="errSecInvalidFormType"/>
+  <int value="-67830" label="errSecInvalidCRL"/>
+  <int value="-67829" label="errSecInvalidCRLType"/>
+  <int value="-67828" label="errSecInvalidCRLEncoding"/>
+  <int value="-67827" label="errSecInvalidCRLAuthority"/>
+  <int value="-67826" label="errSecInvalidCertAuthority"/>
+  <int value="-67825" label="errSecVerifyActionFailed"/>
+  <int value="-67824" label="errSecInvalidAuthority"/>
+  <int value="-67823" label="errSecInvalidAction"/>
+  <int value="-67822" label="errSecInsufficientCredentials"/>
+  <int value="-67821" label="errSecCertificateSuspended"/>
+  <int value="-67820" label="errSecCertificateRevoked"/>
+  <int value="-67819" label="errSecCertificateNotValidYet"/>
+  <int value="-67818" label="errSecCertificateExpired"/>
+  <int value="-67817" label="errSecCertificateCannotOperate"/>
+  <int value="-67816" label="errSecInvalidCRLGroup"/>
+  <int value="-67815" label="errSecInvalidDigestAlgorithm"/>
+  <int value="-67814" label="errSecAlreadyLoggedIn"/>
+  <int value="-67813" label="errSecInvalidLoginName"/>
+  <int value="-67812" label="errSecDeviceVerifyFailed"/>
+  <int value="-67811" label="errSecPublicKeyInconsistent"/>
+  <int value="-67810" label="errSecBlockSizeMismatch"/>
+  <int value="-67809" label="errSecQuerySizeUnknown"/>
+  <int value="-67808" label="errSecVerifyFailed"/>
+  <int value="-67807" label="errSecStagedOperationNotStarted"/>
+  <int value="-67806" label="errSecStagedOperationInProgress"/>
+  <int value="-67805" label="errSecMissingAttributeWrappedKeyFormat"/>
+  <int value="-67804" label="errSecInvalidAttributeWrappedKeyFormat"/>
+  <int value="-67803" label="errSecMissingAttributeSymmetricKeyFormat"/>
+  <int value="-67802" label="errSecInvalidAttributeSymmetricKeyFormat"/>
+  <int value="-67801" label="errSecMissingAttributePrivateKeyFormat"/>
+  <int value="-67800" label="errSecInvalidAttributePrivateKeyFormat"/>
+  <int value="-67799" label="errSecMissingAttributePublicKeyFormat"/>
+  <int value="-67798" label="errSecInvalidAttributePublicKeyFormat"/>
+  <int value="-67797" label="errSecMissingAttributeAccessCredentials"/>
+  <int value="-67796" label="errSecInvalidAttributeAccessCredentials"/>
+  <int value="-67795" label="errSecMissingAttributeDLDBHandle"/>
+  <int value="-67794" label="errSecInvalidAttributeDLDBHandle"/>
+  <int value="-67793" label="errSecMissingAttributeIterationCount"/>
+  <int value="-67792" label="errSecInvalidAttributeIterationCount"/>
+  <int value="-67791" label="errSecMissingAttributeSubprime"/>
+  <int value="-67790" label="errSecInvalidAttributeSubprime"/>
+  <int value="-67789" label="errSecMissingAttributeBase"/>
+  <int value="-67788" label="errSecInvalidAttributeBase"/>
+  <int value="-67787" label="errSecMissingAttributePrime"/>
+  <int value="-67786" label="errSecInvalidAttributePrime"/>
+  <int value="-67785" label="errSecMissingAttributeVersion"/>
+  <int value="-67784" label="errSecInvalidAttributeVersion"/>
+  <int value="-67783" label="errSecMissingAttributeEndDate"/>
+  <int value="-67782" label="errSecInvalidAttributeEndDate"/>
+  <int value="-67781" label="errSecMissingAttributeStartDate"/>
+  <int value="-67780" label="errSecInvalidAttributeStartDate"/>
+  <int value="-67779" label="errSecMissingAttributeEffectiveBits"/>
+  <int value="-67778" label="errSecInvalidAttributeEffectiveBits"/>
+  <int value="-67777" label="errSecMissingAttributeMode"/>
+  <int value="-67776" label="errSecInvalidAttributeMode"/>
+  <int value="-67775" label="errSecMissingAttributeKeyType"/>
+  <int value="-67774" label="errSecInvalidAttributeKeyType"/>
+  <int value="-67773" label="errSecMissingAttributeLabel"/>
+  <int value="-67772" label="errSecInvalidAttributeLabel"/>
+  <int value="-67771" label="errSecMissingAlgorithmParms"/>
+  <int value="-67770" label="errSecInvalidAlgorithmParms"/>
+  <int value="-67769" label="errSecMissingAttributeRounds"/>
+  <int value="-67768" label="errSecInvalidAttributeRounds"/>
+  <int value="-67767" label="errSecMissingAttributeOutputSize"/>
+  <int value="-67766" label="errSecInvalidAttributeOutputSize"/>
+  <int value="-67765" label="errSecMissingAttributeBlockSize"/>
+  <int value="-67764" label="errSecInvalidAttributeBlockSize"/>
+  <int value="-67763" label="errSecMissingAttributeKeyLength"/>
+  <int value="-67762" label="errSecInvalidAttributeKeyLength"/>
+  <int value="-67761" label="errSecMissingAttributePassphrase"/>
+  <int value="-67760" label="errSecInvalidAttributePassphrase"/>
+  <int value="-67759" label="errSecMissingAttributeSeed"/>
+  <int value="-67758" label="errSecInvalidAttributeSeed"/>
+  <int value="-67757" label="errSecMissingAttributeRandom"/>
+  <int value="-67756" label="errSecInvalidAttributeRandom"/>
+  <int value="-67755" label="errSecMissingAttributePadding"/>
+  <int value="-67754" label="errSecInvalidAttributePadding"/>
+  <int value="-67753" label="errSecMissingAttributeSalt"/>
+  <int value="-67752" label="errSecInvalidAttributeSalt"/>
+  <int value="-67751" label="errSecMissingAttributeInitVector"/>
+  <int value="-67750" label="errSecInvalidAttributeInitVector"/>
+  <int value="-67749" label="errSecMissingAttributeKey"/>
+  <int value="-67748" label="errSecInvalidAttributeKey"/>
+  <int value="-67747" label="errSecInvalidAlgorithm"/>
+  <int value="-67746" label="errSecInvalidContext"/>
+  <int value="-67745" label="errSecInvalidOutputVector"/>
+  <int value="-67744" label="errSecInvalidInputVector"/>
+  <int value="-67743" label="errSecUnsupportedVectorOfBuffers"/>
+  <int value="-67742" label="errSecInvalidKeyFormat"/>
+  <int value="-67741" label="errSecUnsupportedKeyLabel"/>
+  <int value="-67740" label="errSecInvalidKeyLabel"/>
+  <int value="-67739" label="errSecUnsupportedKeyAttributeMask"/>
+  <int value="-67738" label="errSecInvalidKeyAttributeMask"/>
+  <int value="-67737" label="errSecUnsupportedKeyUsageMask"/>
+  <int value="-67736" label="errSecInvalidKeyUsageMask"/>
+  <int value="-67735" label="errSecUnsupportedKeySize"/>
+  <int value="-67734" label="errSecUnsupportedKeyFormat"/>
+  <int value="-67733" label="errSecKeyHeaderInconsistent"/>
+  <int value="-67732" label="errSecKeyBlobTypeIncorrect"/>
+  <int value="-67731" label="errSecKeyUsageIncorrect"/>
+  <int value="-67730" label="errSecAlgorithmMismatch"/>
+  <int value="-67729" label="errSecNotLoggedIn"/>
+  <int value="-67728" label="errSecAttachHandleBusy"/>
+  <int value="-67727" label="errSecDeviceError"/>
+  <int value="-67726" label="errSecPrivilegeNotSupported"/>
+  <int value="-67725" label="errSecOutputLengthError"/>
+  <int value="-67724" label="errSecInputLengthError"/>
+  <int value="-67723" label="errSecEventNotificationCallbackNotFound"/>
+  <int value="-67722" label="errSecModuleManagerNotFound"/>
+  <int value="-67721" label="errSecModuleManagerInitializeFailed"/>
+  <int value="-67720" label="errSecAttributeNotInContext"/>
+  <int value="-67719" label="errSecInvalidSubServiceID"/>
+  <int value="-67718" label="errSecModuleNotLoaded"/>
+  <int value="-67717" label="errSecInvalidServiceMask"/>
+  <int value="-67716" label="errSecInvalidAddinFunctionTable"/>
+  <int value="-67715" label="errSecLibraryReferenceNotFound"/>
+  <int value="-67714" label="errSecAddinUnloadFailed"/>
+  <int value="-67713" label="errSecInvalidKeyHierarchy"/>
+  <int value="-67712" label="errSecInvalidKeyRef"/>
+  <int value="-67711" label="errSecAddinLoadFailed"/>
+  <int value="-67710" label="errSecEMMUnloadFailed"/>
+  <int value="-67709" label="errSecEMMLoadFailed"/>
+  <int value="-67708" label="errSecInvalidPVC"/>
+  <int value="-67707" label="errSecPVCAlreadyConfigured"/>
+  <int value="-67706" label="errSecInvalidScope"/>
+  <int value="-67705" label="errSecPrivilegeNotGranted"/>
+  <int value="-67704" label="errSecIncompatibleVersion"/>
+  <int value="-67703" label="errSecInvalidSampleValue"/>
+  <int value="-67702" label="errSecInvalidACL"/>
+  <int value="-67701" label="errSecInvalidRecord"/>
+  <int value="-67700" label="errSecInvalidAccessCredentials"/>
+  <int value="-67699" label="errSecACLChangeFailed"/>
+  <int value="-67698" label="errSecACLAddFailed"/>
+  <int value="-67697" label="errSecACLReplaceFailed"/>
+  <int value="-67696" label="errSecACLDeleteFailed"/>
+  <int value="-67695" label="errSecCallbackFailed"/>
+  <int value="-67694" label="errSecInvalidValue"/>
+  <int value="-67693" label="errSecInvalidQuery"/>
+  <int value="-67692" label="errSecTagNotFound"/>
+  <int value="-67691" label="errSecInvalidCertificateGroup"/>
+  <int value="-67690" label="errSecInvalidCertificateRef"/>
+  <int value="-67689" label="errSecInvalidName"/>
+  <int value="-67688" label="errSecInvalidSignature"/>
+  <int value="-67687" label="errSecUnknownTag"/>
+  <int value="-67686" label="errSecVerificationFailure"/>
+  <int value="-67685" label="errSecInvalidNumberOfFields"/>
+  <int value="-67684" label="errSecCRLAlreadySigned"/>
+  <int value="-67683" label="errSecInvalidNetworkAddress"/>
+  <int value="-67682" label="errSecInvalidPassthroughID"/>
+  <int value="-67681" label="errSecInvalidDBList"/>
+  <int value="-67680" label="errSecInvalidHandle"/>
+  <int value="-67679" label="errSecInvalidGUID"/>
+  <int value="-67678" label="errSecModuleManifestVerifyFailed"/>
+  <int value="-67677" label="errSecFunctionFailed"/>
+  <int value="-67676" label="errSecSelfCheckFailed"/>
+  <int value="-67675" label="errSecInvalidPointer"/>
+  <int value="-67674" label="errSecMDSError"/>
+  <int value="-67673" label="errSecInvalidData"/>
+  <int value="-67672" label="errSecMemoryError"/>
+  <int value="-67671" label="errSecInternalError"/>
+  <int value="-67670" label="errSecFunctionIntegrityFail"/>
+  <int value="-67669" label="errSecPVCReferentNotFound"/>
+  <int value="-67668" label="errSecInvalidHandleUsage"/>
+  <int value="-67667" label="errSecNotInitialized"/>
+  <int value="-67666" label="errSecMobileMeFailedConsistencyCheck"/>
+  <int value="-67665" label="errSecMobileMeCSRVerifyFailure"/>
+  <int value="-67664" label="errSecMobileMeNoRequestPending"/>
+  <int value="-67663" label="errSecMobileMeRequestAlreadyPending"/>
+  <int value="-67662" label="errSecMobileMeServerServiceErr"/>
+  <int value="-67661" label="errSecMobileMeServerAlreadyExists"/>
+  <int value="-67660" label="errSecMobileMeServerNotAvailable"/>
+  <int value="-67659" label="errSecMobileMeServerError"/>
+  <int value="-67658" label="errSecMobileMeRequestRedirected"/>
+  <int value="-67657" label="errSecMobileMeRequestQueued"/>
+  <int value="-67656" label="errSecUnknownQualifiedCertStatement"/>
+  <int value="-67655" label="errSecInvalidSubjectName"/>
+  <int value="-67654" label="errSecTrustSettingDeny"/>
+  <int value="-67653" label="errSecResourceSignBadExtKeyUsage"/>
+  <int value="-67652" label="errSecResourceSignBadCertChainLength"/>
+  <int value="-67651" label="errSecCodeSigningDevelopment"/>
+  <int value="-67650" label="errSecCodeSigningNoExtendedKeyUsage"/>
+  <int value="-67649" label="errSecCodeSigningBadPathLengthConstraint"/>
+  <int value="-67648" label="errSecCodeSigningNoBasicConstraints"/>
+  <int value="-67647" label="errSecCodeSigningBadCertChainLength"/>
+  <int value="-67646" label="errSecOCSPResponseNonceMismatch"/>
+  <int value="-67645" label="errSecOCSPResponderUnauthorized"/>
+  <int value="-67644" label="errSecOCSPResponderSignatureRequired"/>
+  <int value="-67643" label="errSecOCSPResponderTryLater"/>
+  <int value="-67642" label="errSecOCSPResponderInternalError"/>
+  <int value="-67641" label="errSecOCSPResponderMalformedReq"/>
+  <int value="-67640" label="errSecOCSPNoSigner"/>
+  <int value="-67639" label="errSecOCSPSignatureError"/>
+  <int value="-67638" label="errSecRecordModified"/>
+  <int value="-67637" label="errSecOCSPNotTrustedToAnchor"/>
+  <int value="-67636" label="errSecNetworkFailure"/>
+  <int value="-67635" label="errSecIncompleteCertRevocationCheck"/>
+  <int value="-67634" label="errSecEndOfData"/>
+  <int value="-67633" label="errSecOCSPStatusUnrecognized"/>
+  <int value="-67632" label="errSecOCSPUnavailable"/>
+  <int value="-67631" label="errSecOCSPBadRequest"/>
+  <int value="-67630" label="errSecOCSPBadResponse"/>
+  <int value="-67629" label="errSecSSLBadExtendedKeyUsage"/>
+  <int value="-67628" label="errSecSMIMESubjAltNameNotCritical"/>
+  <int value="-67627" label="errSecSMIMENoEmailAddress"/>
+  <int value="-67626" label="errSecSMIMEKeyUsageNotCritical"/>
+  <int value="-67625" label="errSecSMIMEBadKeyUsage"/>
+  <int value="-67624" label="errSecSMIMEBadExtendedKeyUsage"/>
+  <int value="-67623" label="errSecSMIMEEmailAddressesNotFound"/>
+  <int value="-67622" label="errSecIDPFailure"/>
+  <int value="-67621" label="errSecCRLPolicyFailed"/>
+  <int value="-67620" label="errSecCRLNotTrusted"/>
+  <int value="-67619" label="errSecUnknownCRLExtension"/>
+  <int value="-67618" label="errSecUnknownCertExtension"/>
+  <int value="-67617" label="errSecCRLBadURI"/>
+  <int value="-67616" label="errSecCRLServerDown"/>
+  <int value="-67615" label="errSecCRLNotFound"/>
+  <int value="-67614" label="errSecCRLNotValidYet"/>
+  <int value="-67613" label="errSecCRLExpired"/>
+  <int value="-67612" label="errSecInvalidRoot"/>
+  <int value="-67611" label="errSecPathLengthConstraintExceeded"/>
+  <int value="-67610" label="errSecInvalidIDLinkage"/>
+  <int value="-67609" label="errSecInvalidExtendedKeyUsage"/>
+  <int value="-67608" label="errSecInvalidKeyUsageForPolicy"/>
+  <int value="-67607" label="errSecInvalidSubjectKeyID"/>
+  <int value="-67606" label="errSecInvalidAuthorityKeyID"/>
+  <int value="-67605" label="errSecNoBasicConstraintsCA"/>
+  <int value="-67604" label="errSecNoBasicConstraints"/>
+  <int value="-67603" label="errSecUnknownCriticalExtensionFlag"/>
+  <int value="-67602" label="errSecHostNameMismatch"/>
+  <int value="-67601" label="errSecIncompatibleKeyBlob"/>
+  <int value="-67600" label="errSecIncompatibleDatabaseBlob"/>
+  <int value="-67599" label="errSecInvalidKeyBlob"/>
+  <int value="-67598" label="errSecInvalidDatabaseBlob"/>
+  <int value="-67597" label="errSecFileTooBig"/>
+  <int value="-67596" label="errSecQuotaExceeded"/>
+  <int value="-67595" label="errSecAppleSSLv2Rollback"/>
+  <int value="-67594" label="errSecConversionError"/>
+  <int value="-67593" label="errSecAppleInvalidKeyEndDate"/>
+  <int value="-67592" label="errSecAppleInvalidKeyStartDate"/>
+  <int value="-67591" label="errSecAppleSignatureMismatch"/>
+  <int value="-67590" label="errSecApplePublicKeyIncomplete"/>
+  <int value="-67589" label="errSecAppleAddAppACLSubject"/>
+  <int value="-67588" label="errSecDeviceFailed"/>
+  <int value="-67587" label="errSecDeviceReset"/>
+  <int value="-67586" label="errSecInsufficientClientID"/>
+  <int value="-67585" label="errSecServiceNotAvailable"/>
+  <int value="-34020" label="errSecRestrictedAPI"/>
+  <int value="-34018" label="errSecMissingEntitlement"/>
+  <int value="-26275" label="errSecDecode"/>
+  <int value="-26267" label="errSecNotSigner"/>
+  <int value="-25320" label="errSecInDarkWake"/>
+  <int value="-25319" label="errSecInvalidPrefsDomain"/>
+  <int value="-25318" label="errSecCreateChainFailed"/>
+  <int value="-25317" label="errSecDataNotModifiable"/>
+  <int value="-25316" label="errSecDataNotAvailable"/>
+  <int value="-25315" label="errSecInteractionRequired"/>
+  <int value="-25314" label="errSecNoPolicyModule"/>
+  <int value="-25313" label="errSecNoCertificateModule"/>
+  <int value="-25312" label="errSecNoStorageModule"/>
+  <int value="-25311" label="errSecKeySizeNotAllowed"/>
+  <int value="-25310" label="errSecWrongSecVersion"/>
+  <int value="-25309" label="errSecReadOnlyAttr"/>
+  <int value="-25308" label="errSecInteractionNotAllowed"/>
+  <int value="-25307" label="errSecNoDefaultKeychain"/>
+  <int value="-25306" label="errSecNoSuchClass"/>
+  <int value="-25305" label="errSecInvalidSearchRef"/>
+  <int value="-25304" label="errSecInvalidItemRef"/>
+  <int value="-25303" label="errSecNoSuchAttr"/>
+  <int value="-25302" label="errSecDataTooLarge"/>
+  <int value="-25301" label="errSecBufferTooSmall"/>
+  <int value="-25300" label="errSecItemNotFound"/>
+  <int value="-25299" label="errSecDuplicateItem"/>
+  <int value="-25298" label="errSecInvalidCallback"/>
+  <int value="-25297" label="errSecDuplicateCallback"/>
+  <int value="-25296" label="errSecDuplicateKeychain"/>
+  <int value="-25295" label="errSecInvalidKeychain"/>
+  <int value="-25294" label="errSecNoSuchKeychain"/>
+  <int value="-25293" label="errSecAuthFailed"/>
+  <int value="-25292" label="errSecReadOnly"/>
+  <int value="-25291" label="errSecNotAvailable"/>
+  <int value="-25264" label="errSecPkcs12VerifyFailure"/>
+  <int value="-25263" label="errSecNoTrustSettings"/>
+  <int value="-25262" label="errSecInvalidTrustSettings"/>
+  <int value="-25261" label="errSecInvalidPasswordRef"/>
+  <int value="-25260" label="errSecPassphraseRequired"/>
+  <int value="-25259" label="errSecMultiplePrivKeys"/>
+  <int value="-25258" label="errSecKeyIsSensitive"/>
+  <int value="-25257" label="errSecUnknownFormat"/>
+  <int value="-25256" label="errSecUnsupportedFormat"/>
+  <int value="-25245" label="errSecTrustNotAvailable"/>
+  <int value="-25244" label="errSecInvalidOwnerEdit"/>
+  <int value="-25243" label="errSecNoAccessForItem"/>
+  <int value="-25242" label="errSecInvalidTrustSetting"/>
+  <int value="-25241" label="errSecPolicyNotFound"/>
+  <int value="-25240" label="errSecACLNotSimple"/>
+  <int value="-4960" label="errSecCoreFoundationUnknown"/>
+  <int value="-2070" label="errSecInternalComponent"/>
+  <int value="-909" label="errSecBadReq"/>
+  <int value="-128" label="errSecUserCanceled"/>
+  <int value="-108" label="errSecAllocate"/>
+  <int value="-61" label="errSecWrPerm"/>
+  <int value="-50" label="errSecParam"/>
+  <int value="-49" label="errSecOpWr"/>
+  <int value="-36" label="errSecIO"/>
+  <int value="-34" label="errSecDiskFull"/>
+  <int value="-4" label="errSecUnimplemented"/>
+  <int value="0" label="errSecSuccess"/>
+</enum>
+
 <enum name="SilentPushEvent">
   <int value="0" label="New Silent Push request"/>
   <int value="1" label="Notification enforcement skipped"/>
diff --git a/tools/metrics/histograms/metadata/others/histograms.xml b/tools/metrics/histograms/metadata/others/histograms.xml
index 6b13bcab..95058c6b 100644
--- a/tools/metrics/histograms/metadata/others/histograms.xml
+++ b/tools/metrics/histograms/metadata/others/histograms.xml
@@ -851,7 +851,7 @@
   <summary>
     True if there is a cache hit when loading an owner's interest groups for a
     FLEDGE auction. Recorded whenever an owner's interest groups are loaded for
-    an auction and the cache is enabled via FledgeUseInterestGroupCache.
+    an auction.
 
     See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
     version of the FLEDGE explainer.
@@ -879,8 +879,7 @@
   <summary>
     True if when loading interest groups for an owner, an existing call to the
     database was used. Recorded whenever an owner's interest groups are loaded
-    for an auction, the cache is enabled via FledgeUseInterestGroupCache, and
-    there was no cache hit.
+    for an auction and there was no cache hit.
 
     See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
     version of the FLEDGE explainer.
@@ -1471,8 +1470,7 @@
   <summary>
     True if there is a cache hit when loading one interest group via
     InterestGroupCachingStorage::GetInterestGroup. Recorded when
-    GetInterestGroup is called and the cache is enabled via
-    FledgeUseInterestGroupCache.
+    GetInterestGroup is called.
 
     See https://github.com/WICG/turtledove/blob/main/FLEDGE.md for the latest
     version of the FLEDGE explainer.
@@ -4732,7 +4730,7 @@
 </histogram>
 
 <histogram name="Feedback.ReportSending.Online" enum="Boolean"
-    expires_after="2025-01-21">
+    expires_after="2026-01-21">
   <owner>xiangdongkong@google.com</owner>
   <owner>cros-device-enablement@google.com</owner>
   <summary>
@@ -6964,6 +6962,17 @@
   </summary>
 </histogram>
 
+<histogram name="OSCrypt.Mac.FindGenericPasswordError"
+    enum="SecurityFrameworkOSStatus" expires_after="2025-12-01">
+  <owner>markrowe@chromium.org</owner>
+  <owner>thestig@chromium.org</owner>
+  <summary>
+    The error code returned by SecKeychainFindGenericPassword.
+    errSecItemNotFound is handled and will not be emitted. This is emitted every
+    time OSCrypt fails to retrieve the safe storage password from the keychain.
+  </summary>
+</histogram>
+
 <histogram name="OSCrypt.SecretPortalKeyProvider.GotToken" enum="Boolean"
     expires_after="2025-07-28">
   <owner>thomasanderson@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/sb_client/histograms.xml b/tools/metrics/histograms/metadata/sb_client/histograms.xml
index b19c5ab..626793e 100644
--- a/tools/metrics/histograms/metadata/sb_client/histograms.xml
+++ b/tools/metrics/histograms/metadata/sb_client/histograms.xml
@@ -787,6 +787,28 @@
   </summary>
 </histogram>
 
+<histogram name="SBClientPhishing.OnDeviceModelExecutionDuration" units="ms"
+    expires_after="2025-12-02">
+  <owner>andysjlim@chromium.org</owner>
+  <owner>chrome-counter-abuse-alerts@google.com</owner>
+  <summary>
+    Records the duration it took to execute the on-device model. This happens
+    for Enhanced Safe Browsing enabled users when a keyboard lock occurs on the
+    page they are on and the on-device model session creation is available.
+  </summary>
+</histogram>
+
+<histogram name="SBClientPhishing.OnDeviceModelExecutionSuccess"
+    enum="BooleanSuccess" expires_after="2025-12-02">
+  <owner>andysjlim@chromium.org</owner>
+  <owner>chrome-counter-abuse-alerts@google.com</owner>
+  <summary>
+    Records whether the on-device model execution is successful or not. This
+    happens for Enhanced Safe Browsing enabled users who called to execute the
+    on-device model when inquiring for scam detection.
+  </summary>
+</histogram>
+
 <histogram name="SBClientPhishing.OnDeviceModelFetchTime" units="ms"
     expires_after="2025-11-25">
   <owner>andysjlim@chromium.org</owner>
@@ -797,6 +819,29 @@
   </summary>
 </histogram>
 
+<histogram name="SBClientPhishing.OnDeviceModelResponseParseSuccess"
+    enum="BooleanSuccess" expires_after="2025-12-02">
+  <owner>andysjlim@chromium.org</owner>
+  <owner>chrome-counter-abuse-alerts@google.com</owner>
+  <summary>
+    Records whether the on-device model execution result's response parsing is
+    successful or not. This is only logged when the model execution is
+    successful.
+  </summary>
+</histogram>
+
+<histogram name="SBClientPhishing.OnDeviceModelSessionCreationTime" units="ms"
+    expires_after="2025-12-02">
+  <owner>andysjlim@chromium.org</owner>
+  <owner>chrome-counter-abuse-alerts@google.com</owner>
+  <summary>
+    Records the duration it took to create an on-device model session. This
+    happens for Enhanced Safe Browsing enabled users when a keyboard lock occurs
+    on the page they are on and the on-device model session creation is
+    available.
+  </summary>
+</histogram>
+
 <histogram name="SBClientPhishing.OptimizationGuide.ModelFetchTime" units="ms"
     expires_after="2025-04-13">
   <owner>andysjlim@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/search/enums.xml b/tools/metrics/histograms/metadata/search/enums.xml
index 78eb88ce..39a9795 100644
--- a/tools/metrics/histograms/metadata/search/enums.xml
+++ b/tools/metrics/histograms/metadata/search/enums.xml
@@ -210,6 +210,17 @@
   <int value="2" label="Succeed"/>
 </enum>
 
+<enum name="KeywordTableHashValidationStatus">
+  <int value="0" label="Hash was validated successfully"/>
+  <int value="1" label="Decryption failed"/>
+  <int value="2" label="Hash format was invalid"/>
+  <int value="3" label="Hash did not match expected value"/>
+  <int value="4"
+      label="Hash was not verified as decryption services were not available"/>
+  <int value="5"
+      label="Hash was not verified as hash verification is disabled"/>
+</enum>
+
 <!-- LINT.IfChange(LaunchOsChoiceScreenTapHandlingStatus) -->
 
 <enum name="LaunchOsChoiceScreenTapHandlingStatus">
diff --git a/tools/metrics/histograms/metadata/search/histograms.xml b/tools/metrics/histograms/metadata/search/histograms.xml
index cb9e983c..0c43eaa 100644
--- a/tools/metrics/histograms/metadata/search/histograms.xml
+++ b/tools/metrics/histograms/metadata/search/histograms.xml
@@ -964,6 +964,34 @@
   </summary>
 </histogram>
 
+<histogram name="Search.KeywordTable.HashValidationStatus"
+    enum="KeywordTableHashValidationStatus" expires_after="2025-09-15">
+  <owner>wfh@chromium.org</owner>
+  <owner>jdonnelly@chromium.org</owner>
+  <owner>chrome-desktop-search@google.com</owner>
+  <summary>
+    Records the hash validation status for a row in the keywords table in the
+    Web Data sqlite database. This metric is recorded for each row read from the
+    keywords table for a v137 table and above, when the keywords table is
+    loaded, which happens at profile load. If the validation is not successful
+    for any reason, then the row will be dropped from the database.
+  </summary>
+</histogram>
+
+<histogram name="Search.KeywordTable.MigrationSuccess.V137"
+    enum="BooleanSuccess" expires_after="2025-09-15">
+  <owner>wfh@chromium.org</owner>
+  <owner>jdonnelly@chromium.org</owner>
+  <owner>chrome-desktop-search@google.com</owner>
+  <summary>
+    Records whether or not the migration of the keywords table in the Web Data
+    sqlite database successfully completed without dropping any rows. This
+    metric is recorded when a Web Data database before v137 is loaded, which
+    happens at profile load. A failure here means one or more rows have been
+    dropped, but the table was migrated to v137 anyway.
+  </summary>
+</histogram>
+
 <histogram name="Search.Lens.ViewportDimensionsSent.Success" enum="Boolean"
     expires_after="2024-08-04">
   <owner>mercerd@google.com</owner>
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json
index 3e2b4da..c9316bde 100644
--- a/tools/perf/core/perfetto_binary_roller/binary_deps.json
+++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -5,8 +5,8 @@
             "full_remote_path": "perfetto-luci-artifacts/65d6491a008cb4d626effb25f72219dc179188d8/linux-arm64/trace_processor_shell"
         },
         "win": {
-            "hash": "6156db445eb1a50089813ae155bc5bf0ba037265",
-            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/3e438dc27a871f3c74f592101c5fa7b3cfe1f85b/trace_processor_shell.exe"
+            "hash": "a4bbc9119dc6e1f028f8ca470160f548cc8f2e13",
+            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/1a0d053d2f0d440bd8cfd1fc6421bccd63dd4041/trace_processor_shell.exe"
         },
         "linux_arm": {
             "hash": "8d23f6f07e4b3472196a878035fc304903813da3",
@@ -21,8 +21,8 @@
             "full_remote_path": "perfetto-luci-artifacts/65d6491a008cb4d626effb25f72219dc179188d8/mac-arm64/trace_processor_shell"
         },
         "linux": {
-            "hash": "d0b0d405a68cbc72c783632627ee51e292b39393",
-            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/d3990a1c9d27761d8de4290aeadb879a60ecbc90/trace_processor_shell"
+            "hash": "2fe306598e3d339e35c99f5d51be57b05e9c5984",
+            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/b4c1dfa24715ef5600fd068b646447707cb9ee08/trace_processor_shell"
         }
     },
     "power_profile.sql": {