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": {